Opm::SystemPreconditioner< Scalar, ResOp, ResComm > Class Template Reference

#include <SystemPreconditioner.hpp>

Inheritance diagram for Opm::SystemPreconditioner< Scalar, ResOp, ResComm >:
Inheritance graph

Public Types

using ResFlexibleSolverType = Dune::FlexibleSolver< ResOp >
 
using WellOperator = Dune::MatrixAdapter< WWMatrix< Scalar >, WellVector< Scalar >, WellVector< Scalar > >
 
using WellFlexibleSolverType = Dune::FlexibleSolver< WellOperator >
 

Public Member Functions

 SystemPreconditioner (const SystemMatrix< Scalar > &S, const std::function< ResVector< Scalar >()> &weightsCalculator, int pressureIndex, const Opm::PropertyTree &prm)
 
 SystemPreconditioner (const SystemMatrix< Scalar > &S, const std::function< ResVector< Scalar >()> &weightsCalculator, int pressureIndex, const Opm::PropertyTree &prm, const ResComm &resComm)
 
void pre (SystemVector< Scalar > &, SystemVector< Scalar > &) override
 
void post (SystemVector< Scalar > &) override
 
Dune::SolverCategory::Category category () const override
 
void update () override
 
void updateForChangedWellStructure ()
 
bool hasPerfectUpdate () const override
 
void apply (SystemVector< Scalar > &v, const SystemVector< Scalar > &d) override
 

Static Public Attributes

static constexpr bool isParallel = !std::is_same_v<ResComm, Dune::Amg::SequentialInformation>
 
static constexpr auto _0 = Dune::Indices::_0
 
static constexpr auto _1 = Dune::Indices::_1
 

Member Typedef Documentation

◆ ResFlexibleSolverType

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
using Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::ResFlexibleSolverType = Dune::FlexibleSolver<ResOp>

◆ WellFlexibleSolverType

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
using Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::WellFlexibleSolverType = Dune::FlexibleSolver<WellOperator>

◆ WellOperator

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
using Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::WellOperator = Dune::MatrixAdapter<WWMatrix<Scalar>, WellVector<Scalar>, WellVector<Scalar> >

Constructor & Destructor Documentation

◆ SystemPreconditioner() [1/2]

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::SystemPreconditioner ( const SystemMatrix< Scalar > &  S,
const std::function< ResVector< Scalar >()> &  weightsCalculator,
int  pressureIndex,
const Opm::PropertyTree prm 
)
inline

◆ SystemPreconditioner() [2/2]

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::SystemPreconditioner ( const SystemMatrix< Scalar > &  S,
const std::function< ResVector< Scalar >()> &  weightsCalculator,
int  pressureIndex,
const Opm::PropertyTree prm,
const ResComm &  resComm 
)
inline

Member Function Documentation

◆ apply()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
void Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::apply ( SystemVector< Scalar > &  v,
const SystemVector< Scalar > &  d 
)
inlineoverride

◆ category()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
Dune::SolverCategory::Category Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::category ( ) const
inlineoverride

◆ hasPerfectUpdate()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
bool Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::hasPerfectUpdate ( ) const
inlineoverridevirtual

◆ post()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
void Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::post ( SystemVector< Scalar > &  )
inlineoverride

◆ pre()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
void Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::pre ( SystemVector< Scalar > &  ,
SystemVector< Scalar > &   
)
inlineoverride

◆ update()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
void Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::update ( )
inlineoverridevirtual

◆ updateForChangedWellStructure()

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
void Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::updateForChangedWellStructure ( )
inline

Member Data Documentation

◆ _0

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
constexpr auto Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::_0 = Dune::Indices::_0
staticconstexpr

◆ _1

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
constexpr auto Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::_1 = Dune::Indices::_1
staticconstexpr

◆ isParallel

template<class Scalar , class ResOp , class ResComm = Dune::Amg::SequentialInformation>
constexpr bool Opm::SystemPreconditioner< Scalar, ResOp, ResComm >::isParallel = !std::is_same_v<ResComm, Dune::Amg::SequentialInformation>
staticconstexpr

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