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 Playa::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
virtual void evalDiscreteFuncElement (const DiscreteFuncElement *expr, const Array< MultiIndex > &mi, Array< RCP< EvalVector > > &vec) const
virtual void evalCellDiameterExpr (const CellDiameterExpr *expr, RCP< EvalVector > &vec) const
virtual void evalCellVectorExpr (const CellVectorExpr *expr, RCP< EvalVector > &vec) const
virtual void setCellType (const CellType &cellType, const CellType &maxCellType, bool isInternalBdry)
virtual void print (std::ostream &os) const
virtual void showResults (std::ostream &os, const RCP< SparsitySuperset > &sparsity, const Array< RCP< EvalVector > > &vecResults, const Array< double > &constantResults) 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

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_
Map< CellType, RCP< Array
< Array< Point > > > > 
quadPtsReferredToMaxCell_
Array< PointphysQuadPts_
Array< Map< OrderedPair
< BasisFamily, CellType >, RCP
< Array< Array< Array< double > > > > > > 
refFacetBasisVals_

Detailed Description

Definition at line 59 of file SundanceQuadratureEvalMediator.hpp.


Constructor & Destructor Documentation

QuadratureEvalMediator::QuadratureEvalMediator ( const Mesh mesh,
int  cellDim,
const QuadratureFamily quad 
)

Definition at line 68 of file SundanceQuadratureEvalMediator.cpp.

Definition at line 70 of file SundanceQuadratureEvalMediator.hpp.


Member Function Documentation

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

Definition at line 124 of file SundanceQuadratureEvalMediator.hpp.

References totalFlops().

Referenced by computePhysQuadPts(), and fillFunctionCache().

Definition at line 81 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 239 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]

Definition at line 572 of file SundanceQuadratureEvalMediator.cpp.

References addFlops(), Sundance::ElementIntegral::alwaysUseCofacets(), Sundance::CellJacobianBatch::applyInvJ(), Sundance::CellJacobianBatch::cellDim(), Sundance::StdFwkEvalMediator::cellDim(), Sundance::StdFwkEvalMediator::cellLID(), Sundance::StdFwkEvalMediator::cellType(), Sundance::StdFwkEvalMediator::cofacetCellLID(), Sundance::StdFwkEvalMediator::cofacetCellsAreReady(), Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::StdFwkEvalMediator::dfCache(), Sundance::StdFwkEvalMediator::dfCacheIsValid(), Sundance::AbstractEvalMediator::dfVerb(), Sundance::StdFwkEvalMediator::facetIndices(), Sundance::StdFwkEvalMediator::fCache(), Sundance::StdFwkEvalMediator::fCacheIsValid(), Sundance::Map< Key, Value, Compare >::get(), getFacetRefBasisVals(), Sundance::DiscreteFunctionData::getLocalValues(), getRefBasisVals(), Sundance::StdFwkEvalMediator::JTrans(), Sundance::StdFwkEvalMediator::localValueCache(), Sundance::StdFwkEvalMediator::localValueCacheIsValid(), Sundance::DiscreteFunctionData::map(), Sundance::StdFwkEvalMediator::mapStructCache(), Sundance::StdFwkEvalMediator::maxCellDim(), Sundance::StdFwkEvalMediator::maxCellType(), Sundance::BasisFamily::nReferenceDOFsWithFacets(), Sundance::CellJacobianBatch::numCells(), numQuadPts(), Sundance::MultiIndex::order(), Playa::Out::os(), Sundance::Map< Key, Value, Compare >::put(), Sundance::StdFwkEvalMediator::setupFacetTransformations(), Sundance::CellJacobianBatch::spatialDim(), SUNDANCE_MSG2, SUNDANCE_MSG4, and totalFlops().

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 399 of file SundanceQuadratureEvalMediator.cpp.

Referenced by fillFunctionCache().

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 133 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]
void QuadratureEvalMediator::showResults ( std::ostream &  os,
const RCP< SparsitySuperset > &  sparsity,
const Array< RCP< EvalVector > > &  vecResults,
const Array< double > &  constantResults 
) const [virtual]
static double& Sundance::QuadratureEvalMediator::totalFlops ( ) [inline, static]

Member Data Documentation

Definition at line 151 of file SundanceQuadratureEvalMediator.hpp.

Referenced by numEvaluationCases(), and setCellType().

Definition at line 157 of file SundanceQuadratureEvalMediator.hpp.

Referenced by numQuadPts(), and setCellType().

Definition at line 174 of file SundanceQuadratureEvalMediator.hpp.

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

Definition at line 154 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 165 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 171 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 177 of file SundanceQuadratureEvalMediator.hpp.

Site Contact