FourthOrderCoordSys Class Reference

#include <FourthOrderCoordSys.H>

Inheritance diagram for FourthOrderCoordSys:

Inheritance graph
[legend]

List of all members.


Detailed Description

Virtual base class encapsulating fourth-order CoordSys.

The FourthOrderCoordSys class extends the CoordSys base class by providing API elements and implementation details specific to fourth-order discretizaitions. Implementations of specific coordinate systems will be provided by derived classes.

Public Member Functions

 FourthOrderCoordSys ()
 default constructor
virtual ~FourthOrderCoordSys ()
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 void regrid (const DisjointBoxLayout &a_newGrids)=0
virtual RealVect realCoord (const RealVect &a_Xi) const =0
 given coordinate in mapped space, return its location in real space
virtual RealVect mappedCoord (const RealVect &a_x) const =0
 given coordinate in real space, return its location in the mapped space
virtual void realCoord (FArrayBox &a_x, const FArrayBox &a_Xi) const
 given coordinates in mapped space, return locations in real space
virtual void mappedCoord (FArrayBox &a_Xi, const FArrayBox &a_x) const
 given coordinate in real space, return its location in the mapped space
virtual Real pointwiseJ (const RealVect &a_X) const
 Jacobian evaluated at location X in real space.
virtual void pointwiseJ (FArrayBox &a_J) const
 Jacobian evaluated at index locations of a_J.
virtual void pointwiseJ (FArrayBox &a_J, const FArrayBox &a_Xi) const
 Jacobian evaluated at locations Xi in mapped space.
virtual void mappedGridDivergence (LevelData< FArrayBox > &a_divF, const LevelData< FluxBox > &a_F) const
 returns integral of divergence over mapped-grid cells
virtual void simpleDivergence (LevelData< FArrayBox > &a_divF, const LevelData< FluxBox > &a_F) const
virtual void setQuadrature (const EdgeQuadrature *a_quadrature)
virtual const LevelData
< FluxBox > & 
getFaceMetricTerms () const
 reuturns reference to face-averaged N
virtual const LevelData
< FluxBox > & 
getTanGranNTerms () const
 returns reference to tangential gradients of N
virtual int tanGradComp (const int a_faceDir, const int a_tanDir, const int a_comp) const
virtual const LevelData
< FArrayBox > & 
getCellVolumes () const
virtual const LevelData
< FArrayBox > & 
getJ () const
 returns fourth-order averaged cell-centered J
virtual const LevelData
< FluxBox > & 
getJInverse () const
 returns fourth-order averaged face-centered 1/J
virtual const LevelData
< FluxBox > & 
getNJinverse () const
 returns fourth-order averaged face-centered N/J
virtual void computeTangentialGrad (LevelData< FluxBox > &a_gradPhi, const LevelData< FluxBox > &a_phiFace) const
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 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
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 void dXdXi (FArrayBox &a_dxdXi, const FArrayBox &a_X, int a_destComp, int a_dirX, int a_dirXi) const
 note that a_X is in real (not mapped) space.
const RealVectdx () const
 access function to simplify things -- returns mapped-space cell spacing
const ProblemDomaindomain () const
 access function, returns mapped-space problem domain
const DisjointBoxLayoutgrids () const
 access function -- returns const reference to grids
const IntVectghostVect () const
 access function -- returns const reference to number of ghost cells

Static Public Member Functions

static int getMetricTermComponent (const int a_row, const int a_col)
 index function into face-centered metric terms

Public Attributes

Interval m_volInterval
 which component directions to use when computing cell volumes

Protected Member Functions

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 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 defineFaceMetricTerms (LevelData< FluxBox > &a_faceMetricTerms)
virtual void incrementFaceMetricWithEdgeTerm (FArrayBox &a_faceMetrics, int a_faceDir, int a_edgeDir, const Side::LoHiSide &a_side)
virtual void computeTransverseFaceMetric (FArrayBox &a_faceMetrics, int a_faceDir, int a_dDir)
virtual void computeCellVolumes (LevelData< FArrayBox > &a_cellVolumes)
virtual void computeJ (LevelData< FArrayBox > &a_J)
virtual void computeJinverse (LevelData< FluxBox > &a_Jinverse)
virtual void computeNJinverse (LevelData< FluxBox > &a_NJinverse)

Protected Attributes

DisjointBoxLayout m_grids
RealVect m_dx
ProblemDomain m_domain
IntVect m_ghostVect
LevelData< FluxBoxm_faceMetricTerms
LevelData< FluxBoxm_tanGradNTerms
LevelData< FArrayBoxm_cellVolumes
LevelData< FArrayBoxm_J
LevelData< FluxBoxm_JInverse
LevelData< FluxBoxm_NinverseJ
EdgeQuadraturem_quadraturePtr


