Public Member Functions | |
QuadratureFamilyBase (int order) | |
virtual | ~QuadratureFamilyBase () |
virtual int | getNumPoints (const CellType &cellType) const |
virtual void | getPoints (const CellType &cellType, Array< Point > &quadPoints, Array< double > &quadWeights) const |
virtual void | getAdaptedWeights (const CellType &cellType, int cellDim, int celLID, int facetIndex, const Mesh &mesh, const ParametrizedCurve &globalCurve, Array< Point > &quadPoints, Array< double > &quadWeights, bool &isCut) const |
Protected Member Functions | |
virtual void | getLineRule (Array< Point > &quadPoints, Array< double > &quadWeights) const |
virtual void | getTriangleRule (Array< Point > &quadPoints, Array< double > &quadWeights) const |
virtual void | getQuadRule (Array< Point > &quadPoints, Array< double > &quadWeights) const |
virtual void | getTetRule (Array< Point > &quadPoints, Array< double > &quadWeights) const |
virtual void | getBrickRule (Array< Point > &quadPoints, Array< double > &quadWeights) const |
Definition at line 51 of file SundanceQuadratureFamilyBase.hpp.
Sundance::QuadratureFamilyBase::QuadratureFamilyBase | ( | int | order | ) | [inline] |
Definition at line 55 of file SundanceQuadratureFamilyBase.hpp.
virtual Sundance::QuadratureFamilyBase::~QuadratureFamilyBase | ( | ) | [inline, virtual] |
Definition at line 58 of file SundanceQuadratureFamilyBase.hpp.
void QuadratureFamilyBase::getAdaptedWeights | ( | const CellType & | cellType, | |
int | cellDim, | |||
int | celLID, | |||
int | facetIndex, | |||
const Mesh & | mesh, | |||
const ParametrizedCurve & | globalCurve, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | quadWeights, | |||
bool & | isCut | |||
) | const [virtual] |
This method is used for the Adaptive Cell Integration, which returns special quadrature weights for cells which are cut by the curve
The quadPoints and the quadWeights are set to the default values. (quadrature without the curve , no curve) quadWeights will be changed depending on the curve, if the curve cuts the cell isCut should be set by this method, if it is true then the quadWeights will be used for quadrature of the cell
Reimplemented in Sundance::FeketeQuadrature, Sundance::GaussianQuadrature, Sundance::GaussLobattoQuadrature, Sundance::ReducedQuadrature, and Sundance::TrapesoidQuadrature.
Definition at line 73 of file SundanceQuadratureFamilyBase.cpp.
References SUNDANCE_ERROR, and Sundance::QuadratureFamilyStub::toXML().
Referenced by Sundance::QuadratureFamily::getAdaptedWeights().
void QuadratureFamilyBase::getBrickRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference brick cell
Reimplemented in Sundance::FeketeQuadrature, Sundance::GaussianQuadrature, Sundance::GaussLobattoQuadrature, and Sundance::TrapesoidQuadrature.
Definition at line 129 of file SundanceQuadratureFamilyBase.cpp.
References SUNDANCE_ERROR, and Sundance::QuadratureFamilyStub::toXML().
Referenced by getPoints().
void QuadratureFamilyBase::getLineRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference line cell
Reimplemented in Sundance::ClosedNewtonCotes, Sundance::FeketeQuadrature, Sundance::GaussianQuadrature, Sundance::GaussLobattoQuadrature, Sundance::PolygonQuadrature, and Sundance::TrapesoidQuadrature.
Definition at line 89 of file SundanceQuadratureFamilyBase.cpp.
References SUNDANCE_ERROR, and Sundance::QuadratureFamilyStub::toXML().
Referenced by getPoints().
virtual int Sundance::QuadratureFamilyBase::getNumPoints | ( | const CellType & | cellType | ) | const [inline, virtual] |
Gets number of points associated with a particular cell type: WARNING: this is slow. Call it once and store the result. TODO: make it pure virtual and override with queries in the derived classes, making them supply the information.
Reimplemented in Sundance::ReducedQuadrature.
Definition at line 64 of file SundanceQuadratureFamilyBase.hpp.
References getPoints().
Referenced by Sundance::QuadratureFamily::getNumPoints().
void QuadratureFamilyBase::getPoints | ( | const CellType & | cellType, | |
Array< Point > & | quadPoints, | |||
Array< double > & | quadWeights | |||
) | const [virtual] |
Get the quadrature points and weights for the given cell type
Reimplemented in Sundance::ReducedQuadrature.
Definition at line 37 of file SundanceQuadratureFamilyBase.cpp.
References Sundance::BrickCell, getBrickRule(), getLineRule(), getQuadRule(), getTetRule(), getTriangleRule(), Sundance::LineCell, Sundance::PointCell, Sundance::QuadCell, SUNDANCE_ERROR, Sundance::TetCell, and Sundance::TriangleCell.
Referenced by Sundance::TrapesoidQuadrature::getAdaptedWeights(), Sundance::GaussLobattoQuadrature::getAdaptedWeights(), Sundance::GaussianQuadrature::getAdaptedWeights(), Sundance::GaussianQuadrature::getBrickRule(), Sundance::FeketeQuadrature::getBrickRule(), Sundance::CurveIntegralCalc::getCurveQuadPoints_polygon(), getNumPoints(), Sundance::ReducedQuadrature::getPoints(), Sundance::QuadratureFamily::getPoints(), Sundance::GaussianQuadrature::getQuadRule(), Sundance::FeketeQuadrature::getQuadRule(), Sundance::CurveIntegralCalc::getSurfQuadPoints(), Sundance::GaussianQuadrature::getTetRule(), Sundance::GaussianQuadrature::getTriangleRule(), and Sundance::FeketeQuadrature::getTriangleRule().
void QuadratureFamilyBase::getQuadRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference quad cell
Reimplemented in Sundance::FeketeQuadrature, Sundance::GaussianQuadrature, Sundance::GaussLobattoQuadrature, Sundance::SurfQuadrature, and Sundance::TrapesoidQuadrature.
Definition at line 109 of file SundanceQuadratureFamilyBase.cpp.
References SUNDANCE_ERROR, and Sundance::QuadratureFamilyStub::toXML().
Referenced by getPoints().
void QuadratureFamilyBase::getTetRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference tet cell
Reimplemented in Sundance::GaussianQuadrature, Sundance::GaussLobattoQuadrature, and Sundance::TrapesoidQuadrature.
Definition at line 119 of file SundanceQuadratureFamilyBase.cpp.
References SUNDANCE_ERROR, and Sundance::QuadratureFamilyStub::toXML().
Referenced by getPoints().
void QuadratureFamilyBase::getTriangleRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference triangle cell
Reimplemented in Sundance::ClosedNewtonCotes, Sundance::FeketeQuadrature, Sundance::GaussianQuadrature, Sundance::GaussLobattoQuadrature, Sundance::SurfQuadrature, and Sundance::TrapesoidQuadrature.
Definition at line 99 of file SundanceQuadratureFamilyBase.cpp.
References SUNDANCE_ERROR, and Sundance::QuadratureFamilyStub::toXML().
Referenced by getPoints().