12 #ifndef CD_EBCoarseToFineInterp_H
13 #define CD_EBCoarseToFineInterp_H
16 #include <EBLevelGrid.H>
17 #include <LevelData.H>
18 #include <EBCellFAB.H>
19 #include <BaseIVFAB.H>
22 #include <CD_NamespaceHeader.H>
46 ConservativeMonotonizedCentral,
65 const EBLevelGrid& a_eblgCoFi,
66 const EBLevelGrid& a_eblgCoar,
67 const
int& a_refRat) noexcept;
106 define(const EBLevelGrid& a_eblgFine,
107 const EBLevelGrid& a_eblgCoFi,
108 const EBLevelGrid& a_eblgCoar,
109 const
int& a_refRat) noexcept;
120 const LevelData<EBCellFAB>& a_coarData,
121 const Interval& a_variables,
132 interpolate(LevelData<BaseIVFAB<Real>>& a_fineData,
133 const LevelData<BaseIVFAB<Real>>& a_coarData,
134 const Interval& a_variables,
229 const EBCellFAB& a_coarData,
230 const DataIndex& a_dit,
231 const
int& a_fineVar,
232 const
int& a_coarVar) const noexcept;
244 const EBCellFAB& a_coarData,
245 const DataIndex& a_dit,
246 const
int& a_fineVar,
247 const
int& a_coarVar) const noexcept;
260 const EBCellFAB& a_coarData,
261 const DataIndex& a_dit,
262 const
int& a_fineVar,
263 const
int& a_coarVar,
277 const BaseIVFAB<Real>& a_coarData,
278 const DataIndex& a_dit,
279 const
int& a_fineVar,
280 const
int& a_coarVar) const noexcept;
293 const BaseIVFAB<Real>& a_coarData,
294 const DataIndex& a_dit,
295 const
int& a_fineVar,
296 const
int& a_coarVar) const noexcept;
308 const EBCellFAB& a_coarData,
309 const DataIndex& a_dit,
311 const
int a_coarVar) const noexcept;
323 const BaseIVFAB<Real>& a_coarData,
324 const DataIndex& a_dit,
326 const
int a_coarVar) const noexcept;
329 #include <CD_NamespaceFooter.H>
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