All Classes Namespaces Files Functions Variables Typedefs Enumerator Pages
Opm::WellInterface< TypeTag > Class Template Referenceabstract
Inheritance diagram for Opm::WellInterface< TypeTag >:
Opm::MultisegmentWell< TypeTag > Opm::StandardWell< TypeTag >

Classes

struct  ConvergenceReport
 a struct to collect information about the convergence checking More...
 

Public Types

using WellState = WellStateFullyImplicitBlackoil
 
typedef BlackoilModelParameters ModelParameters
 
typedef double Scalar
 
typedef Dune::FieldVector
< Scalar, numEq > 
VectorBlockType
 
typedef Dune::FieldMatrix
< Scalar, numEq, numEq > 
MatrixBlockType
 
typedef Dune::BCRSMatrix
< MatrixBlockType > 
Mat
 
typedef Dune::BlockVector
< VectorBlockType > 
BVector
 
typedef DenseAd::Evaluation
< double, numEq > 
Eval
 
typedef
Ewoms::BlackOilPolymerModule
< TypeTag > 
PolymerModule
 

Public Member Functions

typedef GET_PROP_TYPE (TypeTag, Grid) Grid
 
typedef GET_PROP_TYPE (TypeTag, Simulator) Simulator
 
typedef GET_PROP_TYPE (TypeTag, FluidSystem) FluidSystem
 
typedef GET_PROP_TYPE (TypeTag, Indices) BlackoilIndices
 
typedef GET_PROP_TYPE (TypeTag, IntensiveQuantities) IntensiveQuantities
 
typedef GET_PROP_TYPE (TypeTag, MaterialLaw) MaterialLaw
 
 WellInterface (const Well *well, const int time_step, const Wells *wells, const ModelParameters &param)
 Constructor.
 
virtual ~WellInterface ()
 Virutal destructor.
 
const std::string & name () const
 Well name.
 
const std::vector< int > & cells ()
 Well cells.
 
WellType wellType () const
 Well type, INJECTOR or PRODUCER.
 
WellControls * wellControls () const
 Well controls.
 
void setVFPProperties (const VFPProperties *vfp_properties_arg)
 
virtual void init (const PhaseUsage *phase_usage_arg, const std::vector< bool > *active_arg, const std::vector< double > &depth_arg, const double gravity_arg, const int num_cells)
 
virtual void initPrimaryVariablesEvaluation () const =0
 
virtual ConvergenceReport getWellConvergence (const std::vector< double > &B_avg) const =0
 
virtual void solveEqAndUpdateWellState (WellState &well_state)=0
 
virtual void assembleWellEq (Simulator &ebosSimulator, const double dt, WellState &well_state, bool only_wells)=0
 
void updateListEconLimited (const WellState &well_state, DynamicListEconLimited &list_econ_limited) const
 
void setWellEfficiencyFactor (const double efficiency_factor)
 
void computeRepRadiusPerfLength (const Grid &grid, const std::map< int, int > &cartesian_to_compressed)
 
virtual void recoverWellSolutionAndUpdateWellState (const BVector &x, WellState &well_state) const =0
 using the solution x to recover the solution xw for wells and applying xw to update Well State
 
virtual void apply (const BVector &x, BVector &Ax) const =0
 Ax = Ax - C D^-1 B x.
 
virtual void apply (BVector &r) const =0
 r = r - C D^-1 Rw
 
virtual void computeWellPotentials (const Simulator &ebosSimulator, const WellState &well_state, std::vector< double > &well_potentials)=0
 
virtual void updateWellStateWithTarget (const int current, WellState &xw) const =0
 
void updateWellControl (WellState &xw, wellhelpers::WellSwitchingLogger &logger) const
 
virtual void updatePrimaryVariables (const WellState &well_state) const =0
 
virtual void calculateExplicitQuantities (const Simulator &ebosSimulator, const WellState &xw)=0
 

Static Public Attributes

static const int numEq = BlackoilIndices::numEq
 
static const bool has_solvent = GET_PROP_VALUE(TypeTag, EnableSolvent)
 
static const bool has_polymer = GET_PROP_VALUE(TypeTag, EnablePolymer)
 

Protected Types

using RatioCheckTuple = std::tuple< bool, bool, int, double >
 

Protected Member Functions

bool getAllowCrossFlow () const
 
const std::vector< bool > & active () const
 
const PhaseUsage & phaseUsage () const
 
int flowPhaseToEbosCompIdx (const int phaseIdx) const
 
int flowPhaseToEbosPhaseIdx (const int phaseIdx) const
 
int numComponents () const
 
double wsolvent () const
 
double wpolymer () const
 
bool checkRateEconLimits (const WellEconProductionLimits &econ_production_limits, const WellState &well_state) const
 
bool wellHasTHPConstraints () const
 
const std::vector< double > & compFrac () const
 
double mostStrictBhpFromBhpLimits () const
 
RatioCheckTuple checkMaxWaterCutLimit (const WellEconProductionLimits &econ_production_limits, const WellState &well_state) const
 
RatioCheckTuple checkRatioEconLimits (const WellEconProductionLimits &econ_production_limits, const WellState &well_state) const
 

Protected Attributes

const Well * well_ecl_
 
const int current_step_
 
int index_of_well_
 
const ModelParametersparam_
 
enum WellType well_type_
 
int number_of_phases_
 
std::vector< double > comp_frac_
 
struct WellControls * well_controls_
 
int number_of_perforations_
 
int first_perf_
 
std::vector< double > well_index_
 
std::vector< double > perf_depth_
 
double ref_depth_
 
double well_efficiency_factor_
 
std::vector< int > well_cells_
 
std::vector< int > saturation_table_number_
 
std::vector< double > perf_rep_radius_
 
std::vector< double > perf_length_
 
std::vector< double > bore_diameters_
 
const PhaseUsage * phase_usage_
 
const std::vector< bool > * active_
 
const VFPPropertiesvfp_properties_
 
double gravity_
 

Static Protected Attributes

static const int INVALIDCONNECTION = -100000
 

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