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 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 113 of file SundanceQuadratureEvalMediator.hpp.

References totalFlops().

void Sundance::QuadratureEvalMediator::computePhysQuadPts (  )  const [private]

static Time& Sundance::QuadratureEvalMediator::coordEvaluationTimer (  )  [static]

virtual void Sundance::QuadratureEvalMediator::evalCellDiameterExpr ( const CellDiameterExpr expr,
RCP< EvalVector > &  vec 
) const [virtual]

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

Implements Sundance::AbstractEvalMediator.

virtual void Sundance::QuadratureEvalMediator::evalCellVectorExpr ( const CellVectorExpr expr,
RCP< EvalVector > &  vec 
) const [virtual]

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

Implements Sundance::AbstractEvalMediator.

virtual void Sundance::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.

virtual void Sundance::QuadratureEvalMediator::evalDiscreteFuncElement ( const DiscreteFuncElement expr,
const Array< MultiIndex > &  mi,
Array< RCP< EvalVector > > &  vec 
) const [virtual]

Evaluate the given discrete function, putting its numerical values in the given EvalVector.

Implements Sundance::AbstractEvalMediator.

void Sundance::QuadratureEvalMediator::fillFunctionCache ( const DiscreteFunctionData f,
const MultiIndex mi 
) const [private]

RCP<Array<Array<Array<double> > > > Sundance::QuadratureEvalMediator::getFacetRefBasisVals ( const BasisFamily basis,
int  diffOrder 
) const

Array<Array<double> >* Sundance::QuadratureEvalMediator::getRefBasisVals ( const BasisFamily basis,
int  diffOrder 
) const

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 122 of file SundanceQuadratureEvalMediator.hpp.

References numEvaluationCases_.

int Sundance::QuadratureEvalMediator::numQuadPts ( const CellType cellType  )  const

virtual void Sundance::QuadratureEvalMediator::print ( std::ostream &  os  )  const [virtual]

Implements Playa::Printable.

virtual void Sundance::QuadratureEvalMediator::setCellType ( const CellType cellType,
const CellType maxCellType,
bool  isInternalBdry 
) [virtual]

Reimplemented from Sundance::StdFwkEvalMediator.

virtual void Sundance::QuadratureEvalMediator::showResults ( std::ostream &  os,
const RCP< SparsitySuperset > &  sparsity,
const Array< RCP< EvalVector > > &  vecResults,
const Array< double > &  constantResults 
) const [virtual]

Print evaluation results

Reimplemented from Sundance::AbstractEvalMediator.

static double& Sundance::QuadratureEvalMediator::totalFlops (  )  [inline, static]

Definition at line 109 of file SundanceQuadratureEvalMediator.hpp.

Referenced by addFlops().


Member Data Documentation

Definition at line 140 of file SundanceQuadratureEvalMediator.hpp.

Referenced by numEvaluationCases().

Definition at line 146 of file SundanceQuadratureEvalMediator.hpp.

Definition at line 163 of file SundanceQuadratureEvalMediator.hpp.

Definition at line 143 of file SundanceQuadratureEvalMediator.hpp.

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 154 of file SundanceQuadratureEvalMediator.hpp.

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 160 of file SundanceQuadratureEvalMediator.hpp.

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

Definition at line 166 of file SundanceQuadratureEvalMediator.hpp.

Site Contact