Opm::WellModelAsLinearOperator< WellModel, X, Y > Class Template Reference

#include <WellOperators.hpp>

Inheritance diagram for Opm::WellModelAsLinearOperator< WellModel, X, Y >:
Inheritance graph

Public Types

using Base = Opm::LinearOperatorExtra< X, Y >
 
using field_type = typename Base::field_type
 
using PressureMatrix = typename Base::PressureMatrix
 

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. More...
 
virtual void applyscaleadd (field_type alpha, const X &x, Y &y) const override
 apply operator to x, scale and add: $ y = y + \alpha A(x) $ More...
 
Dune::SolverCategory::Category category () const override
 
void addWellPressureEquations (PressureMatrix &jacobian, const X &weights, const bool use_well_weights) const override
 
void addWellPressureEquationsStruct (PressureMatrix &jacobian) const override
 
int getNumberOfExtraEquations () const override
 

Member Typedef Documentation

◆ Base

template<class WellModel , class X , class Y >
using Opm::WellModelAsLinearOperator< WellModel, X, Y >::Base = Opm::LinearOperatorExtra<X, Y>

◆ field_type

template<class WellModel , class X , class Y >
using Opm::WellModelAsLinearOperator< WellModel, X, Y >::field_type = typename Base::field_type

◆ PressureMatrix

template<class WellModel , class X , class Y >
using Opm::WellModelAsLinearOperator< WellModel, X, Y >::PressureMatrix = typename Base::PressureMatrix

Constructor & Destructor Documentation

◆ WellModelAsLinearOperator()

template<class WellModel , class X , class Y >
Opm::WellModelAsLinearOperator< WellModel, X, Y >::WellModelAsLinearOperator ( const WellModel &  wm)
inlineexplicit

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

◆ apply()

template<class WellModel , class X , class Y >
void Opm::WellModelAsLinearOperator< WellModel, X, Y >::apply ( const X &  x,
Y &  y 
) const
inlineoverride

apply operator to x: $ y = A(x) $ The input vector is consistent and the output must also be consistent on the interior+border partition.

References Opm::WellModelAsLinearOperator< WellModel, X, Y >::apply().

Referenced by Opm::WellModelAsLinearOperator< WellModel, X, Y >::apply().

◆ applyscaleadd()

template<class WellModel , class X , class Y >
virtual void Opm::WellModelAsLinearOperator< WellModel, X, Y >::applyscaleadd ( field_type  alpha,
const X &  x,
Y &  y 
) 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: