Opm::MultisegmentWellAssemble< FluidSystem, Indices > Class Template Reference

Class handling assemble of the equation system for MultisegmentWell. More...

#include <MultisegmentWellAssemble.hpp>

Public Types

using Scalar = typename FluidSystem::Scalar
 
using Equations = MultisegmentWellEquations< Scalar, numWellEq, Indices::numEq >
 
using PrimaryVariables = MultisegmentWellPrimaryVariables< FluidSystem, Indices >
 
using EvalWell = DenseAd::Evaluation< Scalar, numWellEq+Indices::numEq >
 

Public Member Functions

 MultisegmentWellAssemble (const WellInterfaceIndices< FluidSystem, Indices > &well)
 Constructor initializes reference to well. More...
 
void assembleControlEq (const WellState< Scalar > &well_state, const GroupState< Scalar > &group_state, const Schedule &schedule, const SummaryState &summaryState, const Well::InjectionControls &inj_controls, const Well::ProductionControls &prod_controls, const double rho, const PrimaryVariables &primary_variables, Equations &eqns, DeferredLogger &deferred_logger) const
 Assemble control equation. More...
 
void assembleAccelerationTerm (const int seg_target, const int seg, const int seg_upwing, const EvalWell &accelerationTerm, Equations &eqns1) const
 Assemble piece of the acceleration term. More...
 
void assembleHydroPressureLoss (const int seg, const int seg_density, const EvalWell &hydro_pressure_drop_seg, Equations &eqns1) const
 Assemble hydraulic pressure term. More...
 
void assemblePressureEqExtraDerivatives (const int seg, const int seg_upwind, const EvalWell &extra_derivatives, Equations &eqns1) const
 Assemble additional derivatives due to reverse flow. More...
 
void assemblePressureEq (const int seg, const int seg_upwind, const int outlet_segment_index, const EvalWell &pressure_equation, const EvalWell &outlet_pressure, Equations &eqns, bool wfrac=has_wfrac_variable, bool gfrac=has_gfrac_variable) const
 Assemble pressure terms. More...
 
void assembleTrivialEq (const int seg, const Scalar value, Equations &eqns) const
 Assembles a trivial equation. More...
 
void assembleAccumulationTerm (const int seg, const int comp_idx, const EvalWell &accumulation_term, Equations &eqns1) const
 Assemble accumulation term. More...
 
void assembleOutflowTerm (const int seg, const int seg_upwind, const int comp_idx, const EvalWell &segment_rate, Equations &eqns1) const
 Assemble outflow term. More...
 
void assembleInflowTerm (const int seg, const int inlet, const int inlet_upwind, const int comp_idx, const EvalWell &inlet_rate, Equations &eqns) const
 Assemble inflow term. More...
 
void assemblePerforationEq (const int seg, const int cell_idx, const int comp_idx, const EvalWell &cq_s_effective, Equations &eqns) const
 Assemble equation for a perforation. More...
 

Static Public Attributes

static constexpr int numWellEq = Indices::numPhases+1
 

Detailed Description

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

Class handling assemble of the equation system for MultisegmentWell.

Member Typedef Documentation

◆ Equations

template<class FluidSystem , class Indices >
using Opm::MultisegmentWellAssemble< FluidSystem, Indices >::Equations = MultisegmentWellEquations<Scalar,numWellEq,Indices::numEq>

◆ EvalWell

template<class FluidSystem , class Indices >
using Opm::MultisegmentWellAssemble< FluidSystem, Indices >::EvalWell = DenseAd::Evaluation<Scalar, numWellEq+Indices::numEq>

◆ PrimaryVariables

template<class FluidSystem , class Indices >
using Opm::MultisegmentWellAssemble< FluidSystem, Indices >::PrimaryVariables = MultisegmentWellPrimaryVariables<FluidSystem,Indices>

◆ Scalar

template<class FluidSystem , class Indices >
using Opm::MultisegmentWellAssemble< FluidSystem, Indices >::Scalar = typename FluidSystem::Scalar

Constructor & Destructor Documentation

◆ MultisegmentWellAssemble()

template<class FluidSystem , class Indices >
Opm::MultisegmentWellAssemble< FluidSystem, Indices >::MultisegmentWellAssemble ( const WellInterfaceIndices< FluidSystem, Indices > &  well)
inline

Constructor initializes reference to well.

Member Function Documentation

◆ assembleAccelerationTerm()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleAccelerationTerm ( const int  seg_target,
const int  seg,
const int  seg_upwing,
const EvalWell accelerationTerm,
Equations eqns1 
) const

Assemble piece of the acceleration term.

◆ assembleAccumulationTerm()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleAccumulationTerm ( const int  seg,
const int  comp_idx,
const EvalWell accumulation_term,
Equations eqns1 
) const

Assemble accumulation term.

◆ assembleControlEq()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleControlEq ( const WellState< Scalar > &  well_state,
const GroupState< Scalar > &  group_state,
const Schedule &  schedule,
const SummaryState &  summaryState,
const Well::InjectionControls &  inj_controls,
const Well::ProductionControls &  prod_controls,
const double  rho,
const PrimaryVariables primary_variables,
Equations eqns,
DeferredLogger deferred_logger 
) const

Assemble control equation.

◆ assembleHydroPressureLoss()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleHydroPressureLoss ( const int  seg,
const int  seg_density,
const EvalWell hydro_pressure_drop_seg,
Equations eqns1 
) const

Assemble hydraulic pressure term.

◆ assembleInflowTerm()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleInflowTerm ( const int  seg,
const int  inlet,
const int  inlet_upwind,
const int  comp_idx,
const EvalWell inlet_rate,
Equations eqns 
) const

Assemble inflow term.

◆ assembleOutflowTerm()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleOutflowTerm ( const int  seg,
const int  seg_upwind,
const int  comp_idx,
const EvalWell segment_rate,
Equations eqns1 
) const

Assemble outflow term.

◆ assemblePerforationEq()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assemblePerforationEq ( const int  seg,
const int  cell_idx,
const int  comp_idx,
const EvalWell cq_s_effective,
Equations eqns 
) const

Assemble equation for a perforation.

◆ assemblePressureEq()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assemblePressureEq ( const int  seg,
const int  seg_upwind,
const int  outlet_segment_index,
const EvalWell pressure_equation,
const EvalWell outlet_pressure,
Equations eqns,
bool  wfrac = has_wfrac_variable,
bool  gfrac = has_gfrac_variable 
) const

Assemble pressure terms.

◆ assemblePressureEqExtraDerivatives()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assemblePressureEqExtraDerivatives ( const int  seg,
const int  seg_upwind,
const EvalWell extra_derivatives,
Equations eqns1 
) const

Assemble additional derivatives due to reverse flow.

◆ assembleTrivialEq()

template<class FluidSystem , class Indices >
void Opm::MultisegmentWellAssemble< FluidSystem, Indices >::assembleTrivialEq ( const int  seg,
const Scalar  value,
Equations eqns 
) const

Assembles a trivial equation.

Member Data Documentation

◆ numWellEq

template<class FluidSystem , class Indices >
constexpr int Opm::MultisegmentWellAssemble< FluidSystem, Indices >::numWellEq = Indices::numPhases+1
staticconstexpr

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