11 #ifndef _FOURTHORDERCOORDSYS_H_ 12 #define _FOURTHORDERCOORDSYS_H_ 26 #include "NamespaceHeader.H" 90 virtual int tanGradComp(
const int a_faceDir,
const int a_tanDir,
91 const int a_comp)
const;
120 bool a_fourthOrder =
true)
const;
128 bool a_fourthOrder=
true)
const;
141 int a_dirXi)
const = 0;
216 int a_s,
int a_d,
int a_d1,
217 int a_row,
int a_column)
const;
240 #include "NamespaceFooter.H" virtual void setQuadrature(const EdgeQuadrature *a_quadrature)
LevelData< FArrayBox > m_cellVolumes
Definition: FourthOrderCoordSys.H:201
EdgeQuadrature * m_quadraturePtr
Definition: FourthOrderCoordSys.H:209
virtual Real dXdXi(const RealVect &a_X, int a_dirX, int a_dirXi) const =0
note that a_X is in real (not mapped) space.
virtual ~FourthOrderCoordSys()
virtual RealVect realCoord(const RealVect &a_Xi) const =0
given coordinate in mapped space, return its location in real space
virtual Real getN(const RealVect &a_X, int a_s, int a_d, int a_d1) const
note that a_X is in real (not mapped) space.
virtual void simpleDivergence(LevelData< FArrayBox > &a_divF, const LevelData< FluxBox > &a_F) const
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
ProblemDomain m_domain
Definition: FourthOrderCoordSys.H:193
RealVect m_dx
Definition: FourthOrderCoordSys.H:191
virtual void incrementFaceMetricWithEdgeTerm(FArrayBox &a_faceMetrics, int a_faceDir, int a_edgeDir, const Side::LoHiSide &a_side)
const DisjointBoxLayout & grids() const
access function – returns const reference to grids
Definition: FourthOrderCoordSys.H:176
virtual void computeCellVolumes(LevelData< FArrayBox > &a_cellVolumes)
virtual void computeProductAverage(LevelData< FluxBox > &a_product, const LevelData< FluxBox > &a_F, const LevelData< FluxBox > &a_G, bool a_fourthOrder=true) const
helper function
Virtual base class encapsulating fourth-order CoordSys.
Definition: FourthOrderCoordSys.H:36
virtual Real pointwiseJ(const RealVect &a_X) const
Jacobian evaluated at location X in real space.
virtual int tanGradComp(const int a_faceDir, const int a_tanDir, const int a_comp) const
virtual void computeMetricTermProductAverage(LevelData< FluxBox > &a_product, const LevelData< FluxBox > &a_F, bool a_fourthOrder=true) const
computes 4th-order average of product = N^T*F
const int SpaceDim
Definition: SPACE.H:38
const RealVect & dx() const
access function to simplify things – returns mapped-space cell spacing
Definition: FourthOrderCoordSys.H:164
virtual const LevelData< FluxBox > & getTanGranNTerms() const
returns reference to tangential gradients of N
Definition: FourthOrderCoordSys.H:85
const ProblemDomain & domain() const
access function, returns mapped-space problem domain
Definition: FourthOrderCoordSys.H:170
LevelData< FluxBox > m_NinverseJ
Definition: FourthOrderCoordSys.H:207
virtual const LevelData< FArrayBox > & getJ() const
returns fourth-order averaged cell-centered J
virtual void defineFaceMetricTerms(LevelData< FluxBox > &a_faceMetricTerms)
IntVect m_ghostVect
Definition: FourthOrderCoordSys.H:195
Structure for passing component ranges in code.
Definition: Interval.H:23
virtual const LevelData< FluxBox > & getFaceMetricTerms() const
reuturns reference to face-averaged N
LevelData< FluxBox > m_tanGradNTerms
Definition: FourthOrderCoordSys.H:199
FourthOrderCoordSys()
default constructor
DisjointBoxLayout m_grids
Definition: FourthOrderCoordSys.H:189
LevelData< FArrayBox > m_J
Definition: FourthOrderCoordSys.H:203
double Real
Definition: REAL.H:33
Virtual base class encapsulating mapped-grid coordinate systems.
Definition: CoordSys.H:27
LevelData< FluxBox > m_JInverse
Definition: FourthOrderCoordSys.H:205
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
virtual void computeTransverseFaceMetric(FArrayBox &a_faceMetrics, int a_faceDir, int a_dDir)
LoHiSide
Definition: LoHiSide.H:27
virtual RealVect mappedCoord(const RealVect &a_x) const =0
given coordinate in real space, return its location in the mapped space
virtual void computeJinverse(LevelData< FluxBox > &a_Jinverse)
A Real vector in SpaceDim-dimensional space.
Definition: RealVect.H:41
virtual void computeTangentialGrad(LevelData< FluxBox > &a_gradPhi, const LevelData< FluxBox > &a_phiFace) const
virtual void define(const DisjointBoxLayout &a_grids, const ProblemDomain &a_domain, const RealVect &a_cellSpacing, const IntVect &a_ghostVect)
this define should probably be called from the derived-class define
virtual const LevelData< FArrayBox > & getCellVolumes() const
virtual const LevelData< FluxBox > & getNJinverse() const
returns fourth-order averaged face-centered N/J
const IntVect & ghostVect() const
access function – returns const reference to number of ghost cells
Definition: FourthOrderCoordSys.H:182
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Definition: FArrayBox.H:45
virtual void regrid(const DisjointBoxLayout &a_newGrids)=0
static int getMetricTermComponent(const int a_row, const int a_col)
index function into face-centered metric terms
Definition: FourthOrderCoordSys.H:134
virtual Real getNMatrixEntry(const RealVect &a_X, int a_s, int a_d, int a_d1, int a_row, int a_column) const
note that a_X is in real (not mapped) space.
virtual void mappedGridDivergence(LevelData< FArrayBox > &a_divF, const LevelData< FluxBox > &a_F) const
returns integral of divergence over mapped-grid cells
virtual const LevelData< FluxBox > & getJInverse() const
returns fourth-order averaged face-centered 1/J
virtual void computeJ(LevelData< FArrayBox > &a_J)
Interval m_volInterval
which component directions to use when computing cell volumes
Definition: FourthOrderCoordSys.H:161
Virtual base class for defining edge-based quadratures.
Definition: EdgeQuadrature.H:37
virtual void computeNJinverse(LevelData< FluxBox > &a_NJinverse)
LevelData< FluxBox > m_faceMetricTerms
Definition: FourthOrderCoordSys.H:197