Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping > 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::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >:
Inheritance graph

Public Types

typedef M matrix_type
 
typedef X domain_type
 
typedef Y range_type
 
typedef X::field_type field_type
 
using PressureMatrix = Dune::BCRSMatrix< Opm::MatrixBlock< double, 1, 1 > >
 
typedef Dune::OwnerOverlapCopyCommunication< int, int > communication_type
 

Public Member Functions

Dune::SolverCategory::Category category () const override
 
 WellModelGhostLastMatrixAdapter (const M &A, const Opm::LinearOperatorExtra< X, Y > &wellOper, const std::size_t interiorSize)
 constructor: just store a reference to a matrix More...
 
virtual void apply (const X &x, Y &y) const override
 
virtual void applyscaleadd (field_type alpha, const X &x, Y &y) const override
 
virtual 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 Member Functions

void ghostLastProject (Y &y) const
 

Protected Attributes

const matrix_typeA_
 
const Opm::LinearOperatorExtra< X, Y > & wellOper_
 
std::size_t interiorSize_
 

Detailed Description

template<class M, class X, class Y, bool overlapping>
class Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >

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

This is similar to WellModelMatrixAdapter, with the difference that here we assume a parallel ordering of rows, where ghost rows are located after interior rows.

Member Typedef Documentation

◆ communication_type

template<class M , class X , class Y , bool overlapping>
typedef Dune::OwnerOverlapCopyCommunication<int,int> Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::communication_type

◆ domain_type

template<class M , class X , class Y , bool overlapping>
typedef X Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::domain_type

◆ field_type

template<class M , class X , class Y , bool overlapping>
typedef X::field_type Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::field_type

◆ matrix_type

template<class M , class X , class Y , bool overlapping>
typedef M Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::matrix_type

◆ PressureMatrix

template<class M , class X , class Y , bool overlapping>
using Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::PressureMatrix = Dune::BCRSMatrix<Opm::MatrixBlock<double, 1, 1> >

◆ range_type

template<class M , class X , class Y , bool overlapping>
typedef Y Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::range_type

Constructor & Destructor Documentation

◆ WellModelGhostLastMatrixAdapter()

template<class M , class X , class Y , bool overlapping>
Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::WellModelGhostLastMatrixAdapter ( const M &  A,
const Opm::LinearOperatorExtra< X, Y > &  wellOper,
const std::size_t  interiorSize 
)
inline

constructor: just store a reference to a matrix

Member Function Documentation

◆ addWellPressureEquations()

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

◆ addWellPressureEquationsStruct()

◆ apply()

◆ applyscaleadd()

◆ category()

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

◆ getmat()

template<class M , class X , class Y , bool overlapping>
virtual const matrix_type & Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::getmat ( ) const
inlineoverridevirtual

◆ getNumberOfExtraEquations()

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

◆ ghostLastProject()

template<class M , class X , class Y , bool overlapping>
void Opm::WellModelGhostLastMatrixAdapter< M, X, Y, overlapping >::ghostLastProject ( Y &  y) const
inlineprotected

Member Data Documentation

◆ A_

◆ interiorSize_

◆ wellOper_


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