48class WellInterfaceFluidSystem :
public WellInterfaceGeneric<typename FluidSystem::Scalar, typename FluidSystem::IndexTraitsType>
51 using RateConverterType = RateConverter::
52 SurfaceToReservoirVoidage<FluidSystem, std::vector<int>>;
54 static constexpr int INVALIDCOMPLETION = std::numeric_limits<int>::max();
57 using Scalar =
typename FluidSystem::Scalar;
58 using IndexTraits =
typename FluidSystem::IndexTraitsType;
59 using ModelParameters =
typename WellInterfaceGeneric<Scalar, IndexTraits>::ModelParameters;
61 static constexpr int Water = IndexTraits::waterPhaseIdx;
62 static constexpr int Oil = IndexTraits::oilPhaseIdx;
63 static constexpr int Gas = IndexTraits::gasPhaseIdx;
65 const RateConverterType& rateConverter()
const
67 return rateConverter_;
71 WellInterfaceFluidSystem(
const Well& well,
74 const ModelParameters& param,
75 const RateConverterType& rate_converter,
76 const int pvtRegionIdx,
77 const int num_conservation_quantities,
79 const int index_of_well,
86 const SummaryState& summaryState,
88 const std::optional<Well::InjectionControls>& inj_controls = std::nullopt,
89 const std::optional<Well::ProductionControls>& prod_controls = std::nullopt)
const;
93 const Schedule& schedule,
94 const SummaryState& summaryState,
95 const bool check_guide_rate,
100 const Schedule& schedule,
101 const SummaryState& summaryState,
104 std::optional<Scalar>
105 getGroupInjectionTargetRate(
const Group& group,
108 const Schedule& schedule,
109 const SummaryState& summaryState,
110 const InjectorType& injectorType,
111 Scalar efficiencyFactor,
115 getGroupProductionTargetRate(
const Group& group,
118 const Schedule& schedule,
119 const SummaryState& summaryState,
120 Scalar efficiencyFactor,
123 bool zeroGroupRateTarget(
const SummaryState& summary_state,
124 const Schedule& schedule,
130 const RateConverterType& rateConverter_;