Loading...
Searching...
No Matches
Dune::Amg::LevelTransferPolicyCpr< FO, CO > Class Template Referenceabstract

Abstract base class for transfer between levels and creation of the coarse level system. More...

`#include <twolevelmethodcpr.hh>`

## Public Types

typedef FO | FineOperatorType
| The linear operator of the finel level system.
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 CO | CoarseOperatorType
| The linear operator of the finel level system.
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

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.
virtual void | moveToFineLevel (FineDomainType &fineLhs)=0
| Updates the fine level linear system after the correction of the coarse levels system.
virtual void | createCoarseLevelSystem (const FineOperatorType &fineOperator)=0
| Algebraically creates the coarse level system.
virtual void | calculateCoarseEntries (const FineOperatorType &fineOperator)=0
| ?
virtual LevelTransferPolicyCpr * | clone () const =0
| Clone the current object.
virtual | ~LevelTransferPolicyCpr ()
| Destructor.

## 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 FO, class CO>
class Dune::Amg::LevelTransferPolicyCpr< FO, CO >

Abstract base class for transfer between levels and creation of the coarse level system.

Template Parameters

  FO | The type of the linear operator of the finel level system. Has to be derived from AssembledLinearOperator.
  CO | The type of the linear operator of the coarse level system. Has to be derived from AssembledLinearOperator.

## Member Typedef Documentation

## CoarseOperatorType

template<class FO, class CO>

typedef CO Dune::Amg::LevelTransferPolicyCpr< FO, CO >::CoarseOperatorType

The linear operator of the finel level system.

Has to be derived from AssembledLinearOperator.

## FineOperatorType

template<class FO, class CO>

typedef FO Dune::Amg::LevelTransferPolicyCpr< FO, CO >::FineOperatorType

The linear operator of the finel level system.

Has to be derived from AssembledLinearOperator.

## Member Function Documentation

## calculateCoarseEntries()

template<class FO, class CO>

virtual void Dune::Amg::LevelTransferPolicyCpr< FO, CO >::calculateCoarseEntries | ( | const FineOperatorType & | fineOperator | ) |

pure virtual

?

??.

Implemented in Opm::gpuistl::GpuPressureTransferPolicy< FineOperator, Communication, Scalar, transpose >, Opm::PressureBhpTransferPolicy< FineOperator, Communication, Scalar, transpose >, and Opm::PressureTransferPolicy< FineOperator, Communication, Scalar, transpose >.

## clone()

template<class FO, class CO>

virtual LevelTransferPolicyCpr * Dune::Amg::LevelTransferPolicyCpr< FO, CO >::clone | ( |  | ) | const

pure virtual

Clone the current object.

Implemented in Dune::Amg::AggregationLevelTransferPolicyCpr< O, C >, Opm::gpuistl::GpuPressureTransferPolicy< FineOperator, Communication, Scalar, transpose >, Opm::PressureBhpTransferPolicy< FineOperator, Communication, Scalar, transpose >, and Opm::PressureTransferPolicy< FineOperator, Communication, Scalar, transpose >.

## createCoarseLevelSystem()

template<class FO, class CO>

virtual void Dune::Amg::LevelTransferPolicyCpr< FO, CO >::createCoarseLevelSystem | ( | const FineOperatorType & | fineOperator | ) |

pure 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.

Implemented in Dune::Amg::AggregationLevelTransferPolicyCpr< O, C >, Opm::gpuistl::GpuPressureTransferPolicy< FineOperator, Communication, Scalar, transpose >, Opm::PressureBhpTransferPolicy< FineOperator, Communication, Scalar, transpose >, and Opm::PressureTransferPolicy< FineOperator, Communication, Scalar, transpose >.

## getCoarseLevelLhs()

template<class FO, class CO>

CoarseDomainType & Dune::Amg::LevelTransferPolicyCpr< FO, CO >::getCoarseLevelLhs | ( |  | ) |

inline

Get the coarse level left hand side.

Returns
  The coarse level leftt hand side.

## getCoarseLevelOperator()

template<class FO, class CO>

std::shared_ptr< CoarseOperatorType > & Dune::Amg::LevelTransferPolicyCpr< FO, CO >::getCoarseLevelOperator | ( |  | ) |

inline

Get the coarse level operator.

Returns
  A shared pointer to the coarse level system.

## getCoarseLevelRhs()

template<class FO, class CO>

CoarseRangeType & Dune::Amg::LevelTransferPolicyCpr< FO, CO >::getCoarseLevelRhs | ( |  | ) |

inline

Get the coarse level right hand side.

Returns
  The coarse level right hand side.

## moveToCoarseLevel()

template<class FO, class CO>

virtual void Dune::Amg::LevelTransferPolicyCpr< FO, CO >::moveToCoarseLevel | ( | const FineRangeType & | fineRhs | ) |

pure virtual

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

  fineRhs | The current residual of the fine level system.

## moveToFineLevel()

template<class FO, class CO>

virtual void Dune::Amg::LevelTransferPolicyCpr< FO, CO >::moveToFineLevel | ( | FineDomainType & | fineLhs | ) |

pure 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.

Implemented in Dune::Amg::AggregationLevelTransferPolicyCpr< O, C >, Opm::gpuistl::GpuPressureTransferPolicy< FineOperator, Communication, Scalar, transpose >, Opm::PressureBhpTransferPolicy< FineOperator, Communication, Scalar, transpose >, and Opm::PressureTransferPolicy< FineOperator, Communication, Scalar, transpose >.

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

- opm/simulators/linalg/twolevelmethodcpr.hh