Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
Sundance::QuadratureEvalMediator Class Reference
Inheritance diagram for Sundance::QuadratureEvalMediator:
Sundance::StdFwkEvalMediator Sundance::AbstractEvalMediator Sundance::Printable

List of all members.

Public Member Functions

 QuadratureEvalMediator (const Mesh &mesh, int cellDim, const QuadratureFamily &quad)
virtual ~QuadratureEvalMediator ()
virtual void evalCoordExpr (const CoordExpr *expr, RCP< EvalVector > &vec) const
 Evaluate the given coordinate expression, putting its numerical values in the given EvalVector.
virtual void evalDiscreteFuncElement (const DiscreteFuncElement *expr, const Array< MultiIndex > &mi, Array< RCP< EvalVector > > &vec) const
 Evaluate the given discrete function, putting its numerical values in the given EvalVector.
virtual void evalCellDiameterExpr (const CellDiameterExpr *expr, RCP< EvalVector > &vec) const
 Evaluate the given cell diameter expression, putting its numerical values in the given EvalVector.
virtual void evalCellVectorExpr (const CellVectorExpr *expr, RCP< EvalVector > &vec) const
 Evaluate the given cell vector expression, putting its numerical values in the given EvalVector.
virtual void setCellType (const CellType &cellType, const CellType &maxCellType, bool isInternalBdry)
 Update the cell type.
virtual void print (std::ostream &os) const
Array< Array< double > > * getRefBasisVals (const BasisFamily &basis, int diffOrder) const
RCP< Array< Array< Array
< double > > > > 
getFacetRefBasisVals (const BasisFamily &basis, int diffOrder) const
int numQuadPts (const CellType &cellType) const
int numEvaluationCases () const
 Return the number of different cases for which reference basis functions must be evaluated.

Static Public Member Functions

static double & totalFlops ()
static void addFlops (const double &flops)
static Time & coordEvaluationTimer ()

Private Member Functions

void fillFunctionCache (const DiscreteFunctionData *f, const MultiIndex &mi) const
void computePhysQuadPts () const

Private Attributes

int numEvaluationCases_
QuadratureFamily quad_
Map< CellType, int > numQuadPtsForCellType_
Map< CellType, RCP< Array
< Point > > > 
quadPtsForReferenceCell_
 quadPtsForReferenceCell_ stores quadrature points using the cell's coordinate system, i.e., points on a line are stored in 1D coordinates regardless of the dimension of the maximal cell.
Map< CellType, RCP< Array
< Array< Point > > > > 
quadPtsReferredToMaxCell_
 quadPtsReferredToMaxCell_ stores quadrature points using the maximal cell's coordinate system, i.e., points on a line are stored in 2D coordinates if the line is a facet of a triangle, and so on.
Array< PointphysQuadPts_
Array< Map< OrderedPair
< BasisFamily, CellType >, RCP
< Array< Array< Array< double > > > > > > 
refFacetBasisVals_

Detailed Description

Definition at line 48 of file SundanceQuadratureEvalMediator.hpp.


Constructor & Destructor Documentation

Sundance::QuadratureEvalMediator::QuadratureEvalMediator ( const Mesh mesh,
int  cellDim,
const QuadratureFamily quad 
)
virtual Sundance::QuadratureEvalMediator::~QuadratureEvalMediator ( ) [inline, virtual]

Definition at line 59 of file SundanceQuadratureEvalMediator.hpp.


Member Function Documentation

static void Sundance::QuadratureEvalMediator::addFlops ( const double &  flops) [inline, static]

Definition at line 106 of file SundanceQuadratureEvalMediator.hpp.

References totalFlops().

Referenced by computePhysQuadPts(), and fillFunctionCache().

void QuadratureEvalMediator::computePhysQuadPts ( ) const [private]
Time & QuadratureEvalMediator::coordEvaluationTimer ( ) [static]

Definition at line 74 of file SundanceQuadratureEvalMediator.cpp.

void QuadratureEvalMediator::evalCellDiameterExpr ( const CellDiameterExpr expr,
RCP< EvalVector > &  vec 
) const [virtual]
void QuadratureEvalMediator::evalCellVectorExpr ( const CellVectorExpr expr,
RCP< EvalVector > &  vec 
) const [virtual]
void QuadratureEvalMediator::evalCoordExpr ( const CoordExpr expr,
RCP< EvalVector > &  vec 
) const [virtual]

Evaluate the given coordinate expression, putting its numerical values in the given EvalVector.

Implements Sundance::AbstractEvalMediator.

Definition at line 232 of file SundanceQuadratureEvalMediator.cpp.

References computePhysQuadPts(), Sundance::CoordExpr::dir(), physQuadPts_, SUNDANCE_MSG2, SUNDANCE_MSG3, Sundance::ExprBase::toString(), and Sundance::AbstractEvalMediator::verb().

void QuadratureEvalMediator::evalDiscreteFuncElement ( const DiscreteFuncElement expr,
const Array< MultiIndex > &  mi,
Array< RCP< EvalVector > > &  vec 
) const [virtual]
void QuadratureEvalMediator::fillFunctionCache ( const DiscreteFunctionData f,
const MultiIndex mi 
) const [private]
RCP< Array< Array< Array< double > > > > QuadratureEvalMediator::getFacetRefBasisVals ( const BasisFamily basis,
int  diffOrder 
) const
Array< Array< double > > * QuadratureEvalMediator::getRefBasisVals ( const BasisFamily basis,
int  diffOrder 
) const

Definition at line 392 of file SundanceQuadratureEvalMediator.cpp.

Referenced by fillFunctionCache().

int Sundance::QuadratureEvalMediator::numEvaluationCases ( ) const [inline]

Return the number of different cases for which reference basis functions must be evaluated.

If we're on maximal cells, this will be one. If we're on lower-dimensional cells, this will be equal to the number of cellDim-dimensional facets of the maximal cells.

Definition at line 115 of file SundanceQuadratureEvalMediator.hpp.

References numEvaluationCases_.

Referenced by setCellType().

int QuadratureEvalMediator::numQuadPts ( const CellType cellType) const
void QuadratureEvalMediator::print ( std::ostream &  os) const [virtual]
void QuadratureEvalMediator::setCellType ( const CellType cellType,
const CellType maxCellType,
bool  isInternalBdry 
) [virtual]
static double& Sundance::QuadratureEvalMediator::totalFlops ( ) [inline, static]

Member Data Documentation

Definition at line 133 of file SundanceQuadratureEvalMediator.hpp.

Referenced by numEvaluationCases(), and setCellType().

Definition at line 139 of file SundanceQuadratureEvalMediator.hpp.

Referenced by numQuadPts(), and setCellType().

Definition at line 156 of file SundanceQuadratureEvalMediator.hpp.

Referenced by computePhysQuadPts(), evalCoordExpr(), and print().

Definition at line 136 of file SundanceQuadratureEvalMediator.hpp.

Referenced by setCellType().

quadPtsForReferenceCell_ stores quadrature points using the cell's coordinate system, i.e., points on a line are stored in 1D coordinates regardless of the dimension of the maximal cell.

This tabulation of quad pts is used in push forward operations because it saves some pointer chasing within the mesh's pushForward() function.

Definition at line 147 of file SundanceQuadratureEvalMediator.hpp.

Referenced by computePhysQuadPts(), and setCellType().

quadPtsReferredToMaxCell_ stores quadrature points using the maximal cell's coordinate system, i.e., points on a line are stored in 2D coordinates if the line is a facet of a triangle, and so on.

These quadrature points are used in basis function evaluations.

Definition at line 153 of file SundanceQuadratureEvalMediator.hpp.

Referenced by computePhysQuadPts(), and setCellType().

Array<Map<OrderedPair<BasisFamily, CellType>, RCP<Array<Array<Array<double> > > > > > Sundance::QuadratureEvalMediator::refFacetBasisVals_ [mutable, private]

Definition at line 159 of file SundanceQuadratureEvalMediator.hpp.

Site Contact