Constructor & Destructor Documentation

FourthOrderCoordSys::FourthOrderCoordSys (  ) 

default constructor

virtual FourthOrderCoordSys::~FourthOrderCoordSys (  )  [virtual]

Destructor.


Member Function Documentation

virtual void FourthOrderCoordSys::define ( const DisjointBoxLayout a_grids,
const ProblemDomain a_domain,
const RealVect a_cellSpacing,
const IntVect a_ghostVect 
) [virtual]

this define should probably be called from the derived-class define

Implements CoordSys< FArrayBox, FluxBox >.

Reimplemented in CartesianCoordSys.

virtual void FourthOrderCoordSys::regrid ( const DisjointBoxLayout a_newGrids  )  [pure virtual]

virtual RealVect FourthOrderCoordSys::realCoord ( const RealVect a_X  )  const [pure virtual]

given coordinate in mapped space, return its location in real space

Implements CoordSys< FArrayBox, FluxBox >.

Implemented in CartesianCoordSys.

virtual RealVect FourthOrderCoordSys::mappedCoord ( const RealVect a_x  )  const [pure virtual]

given coordinate in real space, return its location in the mapped space

Implements CoordSys< FArrayBox, FluxBox >.

Implemented in CartesianCoordSys.

virtual void FourthOrderCoordSys::realCoord ( FArrayBox a_x,
const FArrayBox a_X 
) const [virtual]

given coordinates in mapped space, return locations in real space

Implements CoordSys< FArrayBox, FluxBox >.

virtual void FourthOrderCoordSys::mappedCoord ( FArrayBox a_X,
const FArrayBox a_x 
) const [virtual]

given coordinate in real space, return its location in the mapped space

Implements CoordSys< FArrayBox, FluxBox >.

virtual Real FourthOrderCoordSys::pointwiseJ ( const RealVect a_X  )  const [virtual]

Jacobian evaluated at location X in real space.

Implements CoordSys< FArrayBox, FluxBox >.

Reimplemented in CartesianCoordSys.

virtual void FourthOrderCoordSys::pointwiseJ ( FArrayBox a_J  )  const [virtual]

Jacobian evaluated at index locations of a_J.

virtual void FourthOrderCoordSys::pointwiseJ ( FArrayBox a_J,
const FArrayBox a_Xi 
) const [virtual]

Jacobian evaluated at locations Xi in mapped space.

Implements CoordSys< FArrayBox, FluxBox >.

virtual void FourthOrderCoordSys::mappedGridDivergence ( LevelData< FArrayBox > &  a_divF,
const LevelData< FluxBox > &  a_F 
) const [virtual]

returns integral of divergence over mapped-grid cells

Implements CoordSys< FArrayBox, FluxBox >.

Reimplemented in CartesianCoordSys.

virtual void FourthOrderCoordSys::simpleDivergence ( LevelData< FArrayBox > &  a_divF,
const LevelData< FluxBox > &  a_F 
) const [virtual]

virtual void FourthOrderCoordSys::setQuadrature ( const EdgeQuadrature a_quadrature  )  [virtual]

virtual const LevelData<FluxBox>& FourthOrderCoordSys::getFaceMetricTerms (  )  const [virtual]

reuturns reference to face-averaged N

Implements CoordSys< FArrayBox, FluxBox >.

virtual const LevelData<FluxBox>& FourthOrderCoordSys::getTanGranNTerms (  )  const [inline, virtual]

returns reference to tangential gradients of N

References m_tanGradNTerms.

virtual int FourthOrderCoordSys::tanGradComp ( const int  a_faceDir,
const int  a_tanDir,
const int  a_comp 
) const [virtual]

virtual const LevelData<FArrayBox>& FourthOrderCoordSys::getCellVolumes (  )  const [virtual]

virtual const LevelData<FArrayBox>& FourthOrderCoordSys::getJ (  )  const [virtual]

returns fourth-order averaged cell-centered J

Implements CoordSys< FArrayBox, FluxBox >.

virtual const LevelData<FluxBox>& FourthOrderCoordSys::getJInverse (  )  const [virtual]

returns fourth-order averaged face-centered 1/J

Implements CoordSys< FArrayBox, FluxBox >.

virtual const LevelData<FluxBox>& FourthOrderCoordSys::getNJinverse (  )  const [virtual]

returns fourth-order averaged face-centered N/J

