chombo-discharge
Public Member Functions | Protected Attributes | List of all members
EBMGProlong Class Reference

Class for prolongation of multigrid residual onto a finer grid. More...

#include <CD_EBMGProlong.H>

Public Member Functions

 EBMGProlong () noexcept
 Default constructor. User must subsequently call the define function.
 
 EBMGProlong (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_refRat) noexcept
 Full constructor. Calls the define fucntion. More...
 
virtual ~EBMGProlong () noexcept
 Destructor.
 
virtual void define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_refRat) noexcept
 Define function. More...
 
virtual void prolongResidual (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval a_variables) const noexcept
 Prolong residual onto the coarse grid. More...
 

Protected Attributes

bool m_isDefined
 Defined or not.
 
int m_refRat
 Refinement ratio.
 
EBLevelGrid m_eblgFine
 Fine grid.
 
EBLevelGrid m_eblgCoar
 Coarse grid.
 
EBLevelGrid m_eblgCoFi
 Coarsened fine grids.
 
Copier m_copier
 Copier for making copying from eblgCoar to eblgCoFi go faster.
 
LayoutData< BaseIVFAB< VoFStencil > > m_prolongStencils
 Prolongion stencils near the EB. More...
 
LayoutData< VoFIterator > m_vofitFine
 Iterator for iterating over cut-cells on the fine level.
 

Detailed Description

Class for prolongation of multigrid residual onto a finer grid.

Note
This class only does constant prolongation. Using Chombos EBMGInterp with piecewise linear (bi/tri-linear) did not improve multigrid convergence.

Constructor & Destructor Documentation

◆ EBMGProlong()

EBMGProlong::EBMGProlong ( const EBLevelGrid &  a_eblgFine,
const EBLevelGrid &  a_eblgCoar,
const int &  a_refRat 
)
noexcept

Full constructor. Calls the define fucntion.

Parameters
[in]a_eblgFineFine level that we prolong to.
[in]a_eblgCoarCoarse level that we prolong from.
[in]a_refRatRefinement factor between levels.

Member Function Documentation

◆ define()

void EBMGProlong::define ( const EBLevelGrid &  a_eblgFine,
const EBLevelGrid &  a_eblgCoar,
const int &  a_refRat 
)
virtualnoexcept

Define function.

Parameters
[in]a_eblgFineFine level that we prolong to.
[in]a_eblgCoarCoarse level that we prolong from.
[in]a_refRatRefinement factor between levels.

◆ prolongResidual()

void EBMGProlong::prolongResidual ( LevelData< EBCellFAB > &  a_fineData,
const LevelData< EBCellFAB > &  a_coarData,
const Interval  a_variables 
) const
virtualnoexcept

Prolong residual onto the coarse grid.

Parameters
[in,out]a_fineDataFine-grid residual.
[in]a_coarDataCoarse-grid residual
[in]a_variablesVariables to prolong.

Member Data Documentation

◆ m_prolongStencils

LayoutData<BaseIVFAB<VoFStencil> > EBMGProlong::m_prolongStencils
protected

Prolongion stencils near the EB.

The stencils are defined on the fine grid but their vofs reach into the coarse grid.


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