Public Member Functions | |
CurveIntegralCalc () | |
virtual | ~CurveIntegralCalc () |
Static Public Member Functions | |
static void | getCurveQuadPoints (CellType maxCellType, int maxCellLID, const Mesh &mesh, const ParametrizedCurve ¶mCurve, const QuadratureFamily &quad, Array< Point > &curvePoints, Array< Point > &curveDerivs, Array< Point > &curveNormals) |
static bool | usePolygoneCurveQuadrature (const CellType &cellType, const Mesh &mesh, const ParametrizedCurve ¶mCurve) |
static bool | use3DSurfQuadrature (const CellType &cellType, const Mesh &mesh) |
Static Private Member Functions | |
static void | getCurveQuadPoints_line (int maxCellLID, CellType maxCellType, const Mesh &mesh, const Array< Point > &cellPoints, const ParametrizedCurve ¶mCurve, const QuadratureFamily &quad, Array< Point > &curvePoints, Array< Point > &curveDerivs, Array< Point > &curveNormals) |
static void | get3DRealCoordsOnSurf (const Point &refP, const Array< Point > &cellPoints, const Array< int > &triangles, const int nrTriag, const Array< Point > edgeIntersectPoint, int &triagIndex, Point &realPoint) |
static void | getCurveQuadPoints_polygon (int maxCellLID, CellType maxCellType, const Mesh &mesh, const Array< Point > &cellPoints, const ParametrizedCurve ¶mCurve, const QuadratureFamily &quad, Array< Point > &curvePoints, Array< Point > &curveDerivs, Array< Point > &curveNormals) |
static void | getSurfQuadPoints (int maxCellLID, CellType maxCellType, const Mesh &mesh, const Array< Point > &cellPoints, const ParametrizedCurve ¶mCurve, const QuadratureFamily &quad, Array< Point > &curvePoints, Array< Point > &curveDerivs, Array< Point > &curveNormals) |
Definition at line 21 of file SundanceCurveIntegralCalc.hpp.
CurveIntegralCalc::CurveIntegralCalc | ( | ) |
Empty Ctor
Definition at line 19 of file SundanceCurveIntegralCalc.cpp.
virtual Sundance::CurveIntegralCalc::~CurveIntegralCalc | ( | ) | [inline, virtual] |
Definition at line 27 of file SundanceCurveIntegralCalc.hpp.
void CurveIntegralCalc::get3DRealCoordsOnSurf | ( | const Point & | refP, | |
const Array< Point > & | cellPoints, | |||
const Array< int > & | triangles, | |||
const int | nrTriag, | |||
const Array< Point > | edgeIntersectPoint, | |||
int & | triagIndex, | |||
Point & | realPoint | |||
) | [static, private] |
projects the point from 2D surf to 3D points of the element (needed for surf integrals)
Definition at line 513 of file SundanceCurveIntegralCalc.cpp.
References SUNDANCE_MSG3.
Referenced by getCurveQuadPoints_line().
void CurveIntegralCalc::getCurveQuadPoints | ( | CellType | maxCellType, | |
int | maxCellLID, | |||
const Mesh & | mesh, | |||
const ParametrizedCurve & | paramCurve, | |||
const QuadratureFamily & | quad, | |||
Array< Point > & | curvePoints, | |||
Array< Point > & | curveDerivs, | |||
Array< Point > & | curveNormals | |||
) | [static] |
[in] maxCellType
[in] const Array<Point>& cellPoints (the physical points of the cell)
[in] paramCurve
[in] Quadraturefamily , quadrature 1D for curve, or 2D for surface
[out] Array<Point>& curvePoints
[out] Array<Point>& curveDerivs
[out] Array<Point>& curveNormals
Definition at line 23 of file SundanceCurveIntegralCalc.cpp.
References Sundance::Mesh::facetLID(), getCurveQuadPoints_line(), getCurveQuadPoints_polygon(), getSurfQuadPoints(), Sundance::Mesh::nodePosition(), Sundance::Mesh::numFacets(), Sundance::Mesh::spatialDim(), SUNDANCE_MSG3, use3DSurfQuadrature(), and usePolygoneCurveQuadrature().
Referenced by Sundance::CurveEvalMediator::evalCoordExpr(), Sundance::CurveEvalMediator::evalCurveNormExpr(), Sundance::CurveEvalMediator::evalDiscreteFuncElement(), getSurfQuadPoints(), and Sundance::CurveQuadratureIntegral::updateRefCellInformation().
void CurveIntegralCalc::getCurveQuadPoints_line | ( | int | maxCellLID, | |
CellType | maxCellType, | |||
const Mesh & | mesh, | |||
const Array< Point > & | cellPoints, | |||
const ParametrizedCurve & | paramCurve, | |||
const QuadratureFamily & | quad, | |||
Array< Point > & | curvePoints, | |||
Array< Point > & | curveDerivs, | |||
Array< Point > & | curveNormals | |||
) | [static, private] |
the simplest method which considers only the intersection points on the facets, and inside the element we use
Definition at line 67 of file SundanceCurveIntegralCalc.cpp.
References Sundance::CellJacobianBatch::applyInvJ(), Sundance::BrickCell, Sundance::cross(), get3DRealCoordsOnSurf(), Sundance::Mesh::getJacobians(), Sundance::QuadratureFamily::getPoints(), Sundance::LineCell, Sundance::QuadCell, Sundance::CellJacobianBatch::resize(), SUNDANCE_MSG3, Sundance::TetCell, and Sundance::TriangleCell.
Referenced by getCurveQuadPoints().
void CurveIntegralCalc::getCurveQuadPoints_polygon | ( | int | maxCellLID, | |
CellType | maxCellType, | |||
const Mesh & | mesh, | |||
const Array< Point > & | cellPoints, | |||
const ParametrizedCurve & | paramCurve, | |||
const QuadratureFamily & | quad, | |||
Array< Point > & | curvePoints, | |||
Array< Point > & | curveDerivs, | |||
Array< Point > & | curveNormals | |||
) | [static, private] |
polygons in 1D curves, uses the information from the polygon
Definition at line 642 of file SundanceCurveIntegralCalc.cpp.
References Sundance::CellJacobianBatch::applyInvJ(), Sundance::Mesh::getJacobians(), Sundance::PolygonQuadrature::getNrMaxLinePerCell(), Sundance::QuadratureFamilyBase::getPoints(), Sundance::LineCell, Playa::Handle< PointerType >::ptr(), Sundance::QuadCell, Sundance::CellJacobianBatch::resize(), Sundance::Point::resize(), SUNDANCE_MSG3, and Sundance::TriangleCell.
Referenced by getCurveQuadPoints().
void CurveIntegralCalc::getSurfQuadPoints | ( | int | maxCellLID, | |
CellType | maxCellType, | |||
const Mesh & | mesh, | |||
const Array< Point > & | cellPoints, | |||
const ParametrizedCurve & | paramCurve, | |||
const QuadratureFamily & | quad, | |||
Array< Point > & | curvePoints, | |||
Array< Point > & | curveDerivs, | |||
Array< Point > & | curveNormals | |||
) | [static, private] |
special method for 3D surface quadrature similar to the one in getCurveQuadPoints_line , but it uses special Quadrature class, up to 4 triangles per brick cell
Definition at line 956 of file SundanceCurveIntegralCalc.cpp.
References Sundance::cross(), getCurveQuadPoints(), Sundance::SurfQuadrature::getNrMaxTrianglePerCell(), Sundance::QuadratureFamilyBase::getPoints(), Playa::Handle< PointerType >::ptr(), SUNDANCE_MSG3, and Sundance::TriangleCell.
Referenced by getCurveQuadPoints().
static bool Sundance::CurveIntegralCalc::use3DSurfQuadrature | ( | const CellType & | cellType, | |
const Mesh & | mesh | |||
) | [inline, static] |
test if we are in 3D for the Brick surface quadrature
Definition at line 54 of file SundanceCurveIntegralCalc.hpp.
References Sundance::BrickCell, Sundance::Mesh::cellType(), and Sundance::Mesh::spatialDim().
Referenced by getCurveQuadPoints().
bool CurveIntegralCalc::usePolygoneCurveQuadrature | ( | const CellType & | cellType, | |
const Mesh & | mesh, | |||
const ParametrizedCurve & | paramCurve | |||
) | [static] |
this method shows if special methods for polygon can be used
Definition at line 597 of file SundanceCurveIntegralCalc.cpp.
References Sundance::Mesh::cellType(), Sundance::QuadCell, Sundance::Mesh::spatialDim(), and Sundance::TriangleCell.
Referenced by Sundance::GaussLobattoQuadrature::getAdaptedWeights(), and getCurveQuadPoints().