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

Conformal Schwarz-Christoffel mapping of a ramp. More...

#include <SchwarzChristoffelRampCS.H>

Inheritance diagram for SchwarzChristoffelRampCS:
Inheritance graph
[legend]

Public Member Functions

 SchwarzChristoffelRampCS (const RealVect &a_dx, const int a_nCellBaseDir0, const Real a_alpha=Pi/6., const Real a_XLeadLength=0.5, const Real a_XRampLength=4.5)
 Constructor. More...
 
virtual ~SchwarzChristoffelRampCS ()
 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
 Calculate the derivative of each coordinate vector. More...
 
Real rampAngle () const
 Return the angle of the ramp in radians. More...
 
const RealVectmappedCorner () const
 Return the location of the corner point in mapped space. More...
 
Real physicalDomainX0Min () const
 Return the x-location of lower left domain corner in physical 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 Member Functions

RealVect getPolar (const RealVect &a_Xi) const
 Get a complex in polar coordinates. 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...
 

Protected Attributes

const Real m_alpha
 Ramp angle (0 <= m_alpha < Pi) More...
 
const Real m_c
 Exponent coefficient. More...
 
Real m_k
 
RealVect m_XiCorner
 Corner in mapped space. More...
 
- 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...
 

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...
 

Detailed Description

Conformal Schwarz-Christoffel mapping of a ramp.

*  Physical-space (z)                Computational Space
*
*      ^                               ^
*    i |      ,-+                    i |
*         ,--'  |
*     ,--'       \                     +-----------+
*  +-'          ,+                     |           |
*   \        ,-'                       |           |
*    |    ,-'  alpha                   |           |
*    +--*'- - - - - - >                +--*--------+ - - - >
*       0                                 \hat(xi)_0
*                                                                  

$ z = k(xi - \hat(xi))^c e^(i\alpha)$ where $alpha$ = angle of ramp $\hat(xi)_0$ = location of corner $c = 1 - \alpha/\pi$ $k = len/(\hat(xi)_0^c + (1 - \hat(xi)_0)^c)$ where len is the length of the bottom boundary (both the horizontal and following the ramp) in physical space

Note
  • In computational space, the domain extends from 0 to 1 in the x direction and the corner is anchored at m_xiCorner. The cells are square and the domain extends from 0 in the y direction (height is not specified)
  • In the physical space, the corner is anchored at (0, 0) and the length of the bottom boundary is specified.
  • If a third dimension is hanging around, it is scaled by k
  • Tolerances tested up to 1024 cells in X-Dir.

Constructor & Destructor Documentation

◆ SchwarzChristoffelRampCS()

SchwarzChristoffelRampCS::SchwarzChristoffelRampCS ( const RealVect a_dx,
const int  a_nCellBaseDir0,
const Real  a_alpha = Pi/6.,
const Real  a_XLeadLength = 0.5,
const Real  a_XRampLength = 4.5 
)

Constructor.

◆ ~SchwarzChristoffelRampCS()

virtual SchwarzChristoffelRampCS::~SchwarzChristoffelRampCS ( )
virtual

Destructor.

Member Function Documentation

◆ realCoord()

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

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

Implements NewFourthOrderCoordSys.

◆ mappedCoord()

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

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

Implements NewFourthOrderCoordSys.

◆ dXdXi()

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

Calculate the derivative of each coordinate vector.

Implements NewFourthOrderCoordSys.

◆ rampAngle()

Real SchwarzChristoffelRampCS::rampAngle ( ) const
inline

Return the angle of the ramp in radians.

References m_alpha.

◆ mappedCorner()

const RealVect & SchwarzChristoffelRampCS::mappedCorner ( ) const
inline

Return the location of the corner point in mapped space.

References m_XiCorner.

◆ physicalDomainX0Min()

Real SchwarzChristoffelRampCS::physicalDomainX0Min ( ) const
inline

Return the x-location of lower left domain corner in physical space.

References m_c, m_k, and m_XiCorner.

◆ getPolar()

RealVect SchwarzChristoffelRampCS::getPolar ( const RealVect a_Xi) const
protected

Get a complex in polar coordinates.

Member Data Documentation

◆ m_alpha

const Real SchwarzChristoffelRampCS::m_alpha
protected

Ramp angle (0 <= m_alpha < Pi)

Referenced by rampAngle().

◆ m_c

const Real SchwarzChristoffelRampCS::m_c
protected

Exponent coefficient.

Referenced by physicalDomainX0Min().

◆ m_k

Real SchwarzChristoffelRampCS::m_k
protected

Scaling between mapped and physical space

Referenced by physicalDomainX0Min().

◆ m_XiCorner

RealVect SchwarzChristoffelRampCS::m_XiCorner
protected

Corner in mapped space.

Referenced by mappedCorner(), and physicalDomainX0Min().


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