Dune Core Modules (2.5.0)

Dune::Amg::AggregationLevelTransferPolicy< O, C > Class Template Referenceabstract

A LeveTransferPolicy that used aggregation to construct the coarse level system. More...

#include <dune/istl/paamg/twolevelmethod.hh>

Public Types

typedef O FineOperatorType
 The linear operator of the finel level system. Has to be derived from AssembledLinearOperator.
 
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 O CoarseOperatorType
 The linear operator of the finel level system. Has to be derived from AssembledLinearOperator.
 
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.
 

Public Member Functions

void createCoarseLevelSystem (const O &fineOperator)
 Algebraically creates the coarse level system. More...
 
void moveToFineLevel (typename FatherType::FineDomainType &fineLhs)
 Updates the fine level linear system after the correction of the coarse levels system. More...
 
AggregationLevelTransferPolicyclone () const
 Clone the current object.
 
std::shared_ptr< CoarseOperatorType > & getCoarseLevelOperator ()
 Get the coarse level operator. More...
 
CoarseRangeTypegetCoarseLevelRhs ()
 Get the coarse level right hand side. More...
 
CoarseDomainTypegetCoarseLevelLhs ()
 Get the coarse level left hand side. More...
 
virtual void moveToCoarseLevel (const FineRangeType &fineRhs)=0
 Transfers the data to the coarse level. More...
 

Protected Attributes

CoarseRangeType rhs_
 The coarse level rhs.
 
CoarseDomainType lhs_
 The coarse level lhs.
 
std::shared_ptr< CoarseOperatorTypeoperator_
 the coarse level linear operator.
 

Detailed Description

template<class O, class C>
class Dune::Amg::AggregationLevelTransferPolicy< O, C >

A LeveTransferPolicy that used aggregation to construct the coarse level system.

Template Parameters
OThe type of the fine and coarse level operator.
CThe criterion that describes the aggregation procedure.

Member Function Documentation

◆ createCoarseLevelSystem()

template<class O , class C >
void Dune::Amg::AggregationLevelTransferPolicy< O, C >::createCoarseLevelSystem ( const O &  fineOperator)
inlinevirtual

Algebraically creates the coarse level system.

After returning from this function the coarse level operator can be accessed using getCoarseLevelOperator().

Parameters
fineOperatorThe operator of the fine level system.

Implements Dune::Amg::LevelTransferPolicy< O, O >.

References Dune::Amg::LevelTransferPolicy< O, O >::lhs_, Dune::Amg::PropertiesGraph< G, VP, EP, VM, EM >::maxVertex(), Dune::Amg::LevelTransferPolicy< O, O >::operator_, and Dune::Amg::LevelTransferPolicy< O, O >::rhs_.

◆ getCoarseLevelLhs()

CoarseDomainType & Dune::Amg::LevelTransferPolicy< O , O >::getCoarseLevelLhs ( )
inlineinherited

Get the coarse level left hand side.

Returns
The coarse level leftt hand side.

◆ getCoarseLevelOperator()

std::shared_ptr< CoarseOperatorType > & Dune::Amg::LevelTransferPolicy< O , O >::getCoarseLevelOperator ( )
inlineinherited

Get the coarse level operator.

Returns
A shared pointer to the coarse level system.

◆ getCoarseLevelRhs()

CoarseRangeType & Dune::Amg::LevelTransferPolicy< O , O >::getCoarseLevelRhs ( )
inlineinherited

Get the coarse level right hand side.

Returns
The coarse level right hand side.

◆ moveToCoarseLevel()

virtual void Dune::Amg::LevelTransferPolicy< O , O >::moveToCoarseLevel ( const FineRangeType fineRhs)
pure virtualinherited

Transfers the data to the coarse level.

Restricts the residual to the right hand side of the coarse level system and initialies the left hand side of the coarse level system. These can afterwards be accessed usinf getCoarseLevelRhs() and getCoarseLevelLhs().

Parameters
fineDefectThe current residual of the fine level system.

◆ moveToFineLevel()

template<class O , class C >
void Dune::Amg::AggregationLevelTransferPolicy< O, C >::moveToFineLevel ( typename FatherType::FineDomainType fineLhs)
inlinevirtual

Updates the fine level linear system after the correction of the coarse levels system.

After returning from this function the coarse level correction will have been added to fine level system.

Parameters
[in,out]fineLhsThe left hand side of the fine level to update with the coarse level correction.

Implements Dune::Amg::LevelTransferPolicy< O, O >.

References Dune::Amg::LevelTransferPolicy< O, O >::lhs_.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 23, 23:29, 2024)