chombo-discharge
Loading...
Searching...
No Matches
CD_EBCoarseToFineInterp.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_EBCOARSETOFINEINTERP_H
14#define CD_EBCOARSETOFINEINTERP_H
15
16// Chombo includes
17#include <EBLevelGrid.H>
18#include <LevelData.H>
19#include <EBCellFAB.H>
20#include <BaseIVFAB.H>
21
22// Our includes
23#include <CD_NamespaceHeader.H>
24
33{
34public:
42 enum Type
43 {
44 PWC,
45 ConservativePWC,
46 ConservativeMinMod,
47 ConservativeMonotonizedCentral,
48 ConservativeSuperbee,
49 };
50
55
67
72
77
82
88
94
102 virtual void
106 const int& a_refRat) noexcept;
107
115 virtual void
120
128 virtual void
133
139 {
140 MinMod,
141 MonotonizedCentral,
142 Superbee
143 };
144
149
154
159
164
169
174
179
185
191
197
203
208
212 virtual void
214
224 virtual void
228 const int& a_fineVar,
230
239 virtual void
243 const int& a_fineVar,
245
255 virtual void
259 const int& a_fineVar,
260 const int& a_coarVar,
262
272 virtual void
276 const int& a_fineVar,
278
288 virtual void
292 const int& a_fineVar,
294
303 virtual void
307 const int a_fineVar,
309
318 virtual void
322 const int a_fineVar,
324};
325
326#include <CD_NamespaceFooter.H>
327
328#endif
Class for interpolating data to fine grids. Can use constant interpolation or include limiters.
Definition CD_EBCoarseToFineInterp.H:33
virtual void defineWeights() noexcept
Define weights for cut-cell conservative regridding.
Definition CD_EBCoarseToFineInterp.cpp:104
EBLevelGrid m_eblgCoar
Coarse grid.
Definition CD_EBCoarseToFineInterp.H:173
LevelData< BaseIVFAB< Real > > m_irregCoFi
Data holder for holding data on the coarsened fine grids.
Definition CD_EBCoarseToFineInterp.H:196
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:676
LayoutData< VoFIterator > m_coarVoFs
Iterator for coarse grid cells.
Definition CD_EBCoarseToFineInterp.H:207
LayoutData< VoFIterator > m_fineVoFs
Iterator for valid cut-cells.
Definition CD_EBCoarseToFineInterp.H:202
bool m_isDefined
Is defined or not.
Definition CD_EBCoarseToFineInterp.H:148
std::map< IntVect, Copier > m_cellCopiers
Map of Copiers that we need for going from valid+ghost -> valid+ghost.
Definition CD_EBCoarseToFineInterp.H:163
LevelData< BaseIVFAB< Real > > m_volumeWeights
Weights in cut-cells when regridding conservatively.
Definition CD_EBCoarseToFineInterp.H:184
EBLevelGrid m_eblgCoFi
Coarsened fine grid (i.e., has same ProblemDomain as m_eblgCoar);.
Definition CD_EBCoarseToFineInterp.H:178
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:415
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:289
Copier m_ebCopier
Copier for making copying from m_eblg to m_eblgCoFi go faster.
Definition CD_EBCoarseToFineInterp.H:158
EBLevelGrid m_eblgFine
Fine grid.
Definition CD_EBCoarseToFineInterp.H:168
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:163
Type
Type of interpolation methods supported. PWC = Piecewise constant, ignoring the embedded boundary....
Definition CD_EBCoarseToFineInterp.H:43
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:44
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:357
LevelData< BaseIVFAB< Real > > m_areaWeights
Weights in cut-cells when regridding conservatively.
Definition CD_EBCoarseToFineInterp.H:190
int m_refRat
Refinement factor.
Definition CD_EBCoarseToFineInterp.H:153
SlopeLimiter
Supported slope limiters for conservative interpolation with slopes.
Definition CD_EBCoarseToFineInterp.H:139
EBCoarseToFineInterp() noexcept
Default constructor. Must subsequently call the define method.
Definition CD_EBCoarseToFineInterp.cpp:26
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26