Loading...
Searching...
No Matches
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>`

Inheritance diagram for Dune::Amg::AggregationLevelTransferPolicy< O, C >:

## Public Types

typedef LevelTransferPolicy< O, O > | FatherType
typedef C | Criterion
typedef SequentialInformation | ParallelInformation
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

| AggregationLevelTransferPolicy (const Criterion &crit)
void | createCoarseLevelSystem (const O &fineOperator)
| Algebraically creates the coarse level system.
void | moveToCoarseLevel (const typename FatherType::FineRangeType &fineRhs)
void | moveToFineLevel (typename FatherType::FineDomainType &fineLhs)
| Updates the fine level linear system after the correction of the coarse levels system.
AggregationLevelTransferPolicy * | clone () const
| Clone the current object.
std::shared_ptr< CoarseOperatorType > & | getCoarseLevelOperator ()
| Get the coarse level operator.
CoarseRangeType & | getCoarseLevelRhs ()
| Get the coarse level right hand side.
CoarseDomainType & | getCoarseLevelLhs ()
| Get the coarse level left hand side.
virtual void | moveToCoarseLevel (const FineRangeType &fineRhs)=0
| Transfers the data to the coarse level.

## Protected Attributes

CoarseRangeType | rhs_
| The coarse level rhs.
CoarseDomainType | lhs_
| The coarse level lhs.
std::shared_ptr< CoarseOperatorType > | operator_
| 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

  O | The type of the fine and coarse level operator.
  C | The criterion that describes the aggregation procedure.

## Member Typedef Documentation

## CoarseDomainType

typedef CoarseOperatorType::domain_type Dune::Amg::LevelTransferPolicy< O, O >::CoarseDomainType

inherited

The type of the domain of the coarse level operator.

## CoarseOperatorType

typedef O Dune::Amg::LevelTransferPolicy< O, O >::CoarseOperatorType

inherited

The linear operator of the finel level system. Has to be derived from AssembledLinearOperator.

## CoarseRangeType

typedef CoarseOperatorType::range_type Dune::Amg::LevelTransferPolicy< O, O >::CoarseRangeType

inherited

The type of the range of the coarse level operator.

## Criterion

template<class O, class C>

typedef C Dune::Amg::AggregationLevelTransferPolicy< O, C >::Criterion

## FatherType

template<class O, class C>

typedef LevelTransferPolicy<O,O> Dune::Amg::AggregationLevelTransferPolicy< O, C >::FatherType

## FineDomainType

typedef FineOperatorType::domain_type Dune::Amg::LevelTransferPolicy< O, O >::FineDomainType

inherited

The type of the domain of the fine level operator.

## FineOperatorType

typedef O Dune::Amg::LevelTransferPolicy< O, O >::FineOperatorType

inherited

The linear operator of the finel level system. Has to be derived from AssembledLinearOperator.

## FineRangeType

typedef FineOperatorType::range_type Dune::Amg::LevelTransferPolicy< O, O >::FineRangeType

inherited

The type of the range of the fine level operator.

## ParallelInformation

template<class O, class C>

typedef SequentialInformation Dune::Amg::AggregationLevelTransferPolicy< O, C >::ParallelInformation

## Constructor & Destructor Documentation

## AggregationLevelTransferPolicy()

template<class O, class C>

Dune::Amg::AggregationLevelTransferPolicy< O, C >::AggregationLevelTransferPolicy | ( | const Criterion & | crit | ) |

inline

## Member Function Documentation

## clone()

template<class O, class C>

AggregationLevelTransferPolicy * Dune::Amg::AggregationLevelTransferPolicy< O, C >::clone | ( |  | ) | const

inline virtual

Clone the current object.

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

## createCoarseLevelSystem()

template<class O, class C>

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

inline virtual

Algebraically creates the coarse level system.

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

Parameters

  fineOperator | The operator of the fine level system.

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

## getCoarseLevelLhs()

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

inline inherited

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 | ( |  | ) |

inline inherited

Get the coarse level operator.

Returns
  A shared pointer to the coarse level system.

## getCoarseLevelRhs()

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

inline inherited

Get the coarse level right hand side.

Returns
  The coarse level right hand side.

## moveToCoarseLevel() [1/2]

template<class O, class C>

void Dune::Amg::AggregationLevelTransferPolicy< O, C >::moveToCoarseLevel | ( | const typename FatherType::FineRangeType & | fineRhs | ) |

inline

## moveToCoarseLevel() [2/2]

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

pure virtual inherited

Transfers the data to the coarse level.

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

Parameters

  fineRhs | The current right hand side of the fine level system.

## moveToFineLevel()

template<class O, class C>

void Dune::Amg::AggregationLevelTransferPolicy< O, C >::moveToFineLevel | ( | typename FatherType::FineDomainType & | fineLhs | ) |

inline virtual

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] | fineLhs | The left hand side of the fine level to update with the coarse level correction.

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

## Member Data Documentation

## lhs_

CoarseDomainType Dune::Amg::LevelTransferPolicy< O, O >::lhs_

protected inherited

The coarse level lhs.

## operator_

std::shared_ptr<CoarseOperatorType> Dune::Amg::LevelTransferPolicy< O, O >::operator_

protected inherited

the coarse level linear operator.

## rhs_

CoarseRangeType Dune::Amg::LevelTransferPolicy< O, O >::rhs_

protected inherited

The coarse level rhs.

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

- twolevelmethod.hh