Class for restricting multigrid residual onto a coarser grid.
More...
#include <CD_EBMGRestrict.H>
|
| EBMGRestrict () noexcept |
| Default constructor. User must subsequently call the define function.
|
|
| EBMGRestrict (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_refRat) noexcept |
| Full constructor. Calls the define fucntion. More...
|
|
virtual | ~EBMGRestrict () noexcept |
| Destructor.
|
|
virtual void | define (const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const int &a_refRat) noexcept |
| Define function. More...
|
|
virtual void | restrictResidual (LevelData< EBCellFAB > &a_coarData, const LevelData< EBCellFAB > &a_fineData, const Interval a_variables) const noexcept |
| Restrict residual onto the coarse grid. More...
|
|
|
bool | m_isDefined |
| Defined or not.
|
|
int | m_refRat |
| Refinement ratio.
|
|
IntVect | m_ghostPhi |
| Number of ghost cells in data holders.
|
|
EBLevelGrid | m_eblgFine |
| Fine grid.
|
|
EBLevelGrid | m_eblgCoar |
| Coarse grid.
|
|
EBLevelGrid | m_eblgCoFi |
| Coarsened fine grids.
|
|
Copier | m_copier |
| Copier for making copying from the coarsened fine grids to the coarse grid go faster.
|
|
LayoutData< VoFIterator > | m_vofitCoar |
| Iterator for iterating over cut-cells on the coarse level.
|
|
LayoutData< BaseIVFAB< VoFStencil > > | m_restrictStencils |
| Restriction stencils near the EB. More...
|
|
Class for restricting multigrid residual onto a coarser grid.
This class defines an operator for setting phiC = 1/Nref^D * sum(phiFine). This assumes that the input data has already been scaled by the volume fraction (which is what the EB multigrid operators do anyways).
◆ EBMGRestrict()
EBMGRestrict::EBMGRestrict |
( |
const EBLevelGrid & |
a_eblgFine, |
|
|
const EBLevelGrid & |
a_eblgCoar, |
|
|
const int & |
a_refRat |
|
) |
| |
|
noexcept |
Full constructor. Calls the define fucntion.
- Parameters
-
[in] | a_eblgFine | Fine level |
[in] | a_eblgCoar | Coarse level |
[in] | a_refRat | Refinement factor between levels. |
◆ define()
void EBMGRestrict::define |
( |
const EBLevelGrid & |
a_eblgFine, |
|
|
const EBLevelGrid & |
a_eblgCoar, |
|
|
const int & |
a_refRat |
|
) |
| |
|
virtualnoexcept |
Define function.
- Parameters
-
[in] | a_eblgFine | Fine level |
[in] | a_eblgCoar | Coarse level |
[in] | a_refRat | Refinement factor between levels. |
◆ restrictResidual()
void EBMGRestrict::restrictResidual |
( |
LevelData< EBCellFAB > & |
a_coarData, |
|
|
const LevelData< EBCellFAB > & |
a_fineData, |
|
|
const Interval |
a_variables |
|
) |
| const |
|
virtualnoexcept |
Restrict residual onto the coarse grid.
This replaces the coarse-grid residual by an average of the fine-grid residual. Only affects the invalid region of the coarse grid.
- Parameters
-
[in,out] | a_coarData | Coarse-grid residual. |
[in] | a_fineData | Fine-grid residual |
[in] | a_variables | Variables to restrict |
◆ m_restrictStencils
LayoutData<BaseIVFAB<VoFStencil> > EBMGRestrict::m_restrictStencils |
|
protected |
Restriction stencils near the EB.
The stencils are defined on the coarse-grid, but reach into the fine grid.
The documentation for this class was generated from the following files: