My Project
Opm::WellModelMatrixAdapter< 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::WellModelMatrixAdapter< M, X, Y, overlapping >:

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::CollectiveCommunication< int > communication_type
 

Public Member Functions

Dune::SolverCategory::Category category () const override
 
 WellModelMatrixAdapter (const M &A, const Opm::LinearOperatorExtra< X, Y > &wellOper, const std::shared_ptr< communication_type > &comm=std::shared_ptr< communication_type >())
 constructor: just store a reference to a matrix
 
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_type & getmat () 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_type & A_
 
const Opm::LinearOperatorExtra< X, Y > & wellOper_
 
std::shared_ptr< communication_type > comm_
 

Detailed Description

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

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. In addition this is a parallel-aware adapter, that does not require the W operator to be parallel, but makes it into one by making the proper projections.


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