Opm::WellModelMatrixAdapter< M, X, Y > Class Template Reference

Adapter to combine a matrix and another linear operator into a combined linear operator. More...

#include <WellOperators.hpp>

Inheritance diagram for Opm::WellModelMatrixAdapter< M, X, Y >:
Inheritance graph

Public Types

using matrix_type = M
 
using domain_type = X
 
using range_type = Y
 
using field_type = typename X::field_type
 
using PressureMatrix = Dune::BCRSMatrix< MatrixBlock< field_type, 1, 1 > >
 

Public Member Functions

Dune::SolverCategory::Category category () const override
 
 WellModelMatrixAdapter (const M &A, const LinearOperatorExtra< X, Y > &wellOper)
 constructor: just store a reference to a matrix More...
 
void apply (const X &x, Y &y) const override
 
void applyscaleadd (field_type alpha, const X &x, Y &y) const override
 
const matrix_typegetmat () const override
 
void addWellPressureEquations (PressureMatrix &jacobian, const X &weights, const bool use_well_weights) const
 
void addWellPressureEquationsStruct (PressureMatrix &jacobian) const
 
int getNumberOfExtraEquations () const
 

Protected Attributes

const matrix_typeA_
 
const LinearOperatorExtra< X, Y > & wellOper_
 

Detailed Description

template<class M, class X, class Y>
class Opm::WellModelMatrixAdapter< M, X, Y >

Adapter to combine a matrix and another linear operator into a combined linear operator.

Adapts a matrix A plus another linear operator W (typically from wells) to the assembled linear operator interface by returning S from getmat() and making apply() and applyscaleadd() apply both A and W to the input vector. The adapter is for serial use only as the current parallel version in use is WellModelGhostLastMatrixAdapter.

Member Typedef Documentation

◆ domain_type

template<class M , class X , class Y >
using Opm::WellModelMatrixAdapter< M, X, Y >::domain_type = X

◆ field_type

template<class M , class X , class Y >
using Opm::WellModelMatrixAdapter< M, X, Y >::field_type = typename X::field_type

◆ matrix_type

template<class M , class X , class Y >
using Opm::WellModelMatrixAdapter< M, X, Y >::matrix_type = M

◆ PressureMatrix

template<class M , class X , class Y >
using Opm::WellModelMatrixAdapter< M, X, Y >::PressureMatrix = Dune::BCRSMatrix<MatrixBlock<field_type, 1, 1> >

◆ range_type

template<class M , class X , class Y >
using Opm::WellModelMatrixAdapter< M, X, Y >::range_type = Y

Constructor & Destructor Documentation

◆ WellModelMatrixAdapter()

template<class M , class X , class Y >
Opm::WellModelMatrixAdapter< M, X, Y >::WellModelMatrixAdapter ( const M &  A,
const LinearOperatorExtra< X, Y > &  wellOper 
)
inline

constructor: just store a reference to a matrix

Member Function Documentation

◆ addWellPressureEquations()

template<class M , class X , class Y >
void Opm::WellModelMatrixAdapter< M, X, Y >::addWellPressureEquations ( PressureMatrix jacobian,
const X &  weights,
const bool  use_well_weights 
) const
inline

◆ addWellPressureEquationsStruct()

template<class M , class X , class Y >
void Opm::WellModelMatrixAdapter< M, X, Y >::addWellPressureEquationsStruct ( PressureMatrix jacobian) const
inline

◆ apply()

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

◆ applyscaleadd()

template<class M , class X , class Y >
void Opm::WellModelMatrixAdapter< M, X, Y >::applyscaleadd ( field_type  alpha,
const X &  x,
Y &  y 
) const
inlineoverride

◆ category()

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

◆ getmat()

template<class M , class X , class Y >
const matrix_type & Opm::WellModelMatrixAdapter< M, X, Y >::getmat ( ) const
inlineoverride

◆ getNumberOfExtraEquations()

template<class M , class X , class Y >
int Opm::WellModelMatrixAdapter< M, X, Y >::getNumberOfExtraEquations ( ) const
inline

Member Data Documentation

◆ A_

◆ wellOper_


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