Public Member Functions | |
ORDERED_HANDLE_CTORS (BasisFamily, BasisFamilyBase) | |
XMLObject | toXML () const |
int | order () const |
Return the polynomial order of the basis functions, for use in determining the quadrature rule required to integrate a product of basis functions exactly. The polynomial order will be the smallest integer for which all mixed partial derivatives vanish exactly. | |
int | nReferenceDOFsWithFacets (const CellType &maximalCellType, const CellType &cellType) const |
Return the number of DOFs for this basis on the given reference cell type, including its facets. | |
int | nReferenceDOFsWithoutFacets (const CellType &maximalCellType, const CellType &cellType) const |
Return the number of DOFs for this basis on the given reference cell type, not including those on facets. | |
int | dim () const |
Return the dimension of the members of a vector-valued basis. Return 1 if the basis is scalar-valued. Otherwise, return the spatial dimension. | |
int | tensorOrder () const |
Return the tensor order of the members of a basis. | |
bool | operator== (const BasisFamily &other) const |
bool | isScalarBasis () const |
Inform caller as to whether I am a scalar basis. | |
bool | isHDivBasis () const |
Inform caller as to whether I am an H(div) basis. | |
bool | isHCurlBasis () const |
Inform caller as to whether I am an H(curl) basis. | |
void | refEval (const CellType &cellType, const Array< Point > &pts, const SpatialDerivSpecifier &deriv, Array< Array< Array< double > > > &result, int verbosity) 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) const |
bool | requiresBasisTransformation () const |
Inform caller whether basis requires an element transformation. | |
virtual void | preApplyTransformation (const CellType &maxCellType, const Mesh &mesh, const Array< int > &cellLIDs, const CellJacobianBatch &JVol, RCP< Array< double > > &A) const |
virtual void | postApplyTransformation (const CellType &maxCellType, const Mesh &mesh, const Array< int > &cellLIDs, const CellJacobianBatch &JVol, RCP< Array< double > > &A) const |
virtual void | preApplyTransformationTranspose (const CellType &maxCellType, const Mesh &mesh, const Array< int > &cellLIDs, const CellJacobianBatch &JVol, Array< double > &A) const |
Static Public Member Functions | |
static int | size (const Array< BasisFamily > &b) |
static BasisFamily | getBasis (const RCP< const CommonFuncDataStub > &funcData) |
static RCP< BasisDOFTopologyBase > | getBasisTopology (const RCP< const CommonFuncDataStub > &funcData) |
Related Functions | |
(Note that these are not member functions.) | |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f, const BasisFamily &g) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f, const BasisFamily &g, const BasisFamily &h) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f, const BasisFamily &g, const BasisFamily &h, const BasisFamily &i) |
Array< BasisFamily > | List (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f, const BasisFamily &g, const BasisFamily &h, const BasisFamily &i, const BasisFamily &j) |
Array< std::pair< int, int > > | vectorDimStructure (const Array< BasisFamily > &basis) |
Array< std::pair< int, int > > | vectorDimStructure (const BasisFamily &basis) |
bool | basisRestrictableToBoundary (const BasisFamily &b) |
Definition at line 56 of file SundanceBasisFamily.hpp.
int BasisFamily::dim | ( | ) | const |
Return the dimension of the members of a vector-valued basis. Return 1 if the basis is scalar-valued. Otherwise, return the spatial dimension.
Definition at line 56 of file SundanceBasisFamily.cpp.
References Playa::Handle< BasisFamilyBase >::ptr().
Referenced by Sundance::VectorBasisComponent::dim(), Sundance::CurveEvalMediator::evalDiscreteFuncElement(), Sundance::MaximalQuadratureIntegral::MaximalQuadratureIntegral(), Sundance::QuadratureIntegral::QuadratureIntegral(), Sundance::ReducedIntegral::ReducedIntegral(), Sundance::RefIntegral::RefIntegral(), and size().
BasisFamily BasisFamily::getBasis | ( | const RCP< const CommonFuncDataStub > & | funcData | ) | [static] |
Extract the basis from an expression
Definition at line 85 of file SundanceBasisFamily.cpp.
References Sundance::DiscreteSpace::basis(), Sundance::TestFunctionData::basis(), Sundance::UnknownFunctionData::basis(), and Sundance::DiscreteFunctionData::discreteSpace().
Referenced by getBasisTopology(), Sundance::DOFMapBuilder::isSymmetric(), Sundance::testBasisArray(), and Sundance::unkBasisArray().
RCP< BasisDOFTopologyBase > BasisFamily::getBasisTopology | ( | const RCP< const CommonFuncDataStub > & | funcData | ) | [static] |
Extract the basis from an expression
Definition at line 121 of file SundanceBasisFamily.cpp.
References getBasis(), and Playa::Handle< PointerType >::ptr().
Referenced by Sundance::DOFMapBuilder::testBasisTopologyArray(), and Sundance::DOFMapBuilder::unkBasisTopologyArray().
void BasisFamily::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 | |||
) | const |
Definition at line 130 of file SundanceBasisFamily.cpp.
References Playa::Handle< BasisFamilyBase >::ptr(), SUNDANCE_MSG3, and Playa::Handle< BasisFamilyBase >::verb().
bool Sundance::BasisFamily::isHCurlBasis | ( | ) | const [inline] |
Inform caller as to whether I am an H(curl) basis.
Definition at line 120 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
bool Sundance::BasisFamily::isHDivBasis | ( | ) | const [inline] |
Inform caller as to whether I am an H(div) basis.
Definition at line 117 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
bool Sundance::BasisFamily::isScalarBasis | ( | ) | const [inline] |
Inform caller as to whether I am a scalar basis.
Definition at line 114 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
int BasisFamily::nReferenceDOFsWithFacets | ( | const CellType & | maximalCellType, | |
const CellType & | cellType | |||
) | const |
Return the number of DOFs for this basis on the given reference cell type, including its facets.
Definition at line 73 of file SundanceBasisFamily.cpp.
References Playa::Handle< BasisFamilyBase >::ptr().
Referenced by Sundance::ElementIntegral::ElementIntegral(), and Sundance::CurveEvalMediator::evalDiscreteFuncElement().
int BasisFamily::nReferenceDOFsWithoutFacets | ( | const CellType & | maximalCellType, | |
const CellType & | cellType | |||
) | const |
Return the number of DOFs for this basis on the given reference cell type, not including those on facets.
Definition at line 79 of file SundanceBasisFamily.cpp.
References Playa::Handle< BasisFamilyBase >::ptr().
bool BasisFamily::operator== | ( | const BasisFamily & | other | ) | const |
Definition at line 61 of file SundanceBasisFamily.cpp.
int BasisFamily::order | ( | ) | const |
Return the polynomial order of the basis functions, for use in determining the quadrature rule required to integrate a product of basis functions exactly. The polynomial order will be the smallest integer for which all mixed partial derivatives vanish exactly.
Note: in H(div) and H(curl) spaces the order of accuracy is not always an integer, and the relationship between the order of accuracy and the return value of the order() method is not necessarily simple (for instance, it can depend on things such as the convexity of the boundary). Thus it is better to think of this method as specifying the required order of quadrature, and not the order of accuracy of approximation nor the order to which the space is complete.
Definition at line 51 of file SundanceBasisFamily.cpp.
References Playa::Handle< BasisFamilyBase >::ptr().
Referenced by Sundance::VectorBasisComponent::order(), Sundance::ReducedIntegral::ReducedIntegral(), and Sundance::RefIntegral::RefIntegral().
Sundance::BasisFamily::ORDERED_HANDLE_CTORS | ( | BasisFamily | , | |
BasisFamilyBase | ||||
) |
virtual void Sundance::BasisFamily::postApplyTransformation | ( | const CellType & | maxCellType, | |
const Mesh & | mesh, | |||
const Array< int > & | cellLIDs, | |||
const CellJacobianBatch & | JVol, | |||
RCP< Array< double > > & | A | |||
) | const [inline, virtual] |
Definition at line 174 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
virtual void Sundance::BasisFamily::preApplyTransformation | ( | const CellType & | maxCellType, | |
const Mesh & | mesh, | |||
const Array< int > & | cellLIDs, | |||
const CellJacobianBatch & | JVol, | |||
RCP< Array< double > > & | A | |||
) | const [inline, virtual] |
Definition at line 160 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
virtual void Sundance::BasisFamily::preApplyTransformationTranspose | ( | const CellType & | maxCellType, | |
const Mesh & | mesh, | |||
const Array< int > & | cellLIDs, | |||
const CellJacobianBatch & | JVol, | |||
Array< double > & | A | |||
) | const [inline, virtual] |
Definition at line 187 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
void BasisFamily::refEval | ( | const CellType & | cellType, | |
const Array< Point > & | pts, | |||
const SpatialDerivSpecifier & | deriv, | |||
Array< Array< Array< double > > > & | result, | |||
int | verbosity | |||
) | const |
Definition at line 159 of file SundanceBasisFamily.cpp.
References Playa::Out::os(), Playa::Handle< BasisFamilyBase >::ptr(), SUNDANCE_MSG3, Sundance::toString(), and Sundance::SpatialDerivSpecifier::toString().
Referenced by Sundance::CurveEvalMediator::evalDiscreteFuncElement(), Sundance::MaximalQuadratureIntegral::MaximalQuadratureIntegral(), Sundance::QuadratureIntegral::QuadratureIntegral(), Sundance::ReducedIntegral::ReducedIntegral(), Sundance::RefIntegral::RefIntegral(), Sundance::CurveQuadratureIntegral::updateRefCellIntegralOneForm(), and Sundance::CurveQuadratureIntegral::updateRefCellIntegralTwoForm().
bool Sundance::BasisFamily::requiresBasisTransformation | ( | ) | const [inline] |
Inform caller whether basis requires an element transformation.
Definition at line 156 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
int BasisFamily::size | ( | const Array< BasisFamily > & | b | ) | [static] |
Sum up the dim() values for array of bases.
Definition at line 66 of file SundanceBasisFamily.cpp.
References dim().
int Sundance::BasisFamily::tensorOrder | ( | ) | const [inline] |
Return the tensor order of the members of a basis.
Definition at line 106 of file SundanceBasisFamily.hpp.
References Playa::Handle< BasisFamilyBase >::ptr().
XMLObject Sundance::BasisFamily::toXML | ( | ) | const |
write to XML
bool basisRestrictableToBoundary | ( | const BasisFamily & | b | ) | [related] |
Indicate whether members of a basis have support on a boundary only if their associated dofs live on the boundary. This will return true for Lagrange, false for P1NC, RT, Nedelec, and most other bases.
This is used to simplify boundary integrals.
Definition at line 229 of file SundanceBasisFamily.cpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d, | |||
const BasisFamily & | e, | |||
const BasisFamily & | f, | |||
const BasisFamily & | g, | |||
const BasisFamily & | h, | |||
const BasisFamily & | i, | |||
const BasisFamily & | j | |||
) | [related] |
Definition at line 268 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d, | |||
const BasisFamily & | e, | |||
const BasisFamily & | f, | |||
const BasisFamily & | g, | |||
const BasisFamily & | h, | |||
const BasisFamily & | i | |||
) | [related] |
Definition at line 258 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d, | |||
const BasisFamily & | e, | |||
const BasisFamily & | f, | |||
const BasisFamily & | g, | |||
const BasisFamily & | h | |||
) | [related] |
Definition at line 249 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d, | |||
const BasisFamily & | e, | |||
const BasisFamily & | f, | |||
const BasisFamily & | g | |||
) | [related] |
Definition at line 240 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d, | |||
const BasisFamily & | e, | |||
const BasisFamily & | f | |||
) | [related] |
Definition at line 232 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d, | |||
const BasisFamily & | e | |||
) | [related] |
Definition at line 223 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c, | |||
const BasisFamily & | d | |||
) | [related] |
Definition at line 216 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b, | |||
const BasisFamily & | c | |||
) | [related] |
Definition at line 209 of file SundanceBasisFamily.hpp.
Array< BasisFamily > List | ( | const BasisFamily & | a, | |
const BasisFamily & | b | |||
) | [related] |
Definition at line 203 of file SundanceBasisFamily.hpp.
Array< std::pair< int, int > > vectorDimStructure | ( | const BasisFamily & | basis | ) | [related] |
Definition at line 224 of file SundanceBasisFamily.cpp.
Array< std::pair< int, int > > vectorDimStructure | ( | const Array< BasisFamily > & | basis | ) | [related] |
Definition at line 213 of file SundanceBasisFamily.cpp.