chombo-discharge
Loading...
Searching...
No Matches
CD_EBCoarAve.H
Go to the documentation of this file.
1/* chombo-discharge
2 * Copyright © 2023 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_EBCoarAve_H
13#define CD_EBCoarAve_H
14
15// Chombo includes
16#include <AggStencil.H>
17#include <EBLevelGrid.H>
18#include <VoFIterator.H>
19#include <FaceIterator.H>
20
21// Our includes
22#include <CD_Average.H>
23#include <CD_NamespaceHeader.H>
24
31{
32public:
36 enum class Type
37 {
38 Arithmetic,
39 Conservative,
40 Harmonic
41 };
42
47
52
69 const int& a_refRat,
71
83
88
96 virtual void
100 const int& a_refRat) noexcept;
101
105 virtual void
107
115 virtual void
120
128 virtual void
133
141 virtual void
146
152
157
162
167
172
177
182
187
192
197
202
207
214
219
224
229
234
239
244
249
253 virtual void
255
259 virtual void
261
265 virtual void
267
271 virtual void
273
282 virtual void
286 const int& a_coarVar,
296 virtual void
300 const int& a_coarVar,
302
311 virtual void
315 const int& a_coarVar,
317
327 virtual void
331 const int& a_fineVar,
332 const int& a_coarVar,
334
344 virtual void
348 const int& a_coarVar,
349 const int& a_fineVar,
351
361 virtual void
365 const int& a_coarVar,
366 const int& a_fineVar,
368
377 virtual void
381 const int& a_coarVar,
383
392 virtual void
396 const int& a_coarVar,
398
407 virtual void
411 const int& a_coarVar,
413};
414
415#include <CD_NamespaceFooter.H>
416
417#endif
Declaration of averaging methods.
Average
Various averaging methods.
Definition CD_Average.H:24
Class which replaces data at coarse level of refinement with average at fine level of refinement.
Definition CD_EBCoarAve.H:31
LayoutData< BaseIVFAB< VoFStencil > > m_cellConservativeStencils
Stencils for conservative coarsening of volume data.
Definition CD_EBCoarAve.H:218
virtual void defineCellStencils() noexcept
Define stencils for the various coarsening functions of cell data.
Definition CD_EBCoarAve.cpp:119
int m_refRat
Refinement ratio.
Definition CD_EBCoarAve.H:156
LayoutData< BaseIVFAB< VoFStencil > > m_ebConservativeStencils
Stencils for conservative coarsening of EB data.
Definition CD_EBCoarAve.H:248
virtual void harmonicAverage(EBCellFAB &a_coarData, const EBCellFAB &a_fineData, const DataIndex &a_datInd, const int &a_coarVar, const int &a_fineVar) const noexcept
Do a harmonic average of cell-centered data when coarsening.
Definition CD_EBCoarAve.cpp:498
EBLevelGrid m_eblgCoFi
Coarsened fine grids.
Definition CD_EBCoarAve.H:171
virtual void define(const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoar, const EBLevelGrid &a_eblgCoFi, const int &a_refRat) noexcept
Define function – puts operator in usable state.
Definition CD_EBCoarAve.cpp:78
LayoutData< std::map< int, FaceIterator > > m_irregFacesCoFi
Irregular faces on the coarsened fine layout.
Definition CD_EBCoarAve.H:201
EBLevelGrid m_eblgCoar
Coarse grids.
Definition CD_EBCoarAve.H:166
virtual void defineFaceStencils() noexcept
Define stencils for the various coarsening functions of face data.
Definition CD_EBCoarAve.cpp:195
LayoutData< BaseIVFAB< VoFStencil > > m_ebHarmonicStencils
Stencils for harmonic coarsening of EB data.
Definition CD_EBCoarAve.H:243
std::map< IntVect, Copier > m_ebCopiers
Pre-built copier for copying from m_eblgCoFi to m_eblgCoar.
Definition CD_EBCoarAve.H:186
std::map< IntVect, Copier > m_faceCopiers
Pre-built copier for copying from m_eblgCoFi to m_eblgCoar.
Definition CD_EBCoarAve.H:181
virtual void defineEBStencils() noexcept
Define stencils for the various coarsening functions of EB data.
Definition CD_EBCoarAve.cpp:277
LayoutData< VoFIterator > m_irregCellsCoFi
Irregular cells on the coarsened fine layout.
Definition CD_EBCoarAve.H:196
EBCoarAve() noexcept
Default constructor. Must call define afterwards.
Definition CD_EBCoarAve.cpp:23
virtual void conservativeAverage(EBCellFAB &a_coarData, const EBCellFAB &a_fineData, const DataIndex &a_datInd, const int &a_coarVar, const int &a_fineVar) const noexcept
Do a conservative average of cell-centered data when coarsening.
Definition CD_EBCoarAve.cpp:561
Type
Type of coarsening supported.
Definition CD_EBCoarAve.H:37
EBLevelGrid m_eblgFine
Fine grids.
Definition CD_EBCoarAve.H:161
LayoutData< IntVectSet > m_irregSetsCoFi
Irregular cells on the coarsened fine layout.
Definition CD_EBCoarAve.H:191
LayoutData< BaseIVFAB< VoFStencil > > m_cellArithmeticStencils
Stencils for arithmetic coarsening of volume data.
Definition CD_EBCoarAve.H:206
virtual void averageData(LevelData< EBCellFAB > &a_coarData, const LevelData< EBCellFAB > &a_fineData, const Interval &a_variables, const Average &a_average) const noexcept
Do an average of cell data.
Definition CD_EBCoarAve.cpp:366
LayoutData< BaseIVFAB< VoFStencil > > m_cellHarmonicStencils
Stencils for harmonic coarsening of volume data.
Definition CD_EBCoarAve.H:213
LayoutData< BaseIVFAB< VoFStencil > > m_ebArithmeticStencils
Stencils for arithmetic coarsening of EB data.
Definition CD_EBCoarAve.H:238
virtual void arithmeticAverage(EBCellFAB &a_coarData, const EBCellFAB &a_fineData, const DataIndex &a_datInd, const int &a_coarVar, const int &a_fineVar) const noexcept
Do an arithmetic average of cell-centered data when coarsening.
Definition CD_EBCoarAve.cpp:438
std::map< IntVect, Copier > m_cellCopiers
Pre-built copier for copying from m_eblgCoFi to m_eblgCoar.
Definition CD_EBCoarAve.H:176
LayoutData< std::map< int, BaseIFFAB< FaceStencil > > > m_faceHarmonicStencils
Stencils for harmonic coarsening of face data.
Definition CD_EBCoarAve.H:228
LayoutData< std::map< int, BaseIFFAB< FaceStencil > > > m_faceArithmeticStencils
Stencils for arithmetic coarsening of face data.
Definition CD_EBCoarAve.H:223
bool m_isDefined
Defined or not.
Definition CD_EBCoarAve.H:151
virtual void defineBuffers() noexcept
Define buffer storage.
Definition CD_EBCoarAve.cpp:360
LayoutData< std::map< int, BaseIFFAB< FaceStencil > > > m_faceConservativeStencils
Stencils for conservative coarsening of face data.
Definition CD_EBCoarAve.H:233
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37