chombo-discharge
Loading...
Searching...
No Matches
CD_CoarseInterpQuadCF.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_COARSEINTERPQUADCF_H
14#define CD_COARSEINTERPQUADCF_H
15
16// Chombo includes
17#include <IntVect.H>
18#include <FArrayBox.H>
19#include <LoHiSide.H>
20#include <DerivStencil.H>
21#include <DisjointBoxLayout.H>
22
23// Our includes
24#include <CD_NamespaceHeader.H>
25
35{
36public:
40 CoarseInterpQuadCF() noexcept;
41
45 virtual ~CoarseInterpQuadCF() noexcept;
46
51
56 operator=(const CoarseInterpQuadCF&) = delete;
57
62
69
80 virtual void
85 int a_refRat,
87
98
109
119
130
141
151
156 enum class FirstDerivStencil : unsigned short
157 {
158 Centered2,
159 Backward2,
160 Forward2,
161 Backward1,
162 Forward1,
163 };
164
168 enum class SecondDerivStencil : unsigned short
169 {
170 Centered2,
171 Backward1,
172 Forward1
173 };
174
178 enum class MixedDerivStencil : unsigned short
179 {
180 Standard,
181 Explicit
182 };
183
188
193
198
203
208
213
218
223
229
234
239
244
249
254 virtual void
256
261 virtual void
263};
264
265#include <CD_NamespaceFooter.H>
266
267#endif
Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cel...
Definition CD_CoarseInterpQuadCF.H:35
virtual Real computeSecondDeriv(const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, int a_dir, int a_coarVar) const noexcept
Compute second-derivative Taylor term in direction a_dir.
Definition CD_CoarseInterpQuadCF.cpp:262
int m_tanDir1
One tangential direction.
Definition CD_CoarseInterpQuadCF.H:212
CoarseInterpQuadCF() noexcept
Default constructor. Must subsequently call the define function.
Definition CD_CoarseInterpQuadCF.cpp:23
CoarseInterpQuadCF & operator=(const CoarseInterpQuadCF &)=delete
Copy assignment — deleted.
bool m_isDefined
Is defined or not.
Definition CD_CoarseInterpQuadCF.H:187
CoarseInterpQuadCF(const CoarseInterpQuadCF &)=delete
Copy constructor — deleted.
virtual DerivStencil getMixedDerivStencil(const IntVect &a_ivCoar) const noexcept
Get the second derivative stencil for the input coarse vof.
Definition CD_CoarseInterpQuadCF.cpp:453
BaseFab< DerivStencil > m_explicitMixedDerivStencils
Mixed-derivative stencil. Only defined in 3D.
Definition CD_CoarseInterpQuadCF.H:248
int m_tanDir2
One tangential direction.
Definition CD_CoarseInterpQuadCF.H:217
int m_ignoreDir
Interpolation direction to ignore.
Definition CD_CoarseInterpQuadCF.H:207
CoarseInterpQuadCF(CoarseInterpQuadCF &&)=default
Move constructor.
BaseFab< MixedDerivStencil > m_mixedDerivStencils
Identifier for whether or not we should use a standard or explicit mixed derivative stencil.
Definition CD_CoarseInterpQuadCF.H:243
ProblemDomain m_domainCoar
Coarse domain.
Definition CD_CoarseInterpQuadCF.H:197
virtual void define(const DisjointBoxLayout &a_dblFine, const ProblemDomain &a_domainCoar, const DataIndex &a_dit, const Box &a_fineGhostCells, int a_refRat, int a_ignoreDir) noexcept
Define function. Puts object in usable state.
Definition CD_CoarseInterpQuadCF.cpp:34
FirstDerivStencil
Simple enum for holding stencil types for the first derivative.
Definition CD_CoarseInterpQuadCF.H:157
virtual DerivStencil getSecondDerivStencil(const IntVect &a_ivCoar, int a_dir) const noexcept
Get the second derivative stencil for the input coarse vof.
Definition CD_CoarseInterpQuadCF.cpp:409
virtual Real computeFirstDeriv(const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, int a_dir, int a_coarVar) const noexcept
Compute first-derivative Taylor term in direction a_dir.
Definition CD_CoarseInterpQuadCF.cpp:204
MixedDerivStencil
Simple enum for holding stencil types for the mixed derivative.
Definition CD_CoarseInterpQuadCF.H:179
DataIndex m_dit
Data index in the fine grid.
Definition CD_CoarseInterpQuadCF.H:202
DisjointBoxLayout m_dblFine
Fine grids.
Definition CD_CoarseInterpQuadCF.H:192
SecondDerivStencil
Simple enum for holding stencil types for the second derivative.
Definition CD_CoarseInterpQuadCF.H:169
CoarseInterpQuadCF & operator=(CoarseInterpQuadCF &&) noexcept=default
Move assignment.
int m_refRat
Refinement factor to coarse.
Definition CD_CoarseInterpQuadCF.H:222
BaseFab< FirstDerivStencil > m_firstDerivStencils[SpaceDim]
Stencil types for first derivative.
Definition CD_CoarseInterpQuadCF.H:233
virtual DerivStencil getFirstDerivStencil(const IntVect &a_ivCoar, int a_dir) const noexcept
Get the first derivative stencil for the input coarse vof.
Definition CD_CoarseInterpQuadCF.cpp:354
virtual Real computeMixedDeriv(const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, int a_coarVar) const noexcept
Compute mixed-derivative Taylor term in directions orthogonal m_ignoreDir.
Definition CD_CoarseInterpQuadCF.cpp:309
Box m_stencilBox
Coarse-grid cells corresponding to the fine-grid ghost cells.
Definition CD_CoarseInterpQuadCF.H:228
virtual ~CoarseInterpQuadCF() noexcept
Destructor.
Definition CD_CoarseInterpQuadCF.cpp:28
virtual void defineStencils() noexcept
Compute all first-derivative stencils in the coarse grid cells.
Definition CD_CoarseInterpQuadCF.cpp:84
virtual void defineMixedDerivStencils() noexcept
Compute all second-derivative stencils in the coarse grid cells.
Definition CD_CoarseInterpQuadCF.cpp:137
BaseFab< SecondDerivStencil > m_secondDerivStencils[SpaceDim]
Second-derivative stencils (in all directions except m_dir)
Definition CD_CoarseInterpQuadCF.H:238
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38