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) |
Lagrange basis
Definition at line 54 of file SundanceLagrange.hpp.
| Lagrange::Lagrange | ( | int | order | ) |
Definition at line 56 of file SundanceLagrange.cpp.
| std::string Sundance::Lagrange::description | ( | ) | const [inline] |
Definition at line 113 of file SundanceLagrange.hpp.
References order(), and Sundance::toString().
| void Lagrange::evalOnBrick | ( | const Point & | pt, |
| const MultiIndex & | deriv, | ||
| Array< double > & | result | ||
| ) | const [private] |
evaluate on a tet cell
Definition at line 639 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 371 of file SundanceLagrange.cpp.
References order(), Sundance::MultiIndex::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 517 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 582 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 439 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 943 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 1232 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 179 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] |
Definition at line 302 of file SundanceLagrange.cpp.
Referenced by getReferenceDOFs().
| 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 131 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 72 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 126 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 311 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 1151 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 64 of file SundanceLagrange.cpp.
References Sundance::BrickCell, Sundance::LineCell, Sundance::PointCell, Sundance::QuadCell, Sundance::TetCell, and Sundance::TriangleCell.
bool Sundance::Lagrange::doFInfromationCalculated_ [private] |
Definition at line 177 of file SundanceLagrange.hpp.
Referenced by getConstrainsForHNDoF().
Array<int> Sundance::Lagrange::facetD_ [private] |
For each DoF the dimension of the element which is the DoF on
Definition at line 180 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 183 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 186 of file SundanceLagrange.hpp.
Referenced by getConstrainsForHNDoF().
int Sundance::Lagrange::order_ [private] |
Definition at line 117 of file SundanceLagrange.hpp.
Referenced by evalOnBrick(), evalOnLine(), evalOnquad(), evalOnTet(), evalOnTriangle(), getReferenceDOFs(), nReferenceDOFsWithoutFacets(), order(), and print().