Sundance::BasisFamily Class Reference

Inheritance diagram for Sundance::BasisFamily:

Sundance::OrderedHandle< BasisFamilyBase > Playa::Handle< BasisFamilyBase >

List of all members.

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< BasisDOFTopologyBasegetBasisTopology (const RCP< const CommonFuncDataStub > &funcData)

Related Functions

(Note that these are not member functions.)

Array< BasisFamilyList (const BasisFamily &a, const BasisFamily &b)
Array< BasisFamilyList (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c)
Array< BasisFamilyList (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d)
Array< BasisFamilyList (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e)
Array< BasisFamilyList (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f)
Array< BasisFamilyList (const BasisFamily &a, const BasisFamily &b, const BasisFamily &c, const BasisFamily &d, const BasisFamily &e, const BasisFamily &f, const BasisFamily &g)
Array< BasisFamilyList (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< BasisFamilyList (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< BasisFamilyList (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)


Detailed Description

BasisFamily is the user-level handle class for specifying the basis with which a test, unknown, or discrete function is represented. Basis functions can be vector-valued, as is the case with, for example, the Nedelec basis in electromagnetics; the dim() method returns the spatial dimension of the basis functions. Scalar-valued bases naturally have dim()=1.

Definition at line 56 of file SundanceBasisFamily.hpp.


Member Function Documentation

int BasisFamily::dim (  )  const

BasisFamily BasisFamily::getBasis ( const RCP< const CommonFuncDataStub > &  funcData  )  [static]

RCP< BasisDOFTopologyBase > BasisFamily::getBasisTopology ( const RCP< const CommonFuncDataStub > &  funcData  )  [static]

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

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

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


Friends And Related Function Documentation

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.

Site Contact