chombo-discharge
Loading...
Searching...
No Matches
CD_EBCentroidInterpolation.H
Go to the documentation of this file.
1/* chombo-discharge
2 * Copyright © 2025 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_EBCentroidInterpolation_H
13#define CD_EBCentroidInterpolation_H
14
15// Chombo includes
16#include <EBLevelGrid.H>
17#include <LevelData.H>
18#include <LayoutData.H>
19#include <VoFIterator.H>
20#include <Stencils.H>
21#include <BaseIVFAB.H>
22#include <EBCellFAB.H>
23
24// Our includes
25#include <CD_NamespaceHeader.H>
26
37{
38public:
42 enum class Type
43 {
44 Constant, // Uses cell-centered value
45 Linear, // Uses bi/tri-linear interpolation
46 Taylor, // Uses Taylor-extrapolation
47 LeastSquares, // Uses least-squares reconstruction
48 PiecewiseLinear, // Uses piecewise-linear interpolation
49 MinMod, // Uses slope limiter with minmod slope
50 MonotonizedCentral, // Uses slope limiter with van Leer limiter
51 Superbee // Uses slope limiter with superbee limiter
52 };
53
58
63
71
76
83 virtual void
85
91 virtual void
93
99 void
101
107
112
117
122
127
132
140 virtual bool
145
153 virtual bool
158
166 virtual bool
171
179 virtual bool
184
192
199 MonotonizedCentral(const Real& a_dwl, const Real& a_dwr) const noexcept;
200
208};
209
210#include <CD_NamespaceFooter.H>
211
212#endif
Class for interpolating cell-centered data to the EB centroid.
Definition CD_EBCentroidInterpolation.H:37
Real Superbee(const Real &a_dwl, const Real &a_dwr) const noexcept
Superbee slope limiter.
Definition CD_EBCentroidInterpolation.cpp:467
EBLevelGrid m_eblg
Grids.
Definition CD_EBCentroidInterpolation.H:111
Real MonotonizedCentral(const Real &a_dwl, const Real &a_dwr) const noexcept
Monotonized central difference slope limiter.
Definition CD_EBCentroidInterpolation.cpp:452
virtual bool getLinearStencil(VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept
Utility function for fetching a bilinear/trilinear stencil.
Definition CD_EBCentroidInterpolation.cpp:163
virtual bool getPiecewiseLinearStencil(VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept
Utility function for fetching a piecewise linear stencil.
Definition CD_EBCentroidInterpolation.cpp:228
EBCentroidInterpolation() noexcept
Default constructor. Must call the define function afterwards.
Definition CD_EBCentroidInterpolation.cpp:23
virtual void interpolate(LevelData< BaseIVFAB< Real > > &a_centroidData, const LevelData< EBCellFAB > &a_cellData) const noexcept
Function for interpolating data.
Definition CD_EBCentroidInterpolation.cpp:275
bool m_isDefined
Defined or not.
Definition CD_EBCentroidInterpolation.H:106
Real m_dx
Grid resolution.
Definition CD_EBCentroidInterpolation.H:121
LayoutData< VoFIterator > m_vofIterator
VoF iterator for iterating through the cut-cells.
Definition CD_EBCentroidInterpolation.H:126
Type
Supported interpolation types.
Definition CD_EBCentroidInterpolation.H:43
Real MinMod(const Real &a_dwl, const Real &a_dwr) const noexcept
Minmod slope function.
Definition CD_EBCentroidInterpolation.cpp:440
virtual bool getTaylorExtrapolationStencil(VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept
Utility function for fetching a Taylor-extrapolation stencil.
Definition CD_EBCentroidInterpolation.cpp:180
Type m_interpolationType
Interpolation type.
Definition CD_EBCentroidInterpolation.H:116
virtual bool getLeastSquaresStencil(VoFStencil &a_stencil, const VolIndex &a_vof, const EBISBox &a_ebisBox, const ProblemDomain &a_domain) const noexcept
Utility function for fetching a least-squares based interpolation stencil.
Definition CD_EBCentroidInterpolation.cpp:200
virtual void define(const EBLevelGrid &a_eblg, const Real &a_dx, const Type &a_interpolationType) noexcept
Define function. Puts object in usable state.
Definition CD_EBCentroidInterpolation.cpp:48
LayoutData< BaseIVFAB< VoFStencil > > m_interpStencils
Stencils. This is only populated when the interpolation is expressable as a stencil.
Definition CD_EBCentroidInterpolation.H:131
Static class containing useful routines for (weighted) least squares polynomial reconstruction.
Definition CD_LeastSquares.H:31
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37