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.
| QuadratureEvalMediator::QuadratureEvalMediator | ( | const Mesh & | mesh, |
| int | cellDim, | ||
| const QuadratureFamily & | quad | ||
| ) |
Definition at line 57 of file SundanceQuadratureEvalMediator.cpp.
| virtual Sundance::QuadratureEvalMediator::~QuadratureEvalMediator | ( | ) | [inline, virtual] |
Definition at line 59 of file SundanceQuadratureEvalMediator.hpp.
| static void Sundance::QuadratureEvalMediator::addFlops | ( | const double & | flops | ) | [inline, static] |
Definition at line 113 of file SundanceQuadratureEvalMediator.hpp.
References totalFlops().
Referenced by computePhysQuadPts(), and fillFunctionCache().
| void QuadratureEvalMediator::computePhysQuadPts | ( | ) | const [private] |
Definition at line 880 of file SundanceQuadratureEvalMediator.cpp.
References addFlops(), Sundance::ElementIntegral::alwaysUseCofacets(), Sundance::StdFwkEvalMediator::cacheIsValid(), Sundance::StdFwkEvalMediator::cellDim(), Sundance::StdFwkEvalMediator::cellLID(), Sundance::StdFwkEvalMediator::cellType(), Sundance::StdFwkEvalMediator::cofacetCellLID(), Sundance::StdFwkEvalMediator::facetIndices(), Sundance::Map< Key, Value, Compare >::get(), Sundance::StdFwkEvalMediator::isInternalBdry(), Sundance::StdFwkEvalMediator::maxCellDim(), Sundance::StdFwkEvalMediator::mesh(), physQuadPts_, Sundance::Mesh::pushForward(), quadPtsForReferenceCell_, quadPtsReferredToMaxCell_, SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_OUT, totalFlops(), Sundance::CellJacobianBatch::totalFlops(), and Sundance::AbstractEvalMediator::verb().
Referenced by evalCoordExpr().
| Time & QuadratureEvalMediator::coordEvaluationTimer | ( | ) | [static] |
Definition at line 70 of file SundanceQuadratureEvalMediator.cpp.
| void 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.
Definition at line 160 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::StdFwkEvalMediator::cellDim(), Sundance::StdFwkEvalMediator::cellLID(), Sundance::StdFwkEvalMediator::cellType(), Sundance::Mesh::getCellDiameters(), Sundance::StdFwkEvalMediator::mesh(), numQuadPts(), SUNDANCE_MSG2, SUNDANCE_MSG3, Sundance::ExprBase::toString(), and Sundance::AbstractEvalMediator::verb().
| void 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.
Definition at line 188 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::StdFwkEvalMediator::cellDim(), Sundance::StdFwkEvalMediator::cellLID(), Sundance::StdFwkEvalMediator::cellType(), Sundance::CellVectorExpr::componentIndex(), Sundance::CellVectorExpr::isNormal(), Sundance::StdFwkEvalMediator::mesh(), numQuadPts(), Sundance::Mesh::outwardNormals(), SUNDANCE_MSG2, SUNDANCE_MSG3, Sundance::Mesh::tangentsToEdges(), Sundance::ExprBase::toString(), and Sundance::AbstractEvalMediator::verb().
| 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 228 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] |
Evaluate the given discrete function, putting its numerical values in the given EvalVector.
Implements Sundance::AbstractEvalMediator.
Definition at line 398 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::DiscreteFunctionData::discreteSpace(), Sundance::MultiIndex::firstOrderDirection(), Sundance::DiscreteFunctionData::getData(), Sundance::DiscreteFuncElement::myIndex(), Sundance::FuncElementBase::name(), Sundance::DiscreteSpace::nFunc(), Sundance::MultiIndex::order(), Playa::Out::os(), SUNDANCE_MSG1, SUNDANCE_MSG2, SUNDANCE_MSG3, SUNDANCE_MSG4, and vecPtr().
| void QuadratureEvalMediator::fillFunctionCache | ( | const DiscreteFunctionData * | f, |
| const MultiIndex & | mi | ||
| ) | const [private] |
Definition at line 561 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 |
Definition at line 253 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::ElementIntegral::alwaysUseCofacets(), Sundance::BasisFamily::dim(), Playa::Out::os(), Sundance::BasisFamily::refEval(), SUNDANCE_MSG2, and SUNDANCE_OUT.
Referenced by fillFunctionCache().
| Array< Array< double > > * QuadratureEvalMediator::getRefBasisVals | ( | const BasisFamily & | basis, |
| int | diffOrder | ||
| ) | const |
Definition at line 388 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 122 of file SundanceQuadratureEvalMediator.hpp.
References numEvaluationCases_.
Referenced by setCellType().
| int QuadratureEvalMediator::numQuadPts | ( | const CellType & | cellType | ) | const |
Definition at line 152 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::Map< Key, Value, Compare >::get(), and numQuadPtsForCellType_.
Referenced by evalCellDiameterExpr(), evalCellVectorExpr(), and fillFunctionCache().
| void QuadratureEvalMediator::print | ( | std::ostream & | os | ) | const [virtual] |
Implements Playa::Printable.
Definition at line 930 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::StdFwkEvalMediator::cacheIsValid(), Sundance::StdFwkEvalMediator::cellLID(), and physQuadPts_.
| void QuadratureEvalMediator::setCellType | ( | const CellType & | cellType, |
| const CellType & | maxCellType, | ||
| bool | isInternalBdry | ||
| ) | [virtual] |
Reimplemented from Sundance::StdFwkEvalMediator.
Definition at line 75 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::StdFwkEvalMediator::cellDim(), Sundance::Map< Key, Value, Compare >::containsKey(), Sundance::StdFwkEvalMediator::forbidCofacetIntegrations(), Sundance::QuadratureFamily::getFacetPoints(), Sundance::QuadratureFamily::getPoints(), Sundance::StdFwkEvalMediator::integrationCellSpec(), Sundance::StdFwkEvalMediator::isInternalBdry(), numEvaluationCases(), numEvaluationCases_, Sundance::numFacets(), numQuadPtsForCellType_, Sundance::Map< Key, Value, Compare >::put(), quad_, quadPtsForReferenceCell_, quadPtsReferredToMaxCell_, SUNDANCE_MSG2, and Sundance::AbstractEvalMediator::verb().
| void 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.
Definition at line 952 of file SundanceQuadratureEvalMediator.cpp.
References Sundance::ConstantDeriv, Sundance::EvalVector::shadowOps(), Sundance::VectorDeriv, and Sundance::ZeroDeriv.
| static double& Sundance::QuadratureEvalMediator::totalFlops | ( | ) | [inline, static] |
Definition at line 109 of file SundanceQuadratureEvalMediator.hpp.
Referenced by addFlops(), computePhysQuadPts(), and fillFunctionCache().
int Sundance::QuadratureEvalMediator::numEvaluationCases_ [private] |
Definition at line 140 of file SundanceQuadratureEvalMediator.hpp.
Referenced by numEvaluationCases(), and setCellType().
Map<CellType, int> Sundance::QuadratureEvalMediator::numQuadPtsForCellType_ [private] |
Definition at line 146 of file SundanceQuadratureEvalMediator.hpp.
Referenced by numQuadPts(), and setCellType().
Array<Point> Sundance::QuadratureEvalMediator::physQuadPts_ [mutable, private] |
Definition at line 163 of file SundanceQuadratureEvalMediator.hpp.
Referenced by computePhysQuadPts(), evalCoordExpr(), and print().
Definition at line 143 of file SundanceQuadratureEvalMediator.hpp.
Referenced by setCellType().
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.
Referenced by computePhysQuadPts(), and setCellType().
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.
Referenced by computePhysQuadPts(), and setCellType().
Array<Map<OrderedPair<BasisFamily, CellType>, RCP<Array<Array<Array<double> > > > > > Sundance::QuadratureEvalMediator::refFacetBasisVals_ [mutable, private] |
Definition at line 166 of file SundanceQuadratureEvalMediator.hpp.