chombo-discharge
Loading...
Searching...
No Matches
CD_EBGhostCellInterpolator.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_EBGhostCellInterpolator_H
13#define CD_EBGhostCellInterpolator_H
14
15// Std includes
16#include <map>
17
18// Chombo includes
19#include <EBLevelGrid.H>
20
21// Our includes
22#include <CD_Location.H>
23#include <CD_NamespaceHeader.H>
24
32{
33public:
37 enum Type
38 {
39 PWC,
40 MinMod,
41 MonotonizedCentral,
42 Superbee
43 };
44
49
54
69 const int a_refRat,
71
76
87 virtual void
92 const int a_refRat,
94
102 virtual void
107
113
118
123
128
133
138
144
149
154
161
166
171
177
181 virtual void
183
187 virtual void
189
199 virtual void
203 const int a_fineVar,
204 const int a_coarVar,
206
216 virtual void
220 const int a_fineVar,
221 const int a_coarVar,
223
231
239
247};
248
249#include <CD_NamespaceFooter.H>
250
251#endif
Declaration of cell positions.
Class which can interpolate ghost cells across the coarse-fine interface. To select an interpolation ...
Definition CD_EBGhostCellInterpolator.H:32
virtual void interpolateRegular(FArrayBox &a_phiFine, const FArrayBox &a_phiCoar, const DataIndex &a_dit, const int a_fineVar, const int a_coarVar, const Type a_interpType) const noexcept
Regular interpolation, as if the EB was not there.
Definition CD_EBGhostCellInterpolator.cpp:216
LayoutData< std::map< std::pair< int, Side::LoHiSide >, Box > > m_regularGhostRegions
Regular ghost regions to be interpolated.
Definition CD_EBGhostCellInterpolator.H:148
Real superbee(const Real &dwl, const Real &dwr) const noexcept
Superbee slope limiter.
Definition CD_EBGhostCellInterpolator.cpp:500
EBGhostCellInterpolator() noexcept
Weak constructor. Need to call define afterwards.
Definition CD_EBGhostCellInterpolator.cpp:24
LayoutData< VoFIterator > m_coarIrregCells
Coarse-grid cells on the caorse-side of the interface that are irregular cells.
Definition CD_EBGhostCellInterpolator.H:170
virtual void defineBuffers() noexcept
Define buffers.
Definition CD_EBGhostCellInterpolator.cpp:161
IntVect m_ghostVector
Minimum number of ghost cells in input data.
Definition CD_EBGhostCellInterpolator.H:132
virtual void define(const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const EBLevelGrid &a_eblgCoar, const IntVect &a_ghostVector, const int a_refRat, const int a_ghostCF) noexcept
Define method. Puts object in usable state.
Definition CD_EBGhostCellInterpolator.cpp:49
Real minmod(const Real &dwl, const Real &dwr) const noexcept
minmod slope function.
Definition CD_EBGhostCellInterpolator.cpp:488
Copier m_copier
Copier for making copying from m_eblgCoar to m_grownCoarData go faster.
Definition CD_EBGhostCellInterpolator.H:153
virtual void defineGhostRegions() noexcept
Define ghost regions to be interpolated.
Definition CD_EBGhostCellInterpolator.cpp:75
bool m_isDefined
Is defined or not.
Definition CD_EBGhostCellInterpolator.H:112
virtual void interpolateIrregular(EBCellFAB &a_phiFine, const EBCellFAB &a_phiCoar, const DataIndex &a_dit, const int a_fineVar, const int a_coarVar, const Type a_interpType) const noexcept
Ghost cell interpolation near the EB, correcting slopes that broke in interpolateRegular.
Definition CD_EBGhostCellInterpolator.cpp:365
LayoutData< BaseIVFAB< VolIndex > > m_coarsenedFineGhosts
List of coarse-grid cells that appear through coarsening a fine-grid ghost cell.
Definition CD_EBGhostCellInterpolator.H:160
EBLevelGrid m_eblgFine
Fine grids.
Definition CD_EBGhostCellInterpolator.H:117
LayoutData< VoFIterator > m_fineIrregCells
Fine-grid ghost cells on the coarse-fine interface that overlap an irregular coarse cell.
Definition CD_EBGhostCellInterpolator.H:165
EBLevelGrid m_eblgCoar
Coarse grids.
Definition CD_EBGhostCellInterpolator.H:122
EBLevelGrid m_eblgCoFi
Coarsened fine grids.
Definition CD_EBGhostCellInterpolator.H:127
Real monotonizedCentral(const Real &dwl, const Real &dwr) const noexcept
Monotonized central difference slope limiter.
Definition CD_EBGhostCellInterpolator.cpp:517
virtual void interpolate(LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phiCoar, const Interval a_variables, const Type a_interpType) const noexcept
Do inhomogeneous interpolation.
Definition CD_EBGhostCellInterpolator.cpp:169
int m_refRat
Refinement factor between fine and coarse level.
Definition CD_EBGhostCellInterpolator.H:137
Type
Type of interpolation slopes supported.
Definition CD_EBGhostCellInterpolator.H:38
LayoutData< BaseIVFAB< Real > > m_coarIrregSlopes
Buffer data defined on the coarsened fine grids (over m_coarIrregCells). Used for holding slopes in t...
Definition CD_EBGhostCellInterpolator.H:176
int m_ghostCF
Number of ghost cells to fill across coarse-fine interface.
Definition CD_EBGhostCellInterpolator.H:143
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37