opm-simulators
Loading...
Searching...
No Matches
Opm::SingleWellState< Scalar, IndexTraits > Class Template Reference

Classes

struct  GroupTarget

Public Types

enum  RateIndices { dissolved_gas = 0 , dissolved_gas_in_water = 1 , vaporized_oil = 2 , vaporized_water = 3 }

Public Member Functions

 SingleWellState (const std::string &name, const ParallelWellInfo< Scalar > &pinfo, const PhaseUsageInfo< IndexTraits > &pu, bool is_producer, Scalar pressure_first_connection, const std::vector< PerforationData< Scalar > > &perf_input, Scalar temp)
template<class Serializer>
void serializeOp (Serializer &serializer)
bool operator== (const SingleWellState &) 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.
void update_producer_targets (const Well &ecl_well, const SummaryState &st)
void update_injector_targets (const Well &ecl_well, const SummaryState &st)
void update_type_and_targets (const Well &ecl_well, const SummaryState &st)
 update the type of the well and the targets.
bool updateStatus (WellStatus status)
void init_timestep (const SingleWellState &other)
void shut ()
void stop ()
void open ()
Scalar sum_solvent_rates () const
Scalar sum_polymer_rates () const
Scalar sum_brine_rates () const
Scalar sum_microbial_rates () const
Scalar sum_oxygen_rates () const
Scalar sum_urea_rates () const
Scalar sum_wat_mass_rates () const
Scalar sum_filtrate_rate () const
Scalar sum_filtrate_total () const

Static Public Member Functions

static SingleWellState serializationTestObject (const ParallelWellInfo< Scalar > &pinfo)

Public Attributes

std::string name
std::reference_wrapper< const ParallelWellInfo< Scalar > > parallel_info
WellStatus status {WellStatus::OPEN}
bool producer
PhaseUsageInfo< IndexTraits > pu
Scalar bhp {0}
Scalar thp {0}
Scalar pressure_first_connection {0}
Scalar temperature {0}
Scalar energy_rate {0.}
Scalar efficiency_scaling_factor {1.0}
Scalar filtrate_conc {0}
std::array< Scalar, 4 > phase_mixing_rates {}
std::vector< Scalar > well_potentials
std::vector< Scalar > productivity_index
std::vector< Scalar > implicit_ipr_a
std::vector< Scalar > implicit_ipr_b
std::vector< Scalar > surface_rates
std::vector< Scalar > reservoir_rates
std::vector< Scalar > prev_surface_rates
PerfData< Scalar > perf_data
bool trivial_group_target
std::optional< GroupTargetgroup_target
SegmentState< Scalar > segments
Events events
WellInjectorCMode injection_cmode {WellInjectorCMode::CMODE_UNDEFINED}
WellProducerCMode production_cmode {WellProducerCMode::CMODE_UNDEFINED}
std::vector< Scalar > primaryvar
ALQState< Scalar > alq_state
bool was_shut_before_action_applied {false}

Static Public Attributes

static const int waterPhaseIdx = PhaseUsageInfo<IndexTraits>::waterPhaseIdx
static const int oilPhaseIdx = PhaseUsageInfo<IndexTraits>::oilPhaseIdx
static const int gasPhaseIdx = PhaseUsageInfo<IndexTraits>::gasPhaseIdx

Member Function Documentation

◆ reset_connection_factors()

template<typename Scalar, typename IndexTraits>
void Opm::SingleWellState< Scalar, IndexTraits >::reset_connection_factors ( const std::vector< PerforationData< Scalar > > & new_perf_data)

Special purpose method to support dynamically rescaling a well's CTFs through WELPI.

Parameters
[in]new_perf_dataNew perforation data. Only PerforationData::connection_transmissibility_factor actually used (overwrites existing internal values).

◆ update_type_and_targets()

template<typename Scalar, typename IndexTraits>
void Opm::SingleWellState< Scalar, IndexTraits >::update_type_and_targets ( const Well & ecl_well,
const SummaryState & st )

update the type of the well and the targets.

This called after ACTIONX is executed to update well rates. The new status is in ecl_well and st.

Returns
whether well was switched to a producer

The documentation for this class was generated from the following files: