Exemplo n.º 1
0
 Well::Well(const std::string& name_, int headI,
            int headJ, double refDepth , Phase preferredPhase,
            const TimeMap& timeMap, size_t creationTimeStep,
            WellCompletion::CompletionOrderEnum completionOrdering,
            bool allowCrossFlow, bool automaticShutIn)
     : m_creationTimeStep( creationTimeStep ),
       m_name( name_ ),
       m_status( timeMap, WellCommon::SHUT ),
       m_isAvailableForGroupControl( timeMap, true ),
       m_guideRate( timeMap, -1.0 ),
       m_guideRatePhase( timeMap, GuideRate::UNDEFINED ),
       m_guideRateScalingFactor( timeMap, 1.0 ),
       m_isProducer( timeMap, true ) ,
       m_completions( timeMap, CompletionSet{} ),
       m_productionProperties( timeMap, WellProductionProperties() ),
       m_injectionProperties( timeMap, WellInjectionProperties() ),
       m_polymerProperties( timeMap, WellPolymerProperties() ),
       m_econproductionlimits( timeMap, WellEconProductionLimits() ),
       m_solventFraction( timeMap, 0.0 ),
       m_groupName( timeMap, "" ),
       m_rft( timeMap, false ),
       m_plt( timeMap, false ),
       m_headI( timeMap, headI ),
       m_headJ( timeMap, headJ ),
       m_refDepth( timeMap, refDepth ),
       m_preferredPhase(preferredPhase),
       m_comporder(completionOrdering),
       m_allowCrossFlow(allowCrossFlow),
       m_automaticShutIn(automaticShutIn),
       m_segmentset( timeMap, SegmentSet{} ),
       timesteps( timeMap.numTimesteps() ),
       events( timeMap )
 {
     addEvent( ScheduleEvents::NEW_WELL , creationTimeStep );
 }
Exemplo n.º 2
0
    Well::Well(const std::string& name_, std::shared_ptr<const EclipseGrid> grid , int headI, int headJ, Value<double> refDepth , Phase::PhaseEnum preferredPhase,
               TimeMapConstPtr timeMap, size_t creationTimeStep, WellCompletion::CompletionOrderEnum completionOrdering, bool allowCrossFlow)
        : m_status(new DynamicState<WellCommon::StatusEnum>(timeMap, WellCommon::SHUT)),
          m_isAvailableForGroupControl(new DynamicState<bool>(timeMap, true)),
          m_guideRate(new DynamicState<double>(timeMap, -1.0)),
          m_guideRatePhase(new DynamicState<GuideRate::GuideRatePhaseEnum>(timeMap, GuideRate::UNDEFINED)),
          m_guideRateScalingFactor(new DynamicState<double>(timeMap, 1.0)),
          m_isProducer(new DynamicState<bool>(timeMap, true)) ,
          m_completions( new DynamicState<CompletionSetConstPtr>( timeMap , CompletionSetConstPtr( new CompletionSet()) )),
          m_productionProperties( new DynamicState<WellProductionProperties>(timeMap, WellProductionProperties() )),
          m_injectionProperties( new DynamicState<WellInjectionProperties>(timeMap, WellInjectionProperties() )),
          m_polymerProperties( new DynamicState<WellPolymerProperties>(timeMap, WellPolymerProperties() )),
          m_solventFraction( new DynamicState<double>(timeMap, 0.0 )),
          m_groupName( new DynamicState<std::string>( timeMap , "" )),
          m_rft( new DynamicState<bool>(timeMap,false)),
          m_plt( new DynamicState<bool>(timeMap,false)),
          m_timeMap( timeMap ),
          m_headI(headI),
          m_headJ(headJ),
          m_refDepth(refDepth),
          m_preferredPhase(preferredPhase),
          m_grid( grid ),
          m_comporder(completionOrdering),
          m_allowCrossFlow(allowCrossFlow),
          m_segmentset(new DynamicState<SegmentSetConstPtr>(timeMap, SegmentSetPtr(new SegmentSet())))
    {
        m_name = name_;
        m_creationTimeStep = creationTimeStep;


    }