chombo-discharge
Loading...
Searching...
No Matches
CD_EBCoarseFineParticleMesh.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_EBCOARSEFINEPARTICLEMESH_H
14#define CD_EBCOARSEFINEPARTICLEMESH_H
15
16// Chombo includes
17#include <DisjointBoxLayout.H>
18#include <EBLevelGrid.H>
19#include <EBCellFAB.H>
20#include <ProblemDomain.H>
21
22// Our includes
23#include <CD_EBCoarAve.H>
24#include <CD_NamespaceHeader.H>
25
39{
40public:
45 {
46 Arithmetic,
47 Conservative
48 };
49
54
64 const int a_refRat,
66
71
79 virtual void
82 const int a_refRat,
84
93 virtual void
95
103 virtual void
105
113 virtual void
115
120 virtual void
122
129 virtual void
133
140
145 template <int NCOMP>
148
154
159
164
169
174
179
184
189
195
201
207
213
218
223
228
234
239
245
251
256
261
265 void
267
271 void
273
277 void
279
286 void
288
295 void
297};
298
299#include <CD_NamespaceFooter.H>
300
301#endif
Average
Various averaging methods.
Definition CD_Average.H:25
Declaration of conservative coarsening utility.
A class for handling particle deposition clouds that hang over refinement boundaries....
Definition CD_EBCoarseFineParticleMesh.H:39
Copier m_copierFiCoToFiCo
Copier for that moves data from valid+ghost -> valid on the refined coarse level.
Definition CD_EBCoarseFineParticleMesh.H:212
LayoutData< VoFIterator > m_vofIterCoar
VoFIterator for coarse cells.
Definition CD_EBCoarseFineParticleMesh.H:238
EBLevelGrid m_eblgFine
Fine EBLevelGrid.
Definition CD_EBCoarseFineParticleMesh.H:178
void arithmeticAverageAndAdd(EBCellFAB &a_coarData, const EBCellFAB &a_fineData, const DataIndex &a_din) const noexcept
Arithmetically average and add data from the refined coarse data to the coarse data.
Definition CD_EBCoarseFineParticleMesh.cpp:664
EBLevelGrid m_eblgFiCo
Refined coarse EBLevelGrid.
Definition CD_EBCoarseFineParticleMesh.H:183
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.
Definition CD_EBCoarseFineParticleMesh.cpp:263
bool m_verbose
Verbose or not. Useful for debugging.
Definition CD_EBCoarseFineParticleMesh.H:168
LayoutData< BaseIVFAB< VoFStencil > > m_cellConservativeStencils
Stencils for conservative coarsening of volume data.
Definition CD_EBCoarseFineParticleMesh.H:250
EBLevelGrid m_eblgCoar
Coarse EBLevelGrid.
Definition CD_EBCoarseFineParticleMesh.H:173
void defineVoFIterators() noexcept
Define the vof iterators.
Definition CD_EBCoarseFineParticleMesh.cpp:105
Copier m_copierFiCoToFineNoGhosts
Copier for copying data from the refined coarse level to the fine level.
Definition CD_EBCoarseFineParticleMesh.H:206
LayoutData< VoFIterator > m_vofIterCoFiGhosts
VoFIterator for coarse grid cells that are coarsenings of fine-grid ghost irregular cells.
Definition CD_EBCoarseFineParticleMesh.H:233
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.
Definition CD_EBCoarseFineParticleMesh.cpp:425
LayoutData< BaseIVFAB< VoFStencil > > m_cellArithmeticStencils
Stencils for arithmetic coarsening of volume data.
Definition CD_EBCoarseFineParticleMesh.H:244
LevelData< EBCellFAB > m_bufferFiCoRealVect
Buffer storage on the refined coarse level. One component only.
Definition CD_EBCoarseFineParticleMesh.H:222
void defineStencils() noexcept
Define the vof iterators.
Definition CD_EBCoarseFineParticleMesh.cpp:176
void defineBufferFiCo() noexcept
Define the buffer storages.
Definition CD_EBCoarseFineParticleMesh.cpp:248
LayoutData< VoFIterator > m_vofIterFineGhosts
VoFIterator for fine-grid irregular ghost cells.
Definition CD_EBCoarseFineParticleMesh.H:227
virtual void restrictAndAddFiCoDataToCoar(LevelData< EBCellFAB > &a_coarData, const LevelData< EBCellFAB > &a_fiCoData, const EBCoarseFineParticleMesh::Average a_average) const noexcept
Coarsen the data on the refined coarse grid to the coarse grid. The grids must be defined over the sa...
Definition CD_EBCoarseFineParticleMesh.cpp:555
static constexpr int m_nComp
Maximum number of components.
Definition CD_EBCoarseFineParticleMesh.H:158
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.
Definition CD_EBCoarseFineParticleMesh.cpp:445
bool m_isDefined
Is defined or not.
Definition CD_EBCoarseFineParticleMesh.H:163
LevelData< EBCellFAB > m_bufferFiCoReal
Buffer storage on the refined coarse level. One component only.
Definition CD_EBCoarseFineParticleMesh.H:217
virtual void define(const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgFine, const int a_refRat, const IntVect a_ghost) noexcept
Define function.
Definition CD_EBCoarseFineParticleMesh.cpp:52
EBLevelGrid m_eblgCoFi
Coarsening of m_eblgFine.
Definition CD_EBCoarseFineParticleMesh.H:188
EBCoarseFineParticleMesh() noexcept
Default constructor. Leaves object in undefined state and subsequently requires a call to define.
Definition CD_EBCoarseFineParticleMesh.cpp:30
IntVect m_ghost
Number of ghost cells in data holders.
Definition CD_EBCoarseFineParticleMesh.H:260
virtual void exchangeAndAddFiCoData(LevelData< EBCellFAB > &a_fiCoData) const noexcept
Function which performs an exchange+add operation on the refined coarse data.
Definition CD_EBCoarseFineParticleMesh.cpp:538
Copier m_copierCoFiToCoarIncludeGhosts
Copier for copying data from the coarsened fine level to the coarse level.
Definition CD_EBCoarseFineParticleMesh.H:200
Average
Simple enum for switch between arithmetic and conservative averaging.
Definition CD_EBCoarseFineParticleMesh.H:45
Copier m_copierFiCoToFineIncludeGhosts
Copier for copying data from the refined coarse level to the fine level.
Definition CD_EBCoarseFineParticleMesh.H:194
static constexpr int m_comp
Default component.
Definition CD_EBCoarseFineParticleMesh.H:153
int m_refRat
Refinement ratio between the two levels.
Definition CD_EBCoarseFineParticleMesh.H:255
void conservativeAverageAndAdd(EBCellFAB &a_coarData, const EBCellFAB &a_fineData, const DataIndex &a_din) const noexcept
Conservatively average and add data from the refined coarse data to the coarse data.
Definition CD_EBCoarseFineParticleMesh.cpp:606
LevelData< EBCellFAB > & getBufferFiCo() const noexcept
Get buffer storage on the refined coarse level.
const EBLevelGrid & getEblgFiCo() const
Get the refined version of the coarse eblevelgrid.
Definition CD_EBCoarseFineParticleMesh.cpp:388
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38