Implements CoordSys< FArrayBox, FluxBox >.

virtual void FourthOrderCoordSys::computeTangentialGrad ( LevelData< FluxBox > &  a_gradPhi,
const LevelData< FluxBox > &  a_phiFace 
) const [virtual]

virtual void FourthOrderCoordSys::computeProductAverage ( LevelData< FluxBox > &  a_product,
const LevelData< FluxBox > &  a_F,
const LevelData< FluxBox > &  a_G,
bool  a_fourthOrder = true 
) const [virtual]

helper function

given face-centered phi, increment with Laplacian(phi) correction in place to compute 4th-order face averages of phi computes 4th-order average of product = F*G

virtual void FourthOrderCoordSys::computeMetricTermProductAverage ( LevelData< FluxBox > &  a_product,
const LevelData< FluxBox > &  a_F,
bool  a_fourthOrder = true 
) const [virtual]

computes 4th-order average of product = N^T*F

if a_fourthOrder is false, then only do a second-order dot product

static int FourthOrderCoordSys::getMetricTermComponent ( const int  a_row,
const int  a_col 
) [inline, static]

index function into face-centered metric terms

returns which component of the face-centered metric term in which N^row_col is stored

References SpaceDim.

virtual Real FourthOrderCoordSys::dXdXi ( const RealVect a_X,
int  a_dirX,
int  a_dirXi 
) const [pure virtual]

note that a_X is in real (not mapped) space.

Implemented in CartesianCoordSys.

virtual void FourthOrderCoordSys::dXdXi ( FArrayBox a_dxdXi,
const FArrayBox a_X,
int  a_destComp,
int  a_dirX,
int  a_dirXi 
) const [virtual]

note that a_X is in real (not mapped) space.

fills the destComp component of a_dxdXi with the derivative of x w/ respect to Xi in the dirX direction Note that the default implementation of this in FourthOrderCoordSys class throws an error, since there is no way to get real=space coordinate x from index location except in the derived class.. (default implementation is there in case derived class doesn't provide it)

const RealVect& FourthOrderCoordSys::dx (  )  const [inline]

access function to simplify things -- returns mapped-space cell spacing

References m_dx.

const ProblemDomain& FourthOrderCoordSys::domain (  )  const [inline]

access function, returns mapped-space problem domain

References m_domain.

const DisjointBoxLayout& FourthOrderCoordSys::grids (  )  const [inline]

access function -- returns const reference to grids

References m_grids.

const IntVect& FourthOrderCoordSys::ghostVect (  )  const [inline]

access function -- returns const reference to number of ghost cells

References m_ghostVect.

virtual Real FourthOrderCoordSys::getN ( const RealVect a_X,
int  a_s,
int  a_d,
int  a_d1 
) const [protected, virtual]

note that a_X is in real (not mapped) space.

virtual Real FourthOrderCoordSys::getNMatrixEntry ( const RealVect a_X,
int  a_s,
int  a_d,
int  a_d1,
int  a_row,
int  a_column 
) const [protected, virtual]

note that a_X is in real (not mapped) space.

virtual void FourthOrderCoordSys::defineFaceMetricTerms ( LevelData< FluxBox > &  a_faceMetricTerms  )  [protected, virtual]

virtual void FourthOrderCoordSys::incrementFaceMetricWithEdgeTerm ( FArrayBox a_faceMetrics,
int  a_faceDir,
int  a_edgeDir,
const Side::LoHiSide a_side 
) [protected, virtual]

virtual void FourthOrderCoordSys::computeTransverseFaceMetric ( FArrayBox a_faceMetrics,
int  a_faceDir,
int  a_dDir 
) [protected, virtual]

virtual void FourthOrderCoordSys::computeCellVolumes ( LevelData< FArrayBox > &  a_cellVolumes  )  [protected, virtual]

virtual void FourthOrderCoordSys::computeJ ( LevelData< FArrayBox > &  a_J  )  [protected, virtual]

virtual void FourthOrderCoordSys::computeJinverse ( LevelData< FluxBox > &  a_Jinverse  )  [protected, virtual]

virtual void FourthOrderCoordSys::computeNJinverse ( LevelData< FluxBox > &  a_NJinverse  )  [protected, virtual]


Member Data Documentation

which component directions to use when computing cell volumes

Referenced by grids().

Referenced by dx().

Referenced by domain().

Referenced by ghostVect().

Referenced by getTanGranNTerms().


The documentation for this class was generated from the following file:

Generated on Thu Jun 22 03:27:09 2017 for Chombo + EB + MF by  doxygen 1.5.5