Public Member Functions | |
Lagrange (int order) | |
bool | supportsCellTypePair (const CellType &maximalCellType, const CellType &cellType) const |
Inform caller as to whether a given cell type is supported. | |
void | print (std::ostream &os) const |
int | order () const |
int | nReferenceDOFsWithoutFacets (const CellType &maximalCellType, const CellType &cellType) const |
void | getReferenceDOFs (const CellType &maximalCellType, const CellType &cellType, Array< Array< Array< int > > > &dofs) const |
void | refEval (const CellType &cellType, const Array< Point > &pts, const SpatialDerivSpecifier &deriv, Array< Array< Array< double > > > &result, int verbosity=0) const |
void | getConstrainsForHNDoF (const int indexInParent, const int maxCellDim, const int maxNrChild, const int facetDim, const int facetIndex, const int nodeIndex, Array< int > &localDoFs, Array< int > &parentFacetDim, Array< int > &parentFacetIndex, Array< int > &parentFacetNode, Array< double > &coefs) |
Handleable interface | |
int | order_ |
bool | doFInfromationCalculated_ |
Array< int > | facetD_ |
Array< int > | facetI_ |
Array< int > | facetN_ |
std::string | description () const |
static Array< int > | makeRange (int low, int high) |
void | evalOnLine (const Point &pt, const MultiIndex &deriv, Array< double > &result) const |
void | evalOnTriangle (const Point &pt, const MultiIndex &deriv, Array< double > &result) const |
void | evalOnquad (const Point &pt, const MultiIndex &deriv, Array< double > &result) const |
void | evalOnTet (const Point &pt, const MultiIndex &deriv, Array< double > &result) const |
void | evalOnBrick (const Point &pt, const MultiIndex &deriv, Array< double > &result) const |
void | returnDoFPositionOnRef (const int maxCellDim, const int facetDim, const int facetIndex, const int nodeIndex, Point &pos) const |
void | getDoFsOrdered (const CellType maxCellDim, int nrDoF, Array< int > &facetD, Array< int > &facetI, Array< int > &facetN) |
Definition at line 43 of file SundanceLagrange.hpp.
Lagrange::Lagrange | ( | int | order | ) |
Definition at line 45 of file SundanceLagrange.cpp.
std::string Sundance::Lagrange::description | ( | ) | const [inline] |
void Lagrange::evalOnBrick | ( | const Point & | pt, | |
const MultiIndex & | deriv, | |||
Array< double > & | result | |||
) | const [private] |
evaluate on a tet cell
Definition at line 628 of file SundanceLagrange.cpp.
References Sundance::MultiIndex::firstOrderDirection(), Sundance::MultiIndex::order(), order_, SUNDANCE_ERROR, and Sundance::value.
Referenced by refEval().
void Lagrange::evalOnLine | ( | const Point & | pt, | |
const MultiIndex & | deriv, | |||
Array< double > & | result | |||
) | const [private] |
evaluate on a line cell
Definition at line 360 of file SundanceLagrange.cpp.
References Sundance::MultiIndex::order(), order(), order_, and Sundance::value.
Referenced by refEval().
void Lagrange::evalOnquad | ( | const Point & | pt, | |
const MultiIndex & | deriv, | |||
Array< double > & | result | |||
) | const [private] |
evaluate on a quad cell
Definition at line 506 of file SundanceLagrange.cpp.
References Sundance::MultiIndex::firstOrderDirection(), Sundance::gradient(), Sundance::MultiIndex::order(), order_, SUNDANCE_OUT, Sundance::value, Sundance::ADReal::value(), and Playa::ObjectWithVerbosity::verb().
Referenced by refEval().
void Lagrange::evalOnTet | ( | const Point & | pt, | |
const MultiIndex & | deriv, | |||
Array< double > & | result | |||
) | const [private] |
evaluate on a tet cell
Definition at line 571 of file SundanceLagrange.cpp.
References Sundance::MultiIndex::firstOrderDirection(), Sundance::MultiIndex::order(), order_, SUNDANCE_ERROR, and Sundance::value.
Referenced by refEval().
void Lagrange::evalOnTriangle | ( | const Point & | pt, | |
const MultiIndex & | deriv, | |||
Array< double > & | result | |||
) | const [private] |
evaluate on a triangle cell
Definition at line 428 of file SundanceLagrange.cpp.
References Sundance::MultiIndex::firstOrderDirection(), Sundance::gradient(), Sundance::MultiIndex::order(), order_, SUNDANCE_ERROR, SUNDANCE_OUT, Sundance::value, Sundance::ADReal::value(), and Playa::ObjectWithVerbosity::verb().
Referenced by refEval().
void Lagrange::getConstrainsForHNDoF | ( | const int | indexInParent, | |
const int | maxCellDim, | |||
const int | maxNrChild, | |||
const int | facetDim, | |||
const int | facetIndex, | |||
const int | nodeIndex, | |||
Array< int > & | localDoFs, | |||
Array< int > & | parentFacetDim, | |||
Array< int > & | parentFacetIndex, | |||
Array< int > & | parentFacetNode, | |||
Array< double > & | coefs | |||
) | [virtual] |
constraints for hanging DoFs
Reimplemented from Sundance::BasisReferenceEvaluationBase.
Definition at line 932 of file SundanceLagrange.cpp.
References Sundance::BrickCell, doFInfromationCalculated_, facetD_, facetI_, facetN_, getDoFsOrdered(), Sundance::QuadCell, refEval(), returnDoFPositionOnRef(), SUNDANCE_OUT, and Playa::ObjectWithVerbosity::verb().
void Lagrange::getDoFsOrdered | ( | const CellType | maxCellDim, | |
int | nrDoF, | |||
Array< int > & | facetD, | |||
Array< int > & | facetI, | |||
Array< int > & | facetN | |||
) | [private] |
This method calls the "getReferenceDOFs" method and then for each DoF extracts the facet dimension, facet index and node in 3 different array
This method could be used for general purpose for other basis, where HN is possible
maxCellDim | [in] | |
nrDoF | [in] nr of DoF for this element | |
facetD | [out] | |
facetI | [out] | |
facetN | [out] |
Definition at line 1187 of file SundanceLagrange.cpp.
References getReferenceDOFs(), SUNDANCE_OUT, and Playa::ObjectWithVerbosity::verb().
Referenced by getConstrainsForHNDoF().
void Lagrange::getReferenceDOFs | ( | const CellType & | maximalCellType, | |
const CellType & | cellType, | |||
Array< Array< Array< int > > > & | dofs | |||
) | const [virtual] |
Implements Sundance::BasisDOFTopologyBase.
Definition at line 168 of file SundanceLagrange.cpp.
References Sundance::BrickCell, Sundance::ScalarBasis::dim(), Sundance::dimension(), Sundance::LineCell, makeRange(), Sundance::numFacets(), order(), order_, Sundance::PointCell, Sundance::QuadCell, Sundance::TetCell, and Sundance::TriangleCell.
Referenced by getDoFsOrdered().
Array< int > Lagrange::makeRange | ( | int | low, | |
int | high | |||
) | [static, private] |
int Lagrange::nReferenceDOFsWithoutFacets | ( | const CellType & | maximalCellType, | |
const CellType & | cellType | |||
) | const [virtual] |
return the number of nodes for this basis on the given cell type
Implements Sundance::BasisDOFTopologyBase.
Definition at line 120 of file SundanceLagrange.cpp.
References Sundance::BrickCell, Sundance::LineCell, order_, Sundance::PointCell, Sundance::QuadCell, Sundance::TetCell, and Sundance::TriangleCell.
int Sundance::Lagrange::order | ( | ) | const [inline, virtual] |
Implements Sundance::BasisFamilyBase.
Definition at line 61 of file SundanceLagrange.hpp.
References order_.
Referenced by description(), evalOnLine(), Sundance::ExprFieldWrapper::ExprFieldWrapper(), getReferenceDOFs(), Sundance::DOFMapBuilder::hasCellBasis(), Sundance::DOFMapBuilder::hasNodalBasis(), and returnDoFPositionOnRef().
void Lagrange::print | ( | std::ostream & | os | ) | const [virtual] |
Implements Playa::Printable.
Definition at line 115 of file SundanceLagrange.cpp.
References order_.
void Lagrange::refEval | ( | const CellType & | cellType, | |
const Array< Point > & | pts, | |||
const SpatialDerivSpecifier & | deriv, | |||
Array< Array< Array< double > > > & | result, | |||
int | verbosity = 0 | |||
) | const [virtual] |
Implements Sundance::BasisReferenceEvaluationBase.
Definition at line 300 of file SundanceLagrange.cpp.
References Sundance::BrickCell, evalOnBrick(), evalOnLine(), evalOnquad(), evalOnTet(), evalOnTriangle(), Sundance::SpatialDerivSpecifier::isIdentity(), Sundance::SpatialDerivSpecifier::isPartial(), Sundance::LineCell, Sundance::SpatialDerivSpecifier::mi(), Sundance::PointCell, Sundance::QuadCell, Sundance::TetCell, and Sundance::TriangleCell.
Referenced by getConstrainsForHNDoF().
void Lagrange::returnDoFPositionOnRef | ( | const int | maxCellDim, | |
const int | facetDim, | |||
const int | facetIndex, | |||
const int | nodeIndex, | |||
Point & | pos | |||
) | const [private] |
get the exact position one DoF on the Ref Element this is needed for the treatment of hanging nodes
maxCellDim | [in] the MaxCell dim of this element | |
facetDim | [in] the facet dim which the DoF is on | |
facetIndex | [in] the facet index which the DoF is on | |
nodeIndex | [in] the node index of the DoF | |
pos | [out] the position of the DoF |
Definition at line 1106 of file SundanceLagrange.cpp.
References order().
Referenced by getConstrainsForHNDoF().
bool Lagrange::supportsCellTypePair | ( | const CellType & | maximalCellType, | |
const CellType & | cellType | |||
) | const [virtual] |
Inform caller as to whether a given cell type is supported.
Implements Sundance::BasisDOFTopologyBase.
Definition at line 53 of file SundanceLagrange.cpp.
References Sundance::BrickCell, Sundance::LineCell, Sundance::PointCell, Sundance::QuadCell, Sundance::TetCell, and Sundance::TriangleCell.
bool Sundance::Lagrange::doFInfromationCalculated_ [private] |
Array<int> Sundance::Lagrange::facetD_ [private] |
For each DoF the dimension of the element which is the DoF on
Definition at line 169 of file SundanceLagrange.hpp.
Referenced by getConstrainsForHNDoF().
Array<int> Sundance::Lagrange::facetI_ [private] |
For each DoF the facet index of the element
Definition at line 172 of file SundanceLagrange.hpp.
Referenced by getConstrainsForHNDoF().
Array<int> Sundance::Lagrange::facetN_ [private] |
For each DoF the facet index of the element
Definition at line 175 of file SundanceLagrange.hpp.
Referenced by getConstrainsForHNDoF().
int Sundance::Lagrange::order_ [private] |
Definition at line 106 of file SundanceLagrange.hpp.
Referenced by evalOnBrick(), evalOnLine(), evalOnquad(), evalOnTet(), evalOnTriangle(), getReferenceDOFs(), nReferenceDOFsWithoutFacets(), order(), and print().