13#ifndef CD_COARSEINTERPQUADCF_H
14#define CD_COARSEINTERPQUADCF_H
20#include <DerivStencil.H>
21#include <DisjointBoxLayout.H>
24#include <CD_NamespaceHeader.H>
82 define(const DisjointBoxLayout& a_dblFine,
83 const ProblemDomain& a_domainCoar,
84 const DataIndex& a_dit,
85 const Box& a_fineGhostCells,
87 int a_ignoreDir) noexcept;
98 computeFirstDeriv(const FArrayBox& a_coarPhi, const IntVect& a_ivCoar,
int a_dir,
int a_coarVar) const noexcept;
109 computeSecondDeriv(const FArrayBox& a_coarPhi, const IntVect& a_ivCoar,
int a_dir,
int a_coarVar) const noexcept;
119 computeMixedDeriv(const FArrayBox& a_coarPhi, const IntVect& a_ivCoar,
int a_coarVar) const noexcept;
268#include <CD_NamespaceFooter.H>
Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cel...
Definition CD_CoarseInterpQuadCF.H:36
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:269
int m_tanDir1
One tangential direction.
Definition CD_CoarseInterpQuadCF.H:215
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:190
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:460
BaseFab< DerivStencil > m_explicitMixedDerivStencils
Mixed-derivative stencil. Only defined in 3D.
Definition CD_CoarseInterpQuadCF.H:251
int m_tanDir2
One tangential direction.
Definition CD_CoarseInterpQuadCF.H:220
int m_ignoreDir
Interpolation direction to ignore.
Definition CD_CoarseInterpQuadCF.H:210
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:246
ProblemDomain m_domainCoar
Coarse domain.
Definition CD_CoarseInterpQuadCF.H:200
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:158
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:416
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:211
MixedDerivStencil
Simple enum for holding stencil types for the mixed derivative.
Definition CD_CoarseInterpQuadCF.H:182
DataIndex m_dit
Data index in the fine grid.
Definition CD_CoarseInterpQuadCF.H:205
DisjointBoxLayout m_dblFine
Fine grids.
Definition CD_CoarseInterpQuadCF.H:195
SecondDerivStencil
Simple enum for holding stencil types for the second derivative.
Definition CD_CoarseInterpQuadCF.H:171
CoarseInterpQuadCF & operator=(CoarseInterpQuadCF &&) noexcept=default
Move assignment.
int m_refRat
Refinement factor to coarse.
Definition CD_CoarseInterpQuadCF.H:225
BaseFab< FirstDerivStencil > m_firstDerivStencils[SpaceDim]
Stencil types for first derivative.
Definition CD_CoarseInterpQuadCF.H:236
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:361
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:316
Box m_stencilBox
Coarse-grid cells corresponding to the fine-grid ghost cells.
Definition CD_CoarseInterpQuadCF.H:231
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:144
BaseFab< SecondDerivStencil > m_secondDerivStencils[SpaceDim]
Second-derivative stencils (in all directions except m_dir)
Definition CD_CoarseInterpQuadCF.H:241