My Project
Dune::OwningTwoLevelPreconditioner< OperatorType, VectorType, LevelTransferPolicy, Communication > Class Template Reference

A version of the two-level preconditioner that is: More...

#include <OwningTwoLevelPreconditioner.hpp>

Inheritance diagram for Dune::OwningTwoLevelPreconditioner< OperatorType, VectorType, LevelTransferPolicy, Communication >:
Dune::PreconditionerWithUpdate< VectorType, VectorType >

Public Types

using MatrixType = typename OperatorType::matrix_type
 
using PrecFactory = Opm::PreconditionerFactory< OperatorType, Communication >
 
using AbstractOperatorType = Dune::AssembledLinearOperator< MatrixType, VectorType, VectorType >
 

Public Member Functions

 OwningTwoLevelPreconditioner (const OperatorType &linearoperator, const Opm::PropertyTree &prm, const std::function< VectorType()> weightsCalculator, std::size_t pressureIndex)
 
 OwningTwoLevelPreconditioner (const OperatorType &linearoperator, const Opm::PropertyTree &prm, const std::function< VectorType()> weightsCalculator, std::size_t pressureIndex, const Communication &comm)
 
virtual void pre (VectorType &x, VectorType &b) override
 
virtual void apply (VectorType &v, const VectorType &d) override
 
virtual void post (VectorType &x) override
 
virtual void update () override
 
virtual Dune::SolverCategory::Category category () const override
 

Detailed Description

template<class OperatorType, class VectorType, class LevelTransferPolicy, class Communication = Dune::Amg::SequentialInformation>
class Dune::OwningTwoLevelPreconditioner< OperatorType, VectorType, LevelTransferPolicy, Communication >

A version of the two-level preconditioner that is:

  • Self-contained, because it owns its policy components.
  • Flexible, because it uses the runtime-flexible solver and preconditioner factory.

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