Chombo + EB + MF  3.2
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
RThetaPhiCS Class Reference

Mapping from spherical coordinates (Xi) to real coodinates. More...

#include <RThetaPhiCS.H>

Inheritance diagram for RThetaPhiCS:
Inheritance graph
[legend]

Public Member Functions

 RThetaPhiCS (const RealVect &a_dx, const Real a_stretch=1., const Real a_rMin=1., const Real a_phiMin=Pi/4.)
 Constructor. More...
 
virtual ~RThetaPhiCS ()
 Destructor. More...
 
virtual RealVect realCoord (const RealVect &a_hatXi) const
 Given coordinate in mapped space, return its location in real space. More...
 
virtual RealVect mappedCoord (const RealVect &a_x) const
 Given coordinate in real space, return its location in the mapped space. More...
 
virtual Real dXdXi (const RealVect &a_Xi, int a_dirX, int a_dirXi) const
 note that a_Xi is in mapped space. More...
 
- Public Member Functions inherited from NewFourthOrderCoordSys
 NewFourthOrderCoordSys ()
 default constructor More...
 
virtual ~NewFourthOrderCoordSys ()
 
virtual void realCoord (FArrayBox &a_x, const FArrayBox &a_Xi, const Box &a_box) const
 given coordinates in mapped space, return locations in real space More...
 
virtual void mappedCoord (FArrayBox &a_Xi, const FArrayBox &a_x, const Box &a_box) const
 given coordinate in real space, return its location in the mapped space More...
 
virtual void getNodeRealCoordinates (FArrayBox &a_nodeCoords, const Box &a_box) const
 return Cartesian XYZ locations of nodes More...
 
virtual void dXdXi (FArrayBox &a_dxdXi, const FArrayBox &a_Xi, int a_destComp, int a_dirX, int a_dirXi, const Box &a_box) const
 note that a_X is in mapped space. More...
 
virtual int getNumN () const
 returns number of components in the metric term matrix (N) More...
 
virtual int getNcomponent (const int a_row, const int a_col) const
 index function into face-centered metric terms More...
 
virtual void volFlux (FluxBox &a_volFlux, const FluxBox &a_Nt, const Box &a_box) const
 computes the volume flux on the faces More...
 
virtual void cellVol (FArrayBox &a_vol, const FluxBox &a_N, const Box &a_box) const
 computes cell volumes More...
 
virtual void getN (FluxBox &a_N, const Box &a_box) const
 computes integral of N over each face of a_box More...
 
virtual void getAvgJ (FArrayBox &a_avgJ, const FluxBox &a_volFlux, const Box &a_box) const
 computes cell-averaged J More...
 
virtual void getAvgJ (FArrayBox &a_avgJ, const Box &a_box) const
 computes cell-averaged J More...
 
virtual void getAvgJinverse (FluxBox &a_avgJinverse, const Box &a_box) const
 computes cell-averaged 1/J More...
 
virtual void getAvgJinverse (FluxBox &a_avgJinverse, const FArrayBox &a_avgJ, const Box &a_box) const
 computes cell-averaged 1/J, using pre-computed cell-avg J More...
 
virtual Real pointwiseJ (const RealVect &a_Xi) const
 Jacobian evaluated at location Xi in mapped space. More...
 
virtual void pointwiseJ (FArrayBox &a_J, const FArrayBox &a_Xi, const Box &a_box) const
 Jacobian evaluated at locations Xi in mapped space. More...
 
virtual void computeMetricTermProductAverage (FluxBox &a_product, const FluxBox &a_F, const FluxBox &a_N, const int a_NNumComp, const FluxBox &a_FforGrad, const Box &a_box, bool a_fourthOrder=true, Interval a_varIntervalProduct=Interval(), Interval a_varIntervalF=Interval(), int a_fluxSpaceContiguous=1, const ProblemDomain *const a_problemDomainPtr=NULL) const
 Computes 4th-order average of product = N^T*F. F can be a flux dyad. More...
 
virtual void computeMetricTermProductAverage (FluxBox &a_product, const FluxBox &a_F, const FluxBox &a_N, const FluxBox &a_FforGrad, const Box &a_box, bool a_fourthOrder=true) const
 computes 4th-order average of product = N^T*F. F is vector of a scalar More...
 
virtual void computeMetricTermProductAverage (FluxBox &a_product, const FluxBox &a_F, const FluxBox &a_N, const Box &a_box, bool a_fourthOrder=true) const
 computes 4th-order average of product = N^T*F. F is vector of a scalar More...
 
void magnitudeN (FluxBox &a_NMag, const FluxBox &a_N, const Box &a_box) const
 Computes magnitude of <N^T> on each face. More...
 
virtual void computeNJinverse (FluxBox &a_NJinverse, const FluxBox &a_Jinverse, const FluxBox &a_N, const Box &a_cellBox) const
 given N and Jinverse, computes N/J More...
 
