chombo-discharge
Loading...
Searching...
No Matches
CD_EBCoarseToFineInterp.H
Go to the documentation of this file.
1/* chombo-discharge
2 * Copyright © 2022 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_EBCoarseToFineInterp_H
13#define CD_EBCoarseToFineInterp_H
14
15// Chombo includes
16#include <EBLevelGrid.H>
17#include <LevelData.H>
18#include <EBCellFAB.H>
19#include <BaseIVFAB.H>
20
21// Our includes
22#include <CD_NamespaceHeader.H>
23
32{
33public:
41 enum Type
42 {
43 PWC,
44 ConservativePWC,
45 ConservativeMinMod,
46 ConservativeMonotonizedCentral,
47 ConservativeSuperbee,
48 };
49
54
68
73
78
83
89
95
105 virtual void
109 const int& a_refRat) noexcept;
110
118 virtual void
123
131 virtual void
136
142 {
143 MinMod,
144 MonotonizedCentral,
145 Superbee
146 };
147
152
157
162
167
172
177
182
188
194
200
206
211
215 virtual void
217
227 virtual void
231 const int& a_fineVar,
233
242 virtual void
246 const int& a_fineVar,
248
258 virtual void
262 const int& a_fineVar,
263 const int& a_coarVar,
265
275 virtual void
279 const int& a_fineVar,
281
291 virtual void
295 const int& a_fineVar,
297
306 virtual void
310 const int a_fineVar,
312
321 virtual void
325 const int a_fineVar,
327};
328
329#include <CD_NamespaceFooter.H>
330
331#endif
Class for interpolating data to fine grids. Can use constant interpolation or include limiters.
Definition CD_EBCoarseToFineInterp.H:32
virtual void defineWeights() noexcept
Define weights for cut-cell conservative regridding.
Definition CD_EBCoarseToFineInterp.cpp:106
EBLevelGrid m_eblgCoar
Coarse grid.
Definition CD_EBCoarseToFineInterp.H:176
LevelData< BaseIVFAB< Real > > m_irregCoFi
Data holder for holding data on the coarsened fine grids.
Definition CD_EBCoarseToFineInterp.H:199
virtual void checkConservation(const EBCellFAB &a_fineData, const EBCellFAB &a_coarData, const DataIndex &a_dit, const int a_fineVar, const int a_coarVar) const noexcept
Check if the interpolation conserved. This will print an error message if it didn't.
Definition CD_EBCoarseToFineInterp.cpp:657
LayoutData< VoFIterator > m_coarVoFs
Iterator for coarse grid cells.
Definition CD_EBCoarseToFineInterp.H:210
LayoutData< VoFIterator > m_fineVoFs
Iterator for valid cut-cells.
Definition CD_EBCoarseToFineInterp.H:205
bool m_isDefined
Is defined or not.
Definition CD_EBCoarseToFineInterp.H:151
std::map< IntVect, Copier > m_cellCopiers
Map of Copiers that we need for going from valid+ghost -> valid+ghost.
Definition CD_EBCoarseToFineInterp.H:166
LevelData< BaseIVFAB< Real > > m_volumeWeights
Weights in cut-cells when regridding conservatively.
Definition CD_EBCoarseToFineInterp.H:187
EBLevelGrid m_eblgCoFi
Coarsened fine grid (i.e., has same ProblemDomain as m_eblgCoar);.
Definition CD_EBCoarseToFineInterp.H:181
virtual void interpolateConservativeSlope(EBCellFAB &a_fineData, const EBCellFAB &a_coarData, const DataIndex &a_dit, const int &a_fineVar, const int &a_coarVar, const SlopeLimiter &a_limiter) const noexcept
Sloped interpolation of an EBCellFAB. Uses specified input slope.
Definition CD_EBCoarseToFineInterp.cpp:409
virtual void interpolatePWC(EBCellFAB &a_fineData, const EBCellFAB &a_coarData, const DataIndex &a_dit, const int &a_fineVar, const int &a_coarVar) const noexcept
Piecewise constant interpolation of an EBCellFAB. This ignores the volume fraction....
Definition CD_EBCoarseToFineInterp.cpp:291
Copier m_ebCopier
Copier for making copying from m_eblg to m_eblgCoFi go faster.
Definition CD_EBCoarseToFineInterp.H:161
EBLevelGrid m_eblgFine
Fine grid.
Definition CD_EBCoarseToFineInterp.H:171
virtual void interpolate(LevelData< EBCellFAB > &a_fineData, const LevelData< EBCellFAB > &a_coarData, const Interval &a_variables, const EBCoarseToFineInterp::Type &a_interpType) const noexcept
Interpolate to the fine grid using the specified method.
Definition CD_EBCoarseToFineInterp.cpp:165
Type
Type of interpolation methods supported. PWC = Piecewise constant, ignoring the embedded boundary....
Definition CD_EBCoarseToFineInterp.H:42
virtual void define(const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const EBLevelGrid &a_eblgCoar, const int &a_refRat) noexcept
Define operation. Puts object in usable state.
Definition CD_EBCoarseToFineInterp.cpp:46
virtual void interpolateConservativePWC(EBCellFAB &a_fineData, const EBCellFAB &a_coarData, const DataIndex &a_dit, const int &a_fineVar, const int &a_coarVar) const noexcept
Piecewise constant interpolation of an EBCellFAB. Does not use slopes.
Definition CD_EBCoarseToFineInterp.cpp:351
LevelData< BaseIVFAB< Real > > m_areaWeights
Weights in cut-cells when regridding conservatively.
Definition CD_EBCoarseToFineInterp.H:193
int m_refRat
Refinement factor.
Definition CD_EBCoarseToFineInterp.H:156
SlopeLimiter
Supported slope limiters for conservative interpolation with slopes.
Definition CD_EBCoarseToFineInterp.H:142
EBCoarseToFineInterp() noexcept
Default constructor. Must subsequently call the define method.
Definition CD_EBCoarseToFineInterp.cpp:25
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25