opm-simulators
Loading...
Searching...
No Matches
Opm::WellModelAsLinearOperator< WellModel, X, Y > Class Template Reference
Inheritance diagram for Opm::WellModelAsLinearOperator< WellModel, X, Y >:
Opm::LinearOperatorExtra< X, Y > Opm::DomainWellModelAsLinearOperator< WellModel, X, Y >

Public Types

using Base = LinearOperatorExtra<X, Y>
using field_type = typename Base::field_type
using PressureMatrix = typename Base::PressureMatrix
Public Types inherited from Opm::LinearOperatorExtra< X, Y >
using field_type = typename X::field_type
using PressureMatrix = Dune::BCRSMatrix<MatrixBlock<field_type, 1, 1>>

Public Member Functions

 WellModelAsLinearOperator (const WellModel &wm)
void apply (const X &x, Y &y) const override
 apply operator to x: $ y = A(x) $ The input vector is consistent and the output must also be consistent on the interior+border partition.
void applyscaleadd (field_type alpha, const X &x, Y &y) const override
 apply operator to x, scale and add: $ y = y + \alpha A(x) $
Dune::SolverCategory::Category category () const override
 Category for operator.
void addWellPressureEquations (PressureMatrix &jacobian, const X &weights, const bool use_well_weights) const override
void addWellPressureEquationsStruct (PressureMatrix &jacobian) const override
int getNumberOfExtraEquations () const override

Protected Member Functions

template<class WellType, class ArrayType>
void applySingleWell (const X &x, Y &y, const WellType &well, const ArrayType &cells) const

Protected Attributes

const WellModel & wellMod_
x_local_ {}
Ax_local_ {}
scaleAddRes_ {}

Member Function Documentation

◆ addWellPressureEquations()

template<class WellModel, class X, class Y>
void Opm::WellModelAsLinearOperator< WellModel, X, Y >::addWellPressureEquations ( PressureMatrix & jacobian,
const X & weights,
const bool use_well_weights ) const
inlineoverridevirtual

◆ addWellPressureEquationsStruct()

template<class WellModel, class X, class Y>
void Opm::WellModelAsLinearOperator< WellModel, X, Y >::addWellPressureEquationsStruct ( PressureMatrix & jacobian) const
inlineoverridevirtual

◆ category()

template<class WellModel, class X, class Y>
Dune::SolverCategory::Category Opm::WellModelAsLinearOperator< WellModel, X, Y >::category ( ) const
inlineoverride

Category for operator.

This is somewhat tricky, I consider this operator sequential since (unlike WellModelMatrixAdapter) it does not do any projections etc. but only forwards the calls to the sequential well model.

◆ getNumberOfExtraEquations()

template<class WellModel, class X, class Y>
int Opm::WellModelAsLinearOperator< WellModel, X, Y >::getNumberOfExtraEquations ( ) const
inlineoverridevirtual

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