virtual const RealVectdx () const
 access function to simplify things – returns mapped-space cell spacing More...
 
virtual Real getN (const RealVect &a_Xi, int a_s, int a_d, int a_d1) const
 this evaluates the script N values from equation 12 in Phil's notes More...
 
virtual Real getNMatrixEntry (const RealVect &a_Xi, int a_s, int a_d, int a_d1, int a_row, int a_column) const
 note that a_Xi is in mapped space. More...
 
virtual void integrateScriptN (FArrayBox &a_scrN, const int a_dir0, const int a_dir1, const Box &a_box) const
 
virtual void incrementFaceMetricWithEdgeTerm (FArrayBox &a_faceMetrics, int a_faceDir, int a_edgeDir, const Box &a_box, const Side::LoHiSide &a_side) const
 
virtual void computeTransverseFaceMetric (FArrayBox &a_faceMetrics, const Box &a_box, int a_faceDir, int a_dDir) const
 
virtual void computeTangentialGrad (FluxBox &a_gradPhi, const FluxBox &a_phiFace, const Box &a_box) const
 
virtual int tanGradComp (const int a_faceDir, const int a_tanDir, const int a_comp) const
 
virtual void contravariantMetric (FArrayBox &a_metric, int a_dir) const
 return row a_idir of contravariant metric More...
 
virtual void orthonormalize (FluxBox &a_flux, const Interval &a_vectorIntv) const
 convert vector components (in a_vectorIntv) of a_flux to orthonormal frame to that of this block More...
 
virtual void orthonormalize (FArrayBox &a_fluxFab, const Interval &a_vectorIntv) const
 overwrite vector components (in a_vectorIntv) of a_fluxFab with orthonormalized More...
 
virtual void orthonormalize (const FArrayBox &a_csFab, FArrayBox &a_orthoFab, const Box &a_box, int a_idir, const IntVect &a_csComps, const IntVect &a_orthoComps) const
 convert components in a_csComps of vector a_csFab in coordinate-system basis to components in a_orthoComps of vector a_orthoFab in orthonormal basis, at points with indices in a_box, on lines where direction a_idir is constant More...
 
virtual void deorthonormalize (FluxBox &a_flux, const Interval &a_vectorIntv) const
 convert vector components (in a_vectorIntv) of a_flux from orthonormal frame to that of this block More...
 
virtual void deorthonormalize (FArrayBox &a_fluxFab, const Interval &a_vectorIntv) const
 overwrite vector components (in a_vectorIntv) of a_fluxFab with deorthonormalized More...
 
virtual void deorthonormalize (const FArrayBox &a_orthoFab, FArrayBox &a_csFab, const Box &a_box, int a_idir, const IntVect &a_orthoComps, const IntVect &a_csComps) const
 convert components in a_orthoComps of vector a_orthoFab in orthonormal basis to components in a_csComps of vector a_csFab in coordinate-system basis, at points with indices in a_box, on lines where direction a_idir is constant More...
 
- Public Member Functions inherited from NewCoordSys
 NewCoordSys ()
 default constructor More...
 
virtual ~NewCoordSys ()
 
virtual void getCenterMappedCoordinates (FArrayBox &a_Xi, const Box &a_box) const
 given indices in a_box, return centers of cells (or of faces, or of edges) in mapped coordinates. The function does the right thing based on the centering of a_box, which must be the same centering as a_Xi. More...
 
virtual RealVect centerMappedCoordinates (const IntVect &a_iv) const
 given indices, return centers of cells in mapped coordinates More...
 
virtual int dimension () const
 returns dimensionality of the space More...
 
virtual void computeDivergence (FArrayBox &a_divF, const FluxBox &a_F, const FluxBox &a_N, const Box &a_box, Interval &divInterval) const
 returns integral of divergence over mapped-grid cells More...
 
virtual VectorTransformation vectorTransformationMappedToReal (const RealVect &a_Xi) const
 return matrix that transforms vector components from mapped space to real space at point a_Xi in mapped space More...
 
virtual VectorTransformation vectorTransformationRealToMapped (const RealVect &a_Xi) const
 return matrix that transforms vector components from real space to mapped space at point a_Xi in mapped space More...
 
virtual VectorTransformation vectorTransformationMappedToRealCenter (const IntVect &a_iv) const
 return matrix that transforms vector components from mapped space to real space at center of cell a_iv More...
 
virtual VectorTransformation vectorTransformationRealToMappedCenter (const IntVect &a_iv) const
 return matrix that transforms vector components from real space to mapped space at center of cell a_iv More...
 
virtual void vectorTransformMappedToRealCenterFab (FArrayBox &a_vectorFab) const
 transform a FAB of SpaceDim-vectors from mapped-coordinate basis to real-coordinate basis at cell centers More...
 
virtual void vectorTransformMappedToRealAvgFab (FArrayBox &a_vectorFab, const FArrayBox &a_gradVectorFab) const
 transform a FAB of SpaceDim-vectors from mapped-coordinate basis to real-coordinate basis, averaged over cells More...
 
virtual void vectorTransformRealToMappedCenterFab (FArrayBox &a_vectorFab) const
 transform a FAB of SpaceDim-vectors from real-coordinate basis to mapped-coordinate basis at cell centers More...
 
virtual void vectorTransformRealToMappedAvgFab (FArrayBox &a_vectorFab, const FArrayBox &a_gradVectorFab) const
 transform a FAB of SpaceDim-vectors from real-coordinate basis to mapped-coordinate basis, averaged over cells More...
 
virtual void setTime (const Real &a_time) const
 Set time for moving grids. More...
 

Protected Attributes

Real m_stretch
 Stretching in the r direction. More...
 
Real m_rMin
 Min r (> 0 avoids singularity there) More...
 
Real m_phiMin
 
- Protected Attributes inherited from NewFourthOrderCoordSys
RealVect m_dx
 
Interval m_volInterval
 
EdgeQuadraturem_quadraturePtr
 
- Protected Attributes inherited from NewCoordSys
Real m_time
 Const is already well entrenched. More...
 

Private Member Functions

RealVect normalize (const RealVect &a_Xi) const
 Normalize the mapped coordinates $(0 <= \hat{\xi} <= 1)$. More...
 
RealVect unnormalize (const RealVect &a_hatXi) const
 Unnormalized the mapped coordinates. More...
 
RealVect realCoordUN (const RealVect &a_Xi) const
 Return location in real space of an unnormalized Coord. from mapped space. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from NewFourthOrderCoordSys
static const IntVectmetricsCompDir (const int a_iDir)
 Same as getNcomponent but returns an IntVect for an 'a_col' (direction) More...
 
- Protected Member Functions inherited from NewCoordSys
virtual void vectorTransformInternalAvgFab (FArrayBox &a_vectorFab, const FArrayBox &a_gradVectorFab, const BaseFab< VectorTransformation > &a_tfmCenterFab) const
 internal function to transform a FAB of SpaceDim-vectors from one basis to another, averaged over cells, given BaseFab of vector transformations at cell centers More...
 

Detailed Description

Mapping from spherical coordinates (Xi) to real coodinates.

$ x = r\sin\varphi\cos\theta $
$ y = r\sin\varphi\sin\theta $
$ z = r\cos\varphi $

But to avoid singularities, we define
$ r = \mbox(stretch)(\hat(r) + r_(\min)) $
$ \theta = 2\pi\hat(\theta) $
$ \varphi = \hat(\varphi)(\pi - 2\varphi_(\min)) + \varphi_(\min) $
where $0 <= \hat(r), \hat(\theta), \hat(\varphi) <= 1 $. stretch, $r_(\min)$, and $\varphi_(\min)$ are defined by input. Note that $\varphi_(\min)$ is the minimum angle with the z-axis.

Constructor & Destructor Documentation

RThetaPhiCS::RThetaPhiCS ( const RealVect a_dx,
const Real  a_stretch = 1.,
const Real  a_rMin = 1.,
const Real  a_phiMin = Pi/4. 
)

Constructor.

virtual RThetaPhiCS::~RThetaPhiCS ( )
virtual

Destructor.

Member Function Documentation

virtual RealVect RThetaPhiCS::realCoord ( const RealVect a_hatXi) const
virtual

Given coordinate in mapped space, return its location in real space.

Implements NewFourthOrderCoordSys.

virtual RealVect RThetaPhiCS::mappedCoord ( const RealVect a_x) const
virtual

Given coordinate in real space, return its location in the mapped space.

Implements NewFourthOrderCoordSys.

virtual Real RThetaPhiCS::dXdXi ( const RealVect a_Xi,
int  a_dirX,
int  a_dirXi 
) const
virtual

note that a_Xi is in mapped space.

Implements NewFourthOrderCoordSys.

RealVect RThetaPhiCS::normalize ( const RealVect a_Xi) const
private

Normalize the mapped coordinates $(0 <= \hat{\xi} <= 1)$.

RealVect RThetaPhiCS::unnormalize ( const RealVect a_hatXi) const
private

Unnormalized the mapped coordinates.

RealVect RThetaPhiCS::realCoordUN ( const RealVect a_Xi) const
private

Return location in real space of an unnormalized Coord. from mapped space.

Member Data Documentation

Real RThetaPhiCS::m_stretch
protected

Stretching in the r direction.

Real RThetaPhiCS::m_rMin
protected

Min r (> 0 avoids singularity there)

Real RThetaPhiCS::m_phiMin
protected

Min angle between r and z-axis. (>0 avoids singularity there)


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