Public Member Functions | |
GaussLobattoQuadrature (int order) | |
virtual | ~GaussLobattoQuadrature () |
virtual XMLObject | toXML () const |
virtual std::string | description () const |
Handleable interface | |
int | nrPointin1D_ |
int | verb_ |
static const int | quadsEdgesPoints [4][2] = { {0,1} , {0,2} , {1,3} , {2,3} } |
static const int | edge3DProjection [12] = { 0 , 1 , 2 , 1 , 2 , 0 , 2 , 2 , 0 , 1 , 1 , 0} |
virtual void | getLineRule (Array< Point > &quadPointsL, 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 |
virtual void | getAdaptedWeights (const CellType &cellType, int cellDim, int cellLID, int facetIndex, const Mesh &mesh, const ParametrizedCurve &globalCurve, Array< Point > &quadPoints, Array< double > &quadWeights, bool &weightsChanged) const |
virtual void | getAdaptedQuadWeights (int cellLID, const Mesh &mesh, const ParametrizedCurve &globalCurve, Array< Point > &quadPoints, Array< double > &quadWeights, bool &weightsChanged) const |
virtual void | getAdaptedQuadWeights_polygon (int cellLID, const Mesh &mesh, const ParametrizedCurve &globalCurve, Array< Point > &quadPoints, Array< double > &quadWeights, bool &weightsChanged) const |
virtual void | getAdaptedQuadWeights_surf (int cellLID, const Mesh &mesh, const ParametrizedCurve &globalCurve, Array< Point > &quadPoints, Array< double > &quadWeights, bool &weightsChanged) const |
void | getTriangleQuadPoints (Array< Point > &pnt, Array< double > &weight) const |
double | evalLagrangePol (int i, Array< Point > &pnt, double x) const |
void | makeInterpolantQuad (double px, double py, double ofx, double ofy, int nr1DPoints, int nr2DPoints, Array< Point > &linePoints, Array< Point > &quadPoints, Array< double > &pointWeights, Array< double > &weightsOut, double areFakt) const |
void | makeInterpolantBrick (int nr1DPoints, int nr3DPoints, Array< Point > &linePoints, Array< Point > &quadPoints, Array< double > &pointWeights, Array< double > &weightsOut, double areFakt) const |
Definition at line 17 of file SundanceGaussLobattoQuadrature.hpp.
GaussLobattoQuadrature::GaussLobattoQuadrature | ( | int | order | ) |
In this case the
Definition at line 22 of file SundanceGaussLobattoQuadrature.cpp.
References nrPointin1D_, and verb_.
virtual Sundance::GaussLobattoQuadrature::~GaussLobattoQuadrature | ( | ) | [inline, virtual] |
Definition at line 25 of file SundanceGaussLobattoQuadrature.hpp.
virtual std::string Sundance::GaussLobattoQuadrature::description | ( | ) | const [inline, virtual] |
Describable interface
Reimplemented from Sundance::QuadratureFamilyStub.
Definition at line 32 of file SundanceGaussLobattoQuadrature.hpp.
References Sundance::QuadratureFamilyStub::order(), and Sundance::toString().
double Sundance::GaussLobattoQuadrature::evalLagrangePol | ( | int | i, | |
Array< Point > & | pnt, | |||
double | x | |||
) | const [inline, private] |
i,the | i-th point | |
pnt | 1D points where we interpolate | |
x | the position where we evaluate |
Definition at line 104 of file SundanceGaussLobattoQuadrature.hpp.
Referenced by makeInterpolantBrick(), and makeInterpolantQuad().
void GaussLobattoQuadrature::getAdaptedQuadWeights | ( | int | cellLID, | |
const Mesh & | mesh, | |||
const ParametrizedCurve & | globalCurve, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | quadWeights, | |||
bool & | weightsChanged | |||
) | const [protected, virtual] |
Get the weights for one quad
Definition at line 566 of file SundanceGaussLobattoQuadrature.cpp.
References Sundance::Mesh::facetLID(), getLineRule(), getQuadRule(), getTriangleQuadPoints(), makeInterpolantQuad(), Sundance::Mesh::nodePosition(), quadsEdgesPoints, Sundance::Point::resize(), SUNDANCE_MSG3, and verb_.
Referenced by getAdaptedWeights().
void GaussLobattoQuadrature::getAdaptedQuadWeights_polygon | ( | int | cellLID, | |
const Mesh & | mesh, | |||
const ParametrizedCurve & | globalCurve, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | quadWeights, | |||
bool & | weightsChanged | |||
) | const [protected, virtual] |
Get the weights for one quad knowing that the curve is a 2D polygon
Definition at line 204 of file SundanceGaussLobattoQuadrature.cpp.
References Sundance::Mesh::facetLID(), getLineRule(), getQuadRule(), getTriangleQuadPoints(), makeInterpolantQuad(), Sundance::Mesh::nodePosition(), pi, quadsEdgesPoints, Sundance::Point::resize(), SUNDANCE_MSG3, and verb_.
Referenced by getAdaptedWeights().
void GaussLobattoQuadrature::getAdaptedQuadWeights_surf | ( | int | cellLID, | |
const Mesh & | mesh, | |||
const ParametrizedCurve & | globalCurve, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | quadWeights, | |||
bool & | weightsChanged | |||
) | const [protected, virtual] |
Get the weights for one quad knowing that the curve is a 3D surface
Definition at line 879 of file SundanceGaussLobattoQuadrature.cpp.
References Sundance::BrickCell, Sundance::cross(), edge3DProjection, Sundance::Mesh::facetLID(), getBrickRule(), Sundance::SundanceSurf3DCalc::getCurveQuadPoints(), getLineRule(), getTriangleQuadPoints(), makeInterpolantBrick(), Sundance::Mesh::nodePosition(), Sundance::Mesh::numFacets(), Sundance::Point::resize(), Sundance::Mesh::spatialDim(), SUNDANCE_MSG1, and SUNDANCE_MSG3.
Referenced by getAdaptedWeights().
void GaussLobattoQuadrature::getAdaptedWeights | ( | const CellType & | cellType, | |
int | cellDim, | |||
int | cellLID, | |||
int | facetIndex, | |||
const Mesh & | mesh, | |||
const ParametrizedCurve & | globalCurve, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | quadWeights, | |||
bool & | weightsChanged | |||
) | const [protected, virtual] |
Compute adapted weights according to curve
cellType | ||
cellDim | ||
cellLID | ||
facetIndex | ||
mesh | ||
globalCurve | ||
quadPoints | ||
quadWeights | ||
changedWeights |
Reimplemented from Sundance::QuadratureFamilyBase.
Definition at line 103 of file SundanceGaussLobattoQuadrature.cpp.
References Sundance::BrickCell, Sundance::Mesh::cellType(), getAdaptedQuadWeights(), getAdaptedQuadWeights_polygon(), getAdaptedQuadWeights_surf(), Sundance::QuadratureFamilyBase::getPoints(), Sundance::Mesh::getSpecialWeight(), Sundance::Mesh::hasSpecialWeight(), Sundance::Mesh::IsSpecialWeightValid(), Sundance::QuadCell, Sundance::Mesh::setSpecialWeight(), Sundance::Mesh::spatialDim(), SUNDANCE_ERROR, Sundance::TriangleCell, and Sundance::CurveIntegralCalc::usePolygoneCurveQuadrature().
void GaussLobattoQuadrature::getBrickRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference brick cell
Reimplemented from Sundance::QuadratureFamilyBase.
Definition at line 76 of file SundanceGaussLobattoQuadrature.cpp.
References getLineRule().
Referenced by getAdaptedQuadWeights_surf().
void GaussLobattoQuadrature::getLineRule | ( | Array< Point > & | quadPointsL, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference line cell
Reimplemented from Sundance::QuadratureFamilyBase.
Definition at line 1167 of file SundanceGaussLobattoQuadrature.cpp.
References Sundance::QuadratureFamilyStub::order().
Referenced by getAdaptedQuadWeights(), getAdaptedQuadWeights_polygon(), getAdaptedQuadWeights_surf(), getBrickRule(), and getQuadRule().
void GaussLobattoQuadrature::getQuadRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference quad cell
Reimplemented from Sundance::QuadratureFamilyBase.
Definition at line 43 of file SundanceGaussLobattoQuadrature.cpp.
References getLineRule().
Referenced by getAdaptedQuadWeights(), and getAdaptedQuadWeights_polygon().
void GaussLobattoQuadrature::getTetRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference tet cell
Reimplemented from Sundance::QuadratureFamilyBase.
Definition at line 68 of file SundanceGaussLobattoQuadrature.cpp.
References SUNDANCE_ERROR, and toXML().
void GaussLobattoQuadrature::getTriangleQuadPoints | ( | Array< Point > & | pnt, | |
Array< double > & | weight | |||
) | const [private] |
get the triangle quadrature points for the adaptive integration
Definition at line 1363 of file SundanceGaussLobattoQuadrature.cpp.
References nrPointin1D_.
Referenced by getAdaptedQuadWeights(), getAdaptedQuadWeights_polygon(), and getAdaptedQuadWeights_surf().
void GaussLobattoQuadrature::getTriangleRule | ( | Array< Point > & | quadPoints, | |
Array< double > & | quadWeights | |||
) | const [protected, virtual] |
compute a rule for the reference triangle cell
Reimplemented from Sundance::QuadratureFamilyBase.
Definition at line 36 of file SundanceGaussLobattoQuadrature.cpp.
References SUNDANCE_ERROR, and toXML().
void Sundance::GaussLobattoQuadrature::makeInterpolantBrick | ( | int | nr1DPoints, | |
int | nr3DPoints, | |||
Array< Point > & | linePoints, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | pointWeights, | |||
Array< double > & | weightsOut, | |||
double | areFakt | |||
) | const [inline, private] |
this function applies quadrature to the Lagrange functions
all the coordinates are in the reference coordinates
Definition at line 159 of file SundanceGaussLobattoQuadrature.hpp.
References evalLagrangePol().
Referenced by getAdaptedQuadWeights_surf().
void Sundance::GaussLobattoQuadrature::makeInterpolantQuad | ( | double | px, | |
double | py, | |||
double | ofx, | |||
double | ofy, | |||
int | nr1DPoints, | |||
int | nr2DPoints, | |||
Array< Point > & | linePoints, | |||
Array< Point > & | quadPoints, | |||
Array< double > & | pointWeights, | |||
Array< double > & | weightsOut, | |||
double | areFakt | |||
) | const [inline, private] |
this function applies quadrature to the Lagrange functions
all the coordinates are in the reference coordinates
Definition at line 118 of file SundanceGaussLobattoQuadrature.hpp.
References evalLagrangePol().
Referenced by getAdaptedQuadWeights(), and getAdaptedQuadWeights_polygon().
XMLObject GaussLobattoQuadrature::toXML | ( | ) | const [virtual] |
Reimplemented from Sundance::QuadratureFamilyStub.
Definition at line 28 of file SundanceGaussLobattoQuadrature.cpp.
References Sundance::QuadratureFamilyStub::order(), and Teuchos::toString().
Referenced by getTetRule(), and getTriangleRule().
int const GaussLobattoQuadrature::edge3DProjection = { 0 , 1 , 2 , 1 , 2 , 0 , 2 , 2 , 0 , 1 , 1 , 0} [static, private] |
qvasi information for the 3D cut-cell integral
Definition at line 200 of file SundanceGaussLobattoQuadrature.hpp.
Referenced by getAdaptedQuadWeights_surf().
int Sundance::GaussLobattoQuadrature::nrPointin1D_ [private] |
nr of points in 1D, the rest should be tensor product
Definition at line 192 of file SundanceGaussLobattoQuadrature.hpp.
Referenced by GaussLobattoQuadrature(), and getTriangleQuadPoints().
int const GaussLobattoQuadrature::quadsEdgesPoints = { {0,1} , {0,2} , {1,3} , {2,3} } [static, private] |
Definition at line 197 of file SundanceGaussLobattoQuadrature.hpp.
Referenced by getAdaptedQuadWeights(), and getAdaptedQuadWeights_polygon().
int Sundance::GaussLobattoQuadrature::verb_ [private] |
the verbosity of the object
Definition at line 195 of file SundanceGaussLobattoQuadrature.hpp.
Referenced by GaussLobattoQuadrature(), getAdaptedQuadWeights(), and getAdaptedQuadWeights_polygon().