A class for handling particle deposition clouds that hang over refinement boundaries. This class does not include any deposition functionality but provides buffers for moving mass between two levels.
More...
#include <CD_EBCoarseFineParticleMesh.H>
|
| EBCoarseFineParticleMesh () noexcept |
| Default constructor. Leaves object in undefined state and subsequently requires a call to define.
|
|
| EBCoarseFineParticleMesh (const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgFine, const int a_refRat, const IntVect a_ghost) noexcept |
| Full constructor. Calls define. More...
|
|
virtual | ~EBCoarseFineParticleMesh () noexcept |
| Destructor (does nothing)
|
|
virtual void | define (const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgFine, const int a_refRat, const IntVect a_ghost) noexcept |
| Define function. More...
|
|
virtual void | addFineGhostsToCoarse (LevelData< EBCellFAB > &a_coarData, const LevelData< EBCellFAB > &a_fineData) const noexcept |
| Coarsen the fine-level ghost cells and add them to the coarse level. More...
|
|
virtual void | addFiCoDataToFine (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_fiCoData) const noexcept |
| Add the valid+ghost cells on the refined coarse level to the valid cells on the fine level. More...
|
|
virtual void | addInvalidCoarseToFine (LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData) const noexcept |
| Function which piecewise interpolates the data underneath the fine grid and adds it to the fine grid. More...
|
|
const EBLevelGrid & | getEblgFiCo () const |
| Get the refined version of the coarse eblevelgrid.
|
|
|
static constexpr int | m_comp = 0 |
| Default component.
|
|
static constexpr int | m_nComp = 1 |
| Maximum number of components.
|
|
A class for handling particle deposition clouds that hang over refinement boundaries. This class does not include any deposition functionality but provides buffers for moving mass between two levels.
To use this class, the user can directly call three functions:
- addFineGhostsToCoarse which adds the contribution of the fine level's particles to the coarse level. This will add the part of the particle clouds that hang over the refinement boundary to the coarse level. Likewise, the user can get a buffer (getFiCoBuffer) for getting a temporary data holder on which he can use special deposition procedures.
- addFiCoDataToFine where the user will have deposited coarse-level particles on a fine-grid buffer, and he/she wants to add the result back to the fine grid.
- addInvalidCoarseToFine where the coarse-grid deposition clouds are interpolated to the fine grid. This is the case when e.g. the coarse-grid clouds deposit underneath the fine level but the mass should end up on the fine level.
◆ EBCoarseFineParticleMesh()
EBCoarseFineParticleMesh::EBCoarseFineParticleMesh |
( |
const EBLevelGrid & |
a_eblgCoar, |
|
|
const EBLevelGrid & |
a_eblgFine, |
|
|
const int |
a_refRat, |
|
|
const IntVect |
a_ghost |
|
) |
| |
|
noexcept |
Full constructor. Calls define.
- Parameters
-
[in] | a_eblgCoar | Coarse grids |
[in] | a_eblgFine | Fine grids |
[in] | a_refRat | Refinement factory between levels |
[in] | a_ghost | Number of ghost cells in mesh data holders. |
◆ addFiCoDataToFine()
void EBCoarseFineParticleMesh::addFiCoDataToFine |
( |
LevelData< EBCellFAB > & |
a_fineData, |
|
|
const LevelData< EBCellFAB > & |
a_fiCoData |
|
) |
| const |
|
virtualnoexcept |
Add the valid+ghost cells on the refined coarse level to the valid cells on the fine level.
This routine is used when the user have deposited coarse-level particles into a_fiCoData (which is a refinement of the coarse level). This routine then adds that data to the fine level. The motion plan defines the computation region as valid+ghost -> valid, which is what we want. However, note that a_fiCo data should only contain the mass from the so-called "halo" particles.
- Parameters
-
[in,out] | a_fineData | Fine mesh data |
[in] | a_fiCoData | Refined coarse data buffer. Users will have deposited the mesh data onto this |
◆ addFineGhostsToCoarse()
void EBCoarseFineParticleMesh::addFineGhostsToCoarse |
( |
LevelData< EBCellFAB > & |
a_coarData, |
|
|
const LevelData< EBCellFAB > & |
a_fineData |
|
) |
| const |
|
virtualnoexcept |
Coarsen the fine-level ghost cells and add them to the coarse level.
On output, the contents in the ghost cells on the refinement boundary are added from the fine level to the coarse level. This routine is used when the fine-level particles have particle clouds that deposit into the ghost cells outside the fine level, i.e. over the refinement boundary. This routine coarsens that data and adds the mass to the coarse level.
- Parameters
-
[in,out] | a_coarData | Coarse mesh data. |
[in] | a_fineData | Fine mesh data. |
◆ addInvalidCoarseToFine()
void EBCoarseFineParticleMesh::addInvalidCoarseToFine |
( |
LevelData< EBCellFAB > & |
a_fineData, |
|
|
const LevelData< EBCellFAB > & |
a_coarData |
|
) |
| const |
|
virtualnoexcept |
Function which piecewise interpolates the data underneath the fine grid and adds it to the fine grid.
The data-motion plan is to use the valid+ghost cells on the coarse level and add it into the valid region on the fine level. However, the buffers' ghost regions are set to zero so this should only add non-ghosted data between the levels.
- Parameters
-
[in,out] | a_fineData | Fine-level data. |
[in] | a_coarData | Coarse-level data. |
◆ define()
void EBCoarseFineParticleMesh::define |
( |
const EBLevelGrid & |
a_eblgCoar, |
|
|
const EBLevelGrid & |
a_eblgFine, |
|
|
const int |
a_refRat, |
|
|
const IntVect |
a_ghost |
|
) |
| |
|
virtualnoexcept |
Define function.
- Parameters
-
[in] | a_eblgCoar | Coarse grids |
[in] | a_eblgFine | Fine grids |
[in] | a_refRat | Refinement factory between levels |
[in] | a_ghost | Number of ghost cells in mesh data holders. |
◆ m_copierCoFiToCoarIncludeGhosts
Copier EBCoarseFineParticleMesh::m_copierCoFiToCoarIncludeGhosts |
|
protected |
Copier for copying data from the coarsened fine level to the coarse level.
- Note
- This copier moves from valid+ghost in the source to valid+ghost in the destination.
◆ m_copierFiCoToFineIncludeGhosts
Copier EBCoarseFineParticleMesh::m_copierFiCoToFineIncludeGhosts |
|
protected |
Copier for copying data from the refined coarse level to the fine level.
- Note
- This copier moves from valid+ghost in the source to valid+ghost in the destination.
◆ m_copierFiCoToFineNoGhosts
Copier EBCoarseFineParticleMesh::m_copierFiCoToFineNoGhosts |
|
protected |
Copier for copying data from the refined coarse level to the fine level.
This copier moves from valid+ghost in the source to valid in the destination (as opposed to m_copierCOFiToCoarIncludeGhosts which adds mass into the ghost cells).
◆ m_vofIterCoFiGhosts
LayoutData<VoFIterator> EBCoarseFineParticleMesh::m_vofIterCoFiGhosts |
|
mutableprotected |
VoFIterator for coarse grid cells that are coarsenings of fine-grid ghost irregular cells.
Essentially a coarsening of m_vofIterFineGhosts.
The documentation for this class was generated from the following files: