My Project
Loading...
Searching...
No Matches
Opm::StandardWellPrimaryVariables< FluidSystem, Indices > Class Template Reference

Class holding primary variables for StandardWell. More...

#include <StandardWellPrimaryVariables.hpp>

Public Types

using Scalar = typename FluidSystem::Scalar
 
using EvalWell = DenseAd::DynamicEvaluation< Scalar, numStaticWellEq+Indices::numEq+1 >
 Evaluation for the well equations.
 
using BVectorWell = typename StandardWellEquations< Scalar, Indices::numEq >::BVectorWell
 

Public Member Functions

 StandardWellPrimaryVariables (const WellInterfaceIndices< FluidSystem, Indices > &well)
 Constructor initializes reference to well interface.
 
void init ()
 Initialize evaluations from values.
 
void resize (const int numWellEq)
 Resize values and evaluations.
 
int numWellEq () const
 Returns number of well equations.
 
void update (const WellState &well_state, const bool stop_or_zero_rate_target, DeferredLogger &deferred_logger)
 Copy values from well state.
 
void updatePolyMW (const WellState &well_state)
 Copy polymer molecular weigt values from well state.
 
void updateNewton (const BVectorWell &dwells, const bool stop_or_zero_rate_target, const double dFLimit, const double dBHPLimit, DeferredLogger &deferred_logger)
 Update values from newton update vector.
 
void updateNewtonPolyMW (const BVectorWell &dwells)
 Update polymer molecular weight values from newton update vector.
 
void checkFinite (DeferredLogger &deferred_logger) const
 Check that all values are finite.
 
void copyToWellState (WellState &well_state, DeferredLogger &deferred_logger) const
 Copy values to well state.
 
void copyToWellStatePolyMW (WellState &well_state) const
 Copy polymer molecular weight values to well state.
 
EvalWell volumeFractionScaled (const int compIdx) const
 Returns scaled volume fraction for a component.
 
EvalWell surfaceVolumeFraction (const int compIdx) const
 Returns surface volume fraction for a component.
 
EvalWell getQs (const int compIdx) const
 Returns scaled rate for a component.
 
Scalar value (const int idx) const
 Returns a value.
 
const EvalWelleval (const int idx) const
 Returns a const ref to an evaluation.
 
void setValue (const int idx, const Scalar val)
 Set a value. Note that this does not also set the corresponding evaluation.
 

Static Public Attributes

static constexpr int numWellConservationEq = Indices::numPhases + Indices::numSolvents
 Number of the conservation equations.
 
static constexpr int numStaticWellEq = numWellConservationEq + numWellControlEq
 Number of the well equations that will always be used.
 
static constexpr int WQTotal = 0
 The index for the weighted total rate.
 
static constexpr int Bhp = numStaticWellEq - numWellControlEq
 The index for Bhp in primary variables and the index of well control equation.
 
static constexpr bool has_wfrac_variable = Indices::waterEnabled && Indices::oilEnabled
 
static constexpr bool has_gfrac_variable = Indices::gasEnabled && Indices::numPhases > 1
 
static constexpr int WFrac = has_wfrac_variable ? 1 : -1000
 
static constexpr int GFrac = has_gfrac_variable ? has_wfrac_variable + 1 : -1000
 
static constexpr int SFrac = !Indices::enableSolvent ? -1000 : has_wfrac_variable+has_gfrac_variable+1
 

Static Protected Attributes

static constexpr int numWellControlEq = 1
 Number of the well control equations.
 

Detailed Description

template<class FluidSystem, class Indices>
class Opm::StandardWellPrimaryVariables< FluidSystem, Indices >

Class holding primary variables for StandardWell.

Member Data Documentation

◆ Bhp

template<class FluidSystem , class Indices >
constexpr int Opm::StandardWellPrimaryVariables< FluidSystem, Indices >::Bhp = numStaticWellEq - numWellControlEq
staticconstexpr

The index for Bhp in primary variables and the index of well control equation.

They both will be the last one in their respective system.

Todo:
: We should have indices for the well equations and well primary variables separately.

◆ numStaticWellEq

template<class FluidSystem , class Indices >
constexpr int Opm::StandardWellPrimaryVariables< FluidSystem, Indices >::numStaticWellEq = numWellConservationEq + numWellControlEq
staticconstexpr

Number of the well equations that will always be used.

Based on the solution strategy, there might be other well equations be introduced.


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