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 59 of file SundanceQuadratureEvalMediator.hpp.
| QuadratureEvalMediator::QuadratureEvalMediator | ( | const Mesh & | mesh, |
| int | cellDim, | ||
| const QuadratureFamily & | quad | ||
| ) |
Definition at line 68 of file SundanceQuadratureEvalMediator.cpp.
| virtual Sundance::QuadratureEvalMediator::~QuadratureEvalMediator | ( | ) | [inline, virtual] |
Definition at line 70 of file SundanceQuadratureEvalMediator.hpp.
| 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().
| void QuadratureEvalMediator::computePhysQuadPts | ( | ) | const [private] |
Definition at line 891 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 81 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 171 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 199 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 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] |
Evaluate the given discrete function, putting its numerical values in the given EvalVector.
Implements Sundance::AbstractEvalMediator.
Definition at line 409 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 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 |
Definition at line 264 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 399 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 133 of file SundanceQuadratureEvalMediator.hpp.
References numEvaluationCases_.
Referenced by setCellType().
| int QuadratureEvalMediator::numQuadPts | ( | const CellType & | cellType | ) | const |
Definition at line 163 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 941 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 86 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 963 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 120 of file SundanceQuadratureEvalMediator.hpp.
Referenced by addFlops(), computePhysQuadPts(), and fillFunctionCache().
int Sundance::QuadratureEvalMediator::numEvaluationCases_ [private] |
Definition at line 151 of file SundanceQuadratureEvalMediator.hpp.
Referenced by numEvaluationCases(), and setCellType().
Map<CellType, int> Sundance::QuadratureEvalMediator::numQuadPtsForCellType_ [private] |
Definition at line 157 of file SundanceQuadratureEvalMediator.hpp.
Referenced by numQuadPts(), and setCellType().
Array<Point> Sundance::QuadratureEvalMediator::physQuadPts_ [mutable, private] |
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().
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 165 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 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.