My Project
Dune::Amg::TwoLevelMethodCpr< FO, CSP, S > Class Template Reference

#include <twolevelmethodcpr.hh>

Inheritance diagram for Dune::Amg::TwoLevelMethodCpr< FO, CSP, S >:

Public Types

typedef CSP CoarseLevelSolverPolicy
 The type of the policy for constructing the coarse level solver.
 
typedef CoarseLevelSolverPolicy::CoarseLevelSolver CoarseLevelSolver
 The type of the coarse level solver.
 
typedef FO FineOperatorType
 The linear operator of the finel level system. More...
 
typedef FineOperatorType::range_type FineRangeType
 The type of the range of the fine level operator.
 
typedef FineOperatorType::domain_type FineDomainType
 The type of the domain of the fine level operator.
 
typedef CSP::Operator CoarseOperatorType
 The linear operator of the finel level system. More...
 
typedef CoarseOperatorType::range_type CoarseRangeType
 The type of the range of the coarse level operator.
 
typedef CoarseOperatorType::domain_type CoarseDomainType
 The type of the domain of the coarse level operator.
 
typedef S SmootherType
 The type of the fine level smoother.
 

Public Member Functions

 TwoLevelMethodCpr (const FineOperatorType &op, std::shared_ptr< SmootherType > smoother, const LevelTransferPolicyCpr< FineOperatorType, CoarseOperatorType > &policy, CoarseLevelSolverPolicy &coarsePolicy, std::size_t preSteps=1, std::size_t postSteps=1)
 Constructs a two level method. More...
 
 TwoLevelMethodCpr (const TwoLevelMethodCpr &other)
 
void updatePreconditioner (FineOperatorType &, std::shared_ptr< SmootherType > smoother, CoarseLevelSolverPolicy &coarsePolicy)
 
void updatePreconditioner (std::shared_ptr< SmootherType > smoother, CoarseLevelSolverPolicy &coarsePolicy)
 
void pre (FineDomainType &x, FineRangeType &b)
 
void post (FineDomainType &x)
 
void apply (FineDomainType &v, const FineRangeType &d)
 
virtual SolverCategory::Category category () const
 

Detailed Description

template<class FO, class CSP, class S>
class Dune::Amg::TwoLevelMethodCpr< FO, CSP, S >
Template Parameters
FOThe type of the fine level linear operator.
CSPThe type of the coarse level solver policy.
SThe type of the fine level smoother used.

Member Typedef Documentation

◆ CoarseOperatorType

template<class FO , class CSP , class S >
typedef CSP::Operator Dune::Amg::TwoLevelMethodCpr< FO, CSP, S >::CoarseOperatorType

The linear operator of the finel level system.

Has to be derived from AssembledLinearOperator.

◆ FineOperatorType

template<class FO , class CSP , class S >
typedef FO Dune::Amg::TwoLevelMethodCpr< FO, CSP, S >::FineOperatorType

The linear operator of the finel level system.

Has to be derived from AssembledLinearOperator.

Constructor & Destructor Documentation

◆ TwoLevelMethodCpr()

template<class FO , class CSP , class S >
Dune::Amg::TwoLevelMethodCpr< FO, CSP, S >::TwoLevelMethodCpr ( const FineOperatorType op,
std::shared_ptr< SmootherType smoother,
const LevelTransferPolicyCpr< FineOperatorType, CoarseOperatorType > &  policy,
CoarseLevelSolverPolicy coarsePolicy,
std::size_t  preSteps = 1,
std::size_t  postSteps = 1 
)
inline

Constructs a two level method.

Template Parameters
CoarseSolverPolicyThe policy for constructing the coarse solver, e.g. OneStepAMGCoarseSolverPolicy
Parameters
opThe fine level operator.
smootherThe fine level smoother.
policyThe level transfer policy.
coarsePolicyThe policy for constructing the coarse level solver.
preStepsThe number of smoothing steps to apply before the coarse level correction.
preStepsThe number of smoothing steps to apply after the coarse level correction.

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