43class SingleWellState {
49 SingleWellState(
const std::string& name,
53 Scalar presssure_first_connection,
59 template<
class Serializer>
60 void serializeOp(Serializer& serializer)
67 serializer(temperature);
68 serializer(efficiency_scaling_factor);
69 serializer(phase_mixing_rates);
70 serializer(well_potentials);
71 serializer(productivity_index);
72 serializer(implicit_ipr_a);
73 serializer(implicit_ipr_b);
74 serializer(surface_rates);
75 serializer(reservoir_rates);
76 serializer(prev_surface_rates);
77 serializer(trivial_group_target);
80 serializer(injection_cmode);
81 serializer(production_cmode);
82 serializer(filtrate_conc);
83 serializer(perf_data);
84 serializer(primaryvar);
85 serializer(alq_state);
86 serializer(group_target);
89 bool operator==(
const SingleWellState&)
const;
92 std::reference_wrapper<const ParallelWellInfo<Scalar>> parallel_info;
94 WellStatus status{WellStatus::OPEN};
99 Scalar temperature{0};
100 Scalar efficiency_scaling_factor{1.0};
103 Scalar filtrate_conc{0};
105 std::array<Scalar,4> phase_mixing_rates{};
108 dissolved_gas_in_water = 1,
113 std::vector<Scalar> well_potentials;
114 std::vector<Scalar> productivity_index;
115 std::vector<Scalar> implicit_ipr_a;
116 std::vector<Scalar> implicit_ipr_b;
117 std::vector<Scalar> surface_rates;
118 std::vector<Scalar> reservoir_rates;
119 std::vector<Scalar> prev_surface_rates;
121 bool trivial_group_target;
122 std::optional<Scalar> group_target;
125 WellInjectorCMode injection_cmode{WellInjectorCMode::CMODE_UNDEFINED};
126 WellProducerCMode production_cmode{WellProducerCMode::CMODE_UNDEFINED};
127 std::vector<Scalar> primaryvar;
137 void update_producer_targets(
const Well& ecl_well,
const SummaryState& st);
138 void update_injector_targets(
const Well& ecl_well,
const SummaryState& st);
145 bool updateStatus(WellStatus status);
146 void init_timestep(
const SingleWellState& other);
154 Scalar sum_solvent_rates()
const;
155 Scalar sum_polymer_rates()
const;
156 Scalar sum_brine_rates()
const;
157 Scalar sum_microbial_rates()
const;
158 Scalar sum_oxygen_rates()
const;
159 Scalar sum_urea_rates()
const;
160 Scalar sum_wat_mass_rates()
const;
162 Scalar sum_filtrate_rate()
const;
163 Scalar sum_filtrate_total()
const;
166 Scalar sum_connection_rates(
const std::vector<Scalar>& connection_rates)
const;
void reset_connection_factors(const std::vector< PerforationData< Scalar > > &new_perf_data)
Special purpose method to support dynamically rescaling a well's CTFs through WELPI.
Definition SingleWellState.cpp:149
void update_type_and_targets(const Well &ecl_well, const SummaryState &st)
update the type of the well and the targets.
Definition SingleWellState.cpp:357