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< Point > | physQuadPts_ |
Array< Map< OrderedPair < BasisFamily, CellType >, RCP < Array< Array< Array< double > > > > > > | refFacetBasisVals_ |
Definition at line 48 of file SundanceQuadratureEvalMediator.hpp.
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.
static void Sundance::QuadratureEvalMediator::addFlops | ( | const double & | flops | ) | [inline, static] |
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] |
int Sundance::QuadratureEvalMediator::numEvaluationCases_ [private] |
Definition at line 140 of file SundanceQuadratureEvalMediator.hpp.
Referenced by numEvaluationCases().
Map<CellType, int> Sundance::QuadratureEvalMediator::numQuadPtsForCellType_ [private] |
Definition at line 146 of file SundanceQuadratureEvalMediator.hpp.
Array<Point> Sundance::QuadratureEvalMediator::physQuadPts_ [mutable, private] |
Definition at line 163 of file SundanceQuadratureEvalMediator.hpp.
Definition at line 143 of file SundanceQuadratureEvalMediator.hpp.
Map<CellType, RCP<Array<Point> > > Sundance::QuadratureEvalMediator::quadPtsForReferenceCell_ [private] |
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.
Map<CellType, RCP<Array<Array<Point> > > > Sundance::QuadratureEvalMediator::quadPtsReferredToMaxCell_ [private] |
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.