PolyGeom Class Reference

#include <PolyGeom.H>

Collaboration diagram for PolyGeom:

Collaboration graph
[legend]

List of all members.


Detailed Description

PolyGeom encapsulates the functions to generate centroids, normals, etc given the geometric information. It is meant to be used simply as a static class. Its only data member (a static) is its tolerance.

Public Member Functions

 PolyGeom ()
 ~PolyGeom ()

Static Public Member Functions

static void pointToLine (RealVect &a_closestPt, RealVect &a_normal, const RealVect &a_point, const RealVect &a_pointOnLine, const RealVect &a_direction)
static void setTolerance (const Real &a_tolerance)
static void setVectDx (const RealVect &a_vectDx)
static void setVolumeTolerance (const Real &a_tolerance)
static void setAreaTolerance (const Real &a_tolerance)
static void setLengthTolerance (const Real &a_tolerance)
static RealVect cross (const RealVect &a_xvec1, const RealVect &a_xvec0)
static Real dot (const RealVect &a_xvec1, const RealVect &a_xvec0)
static const Real & getTolerance ()
static const RealVect & getVectDx ()
static const Real & getVolumeTolerance ()
static const Real & getAreaTolerance ()
static const Real & getLengthTolerance ()
static RealVect normal (const VolIndex &a_vof, const EBISBox &a_ebisBox, const Real &a_bndryArea)
static Real bndryArea (const VolIndex &a_vof, const EBISBox &a_ebisBox)
static Real computeAlpha (const Real &a_volFrac, const RealVect &a_normal)
static Real computeVolume (const Real &a_alpha, const RealVect &a_normal)
static void computeNormalAndAlpha (Real &a_alpha, RealVect &a_normal, const int &a_upDir, const Tuple< RealVect, CH_SPACEDIM > &a_poly)
static Real matrixSolveComp (const Vector< Vector< Real > > &a_A, const Vector< Real > &a_rhs, const int &a_icomp)
static Real determinant (const Vector< Vector< Real > > &a_A)
static Real sAndZVolume (const Real &a_alpha, const RealVect &a_normal)
static void sortVector (RealVect &vect, IntVect &ivmap)
static void posifyVector (RealVect &vect, IntVect &signs)
 make vector all pos and return the signs
static void unifyVector (RealVect &normal, Real &sumSquare)
 make vector into a unit vector and return the sum of squares
static Tuple< int, CH_SPACEDIM-1 > computeTanDirs (int upDir)

Static Protected Member Functions

static Real twoDFunc (const Real &arg)
static Real threeDFunc (const Real &arg)
static Real computeAnyVolume (const Real &a_alpha, const Real &a_norm0, const Real &a_norm1, const Real &a_norm2)
static RealVect tetCentroid (const RealVect &normal, const Real &alpha)
static Real tetVolume (const RealVect &normal, const Real &alpha)

Static Protected Attributes

static RealVect s_vectDx
static Real s_tolerance
static Real s_lengthtolerance
static Real s_areatolerance

Constructor & Destructor Documentation

PolyGeom::PolyGeom (  )  [inline]

PolyGeom::~PolyGeom (  )  [inline]


Member Function Documentation

static void PolyGeom::pointToLine ( RealVect &  a_closestPt,
RealVect &  a_normal,
const RealVect &  a_point,
const RealVect &  a_pointOnLine,
const RealVect &  a_direction 
) [static]

find equation of line between a line formed by a_pointOnLine = p0 and a_direction=v l(t) = p0 + v t and a point in space a_point. returns closest point on line and the normal between the closest point and the point in space

static void PolyGeom::setTolerance ( const Real &  a_tolerance  )  [static]

static void PolyGeom::setVectDx ( const RealVect &  a_vectDx  )  [static]

static void PolyGeom::setVolumeTolerance ( const Real &  a_tolerance  )  [static]

static void PolyGeom::setAreaTolerance ( const Real &  a_tolerance  )  [static]

static void PolyGeom::setLengthTolerance ( const Real &  a_tolerance  )  [static]

static RealVect PolyGeom::cross ( const RealVect &  a_xvec1,
const RealVect &  a_xvec0 
) [static]

compute the cross product between xvec0 and xvec1 (returns xvec1 x xvec0)

static Real PolyGeom::dot ( const RealVect &  a_xvec1,
const RealVect &  a_xvec0 
) [static]

compute the dot product between xvec0 and xvec1 (returns xvec1 dot xvec0)

static const Real& PolyGeom::getTolerance (  )  [static]

static const RealVect& PolyGeom::getVectDx (  )  [static]

static const Real& PolyGeom::getVolumeTolerance (  )  [static]

static const Real& PolyGeom::getAreaTolerance (  )  [static]

static const Real& PolyGeom::getLengthTolerance (  )  [static]

static RealVect PolyGeom::normal ( const VolIndex &  a_vof,
const EBISBox &  a_ebisBox,
const Real &  a_bndryArea 
) [static]

Return the normal to the boundary at the input VoF. If said normal is undefined, returns the zero vector.

static Real PolyGeom::bndryArea ( const VolIndex &  a_vof,
const EBISBox &  a_ebisBox 
) [static]

static Real PolyGeom::computeAlpha ( const Real &  a_volFrac,
const RealVect &  a_normal 
) [static]

Return the inhomogeneous component of the plane eqution ni xi = alpha. Volume fraction must be positive and <= 1.0 and the normals can be in any order.

static Real PolyGeom::computeVolume ( const Real &  a_alpha,
const RealVect &  a_normal 
) [static]

Compute the volume fraction in the cell given alpha and the normal.

static void PolyGeom::computeNormalAndAlpha ( Real &  a_alpha,
RealVect &  a_normal,
const int &  a_upDir,
const Tuple< RealVect, CH_SPACEDIM > &  a_poly 
) [static]

Get the normal and alpha given the points in a polygon. Solves the linear system \ ni xi - alpha = 0\ ni*ni = 1\ for ni and alpha. Always returns nromal[updir] >= 0

static Real PolyGeom::matrixSolveComp ( const Vector< Vector< Real > > &  a_A,
const Vector< Real > &  a_rhs,
const int &  a_icomp 
) [static]

static Real PolyGeom::determinant ( const Vector< Vector< Real > > &  a_A  )  [static]

static Real PolyGeom::sAndZVolume ( const Real &  a_alpha,
const RealVect &  a_normal 
) [static]

andzvolume computes the volume under the curve (covered volume). Does so using Scardovelli and Zaleski's direct formulae. The normal has to be all positive numbers. The normals also must be ordered from lowest to highest.

static void PolyGeom::sortVector ( RealVect &  vect,
IntVect &  ivmap 
) [static]

Sort vector from low to high. All comps must be positive. Return reverse mapping

static void PolyGeom::posifyVector ( RealVect &  vect,
IntVect &  signs 
) [static]

make vector all pos and return the signs

static void PolyGeom::unifyVector ( RealVect &  normal,
Real &  sumSquare 
) [static]

make vector into a unit vector and return the sum of squares

static Tuple<int, CH_SPACEDIM-1> PolyGeom::computeTanDirs ( int  upDir  )  [static]

static Real PolyGeom::twoDFunc ( const Real &  arg  )  [static, protected]

static Real PolyGeom::threeDFunc ( const Real &  arg  )  [static, protected]

static Real PolyGeom::computeAnyVolume ( const Real &  a_alpha,
const Real &  a_norm0,
const Real &  a_norm1,
const Real &  a_norm2 
) [static, protected]

static RealVect PolyGeom::tetCentroid ( const RealVect &  normal,
const Real &  alpha 
) [static, protected]

static Real PolyGeom::tetVolume ( const RealVect &  normal,
const Real &  alpha 
) [static, protected]


Member Data Documentation

RealVect PolyGeom::s_vectDx [static, protected]

Real PolyGeom::s_tolerance [static, protected]

Real PolyGeom::s_lengthtolerance [static, protected]

Real PolyGeom::s_areatolerance [static, protected]


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

Generated on Tue Apr 14 14:23:54 2009 for Chombo + EB by  doxygen 1.5.5