Public Member Functions | Private Attributes
Sundance::VectorBasisComponent Class Reference

This class is for the representation of a single component of a vector-valued basis family. More...

Inheritance diagram for Sundance::VectorBasisComponent:
Sundance::BasisFamilyBase Sundance::Handleable< BasisFamilyBase > Sundance::Printable Sundance::ObjectWithClassVerbosity< BasisFamilyBase > Sundance::BasisDOFTopologyBase Sundance::TensorBasisBase Sundance::BasisReferenceEvaluationBase Sundance::DefaultObjectWithVerbosity Sundance::ObjectWithVerbosityBase

List of all members.

Public Member Functions

 VectorBasisComponent (const BasisFamily &master, int direction)
bool lessThan (const BasisFamilyBase *other) const
int order () const
int dim () const
 Return the dimension of the members of a vector-valued basis.
bool isCovariantBasis () const
bool isContravariantBasis () const
int direction () const
bool supportsCellTypePair (const CellType &maximalCellType, const CellType &cellType) const
 Inform caller as to whether a given combination of cell types is supported.
void getReferenceDOFs (const CellType &maximalCellType, const CellType &cellType, Array< Array< Array< int > > > &dofs) const
 Get a description of the DOF numbering and distribution scheme for this basis function on the given cell type.
int nReferenceDOFsWithFacets (const CellType &maximalCellType, const CellType &cellType) const
 Return the total number of degrees of freedom associated with this basis on a specified cell type.
int nReferenceDOFsWithoutFacets (const CellType &maximalCellType, const CellType &cellType) const
 Return the total number of degrees of freedom associated with this basis on a specified cell type.
void refEval (const CellType &maximalCellType, const CellType &cellType, const Array< Point > &pts, const MultiIndex &deriv, Array< Array< Array< double > > > &result) const

Private Attributes

BasisFamily master_
int direction_

Detailed Description

This class is for the representation of a single component of a vector-valued basis family.

Definition at line 45 of file SundanceVectorBasisComponent.hpp.


Constructor & Destructor Documentation

VectorBasisComponent::VectorBasisComponent ( const BasisFamily master,
int  direction 
)

Member Function Documentation

int Sundance::VectorBasisComponent::dim ( ) const [inline, virtual]

Return the dimension of the members of a vector-valued basis.

Return 1 if the basis is scalar-valued.

Implements Sundance::TensorBasisBase.

Definition at line 58 of file SundanceVectorBasisComponent.hpp.

References Sundance::BasisFamily::dim(), and master_.

int Sundance::VectorBasisComponent::direction ( ) const [inline]

Definition at line 70 of file SundanceVectorBasisComponent.hpp.

References direction_.

void Sundance::VectorBasisComponent::getReferenceDOFs ( const CellType maximalCellType,
const CellType cellType,
Array< Array< Array< int > > > &  dofs 
) const [inline, virtual]

Get a description of the DOF numbering and distribution scheme for this basis function on the given cell type.

Parameters:
cellType[in] Specification of the cell topology
dofs[out] Array of dof numbering information, to be filled in during the call. On output, dofs.size()==dimension(cellType). See description of dofs below for more details.

The DOF description is returned in the nested array dofs, and is to be interpreted as follows: The outer dimension of the description array dofs.size() is cellDim, where cellDim is the spatial dimension of the cell. The DOFs attached to facets are stored in array entries dofs[s] where s=0...cellDim-1. Those associated with the cell body are stored in dofs[cellDim-1]. For cell dofs attached to facets, the dof facetDofIndex associated with the facet facetIndex of facet dimension facetDim is given by:

   dofs[facetDim][facetIndex][faceDofIndex] 

For dofs attached to the cell body, the local DOF within the entire cell is given by dof is given by

   dofs[cellDim][0][dofIndex]

More specifically:

  • dof[facetDim].size() gives the number of facets of the facet dimension facetDim, where 0 <= facetDim <= cellDim

  • dof[facetDim][facetIndex].size() gives the number of degrees of freedom (DOFs) on the facet facetIndex with facet dimension facetDim, where 0 <= facetDim <= cellDim and 0 <= facetIndex < numFacets(cellType,facetDim).

For example, the Lagrange basis functions of order 0 through 3 on 2D triangles would have the following dof arrays:


   Order 0:

   { {}, {}, {{0}} }
   
   Order 1:

   { { {0}, {1}, {2} }, {}, {} }
    
   Order 2:

   { { {0}, {1}, {2} }, { {3}, {4}, {5} }, {} }
    
   Order 3:

   { { {0}, {1}, {2} }, { {3,4}, {5,6}, {7,8} }, {9} }

   

Above, we have used the ordering given in Hughes' textbook.

Implements Sundance::BasisDOFTopologyBase.

Definition at line 84 of file SundanceVectorBasisComponent.hpp.

References master_, and Sundance::Handle< PointerType >::ptr().

bool Sundance::VectorBasisComponent::isContravariantBasis ( ) const [inline]

Definition at line 66 of file SundanceVectorBasisComponent.hpp.

References master_.

bool Sundance::VectorBasisComponent::isCovariantBasis ( ) const [inline]

Definition at line 62 of file SundanceVectorBasisComponent.hpp.

References master_.

bool VectorBasisComponent::lessThan ( const BasisFamilyBase other) const

Definition at line 44 of file SundanceCellDiameterExpr.cpp.

int Sundance::VectorBasisComponent::nReferenceDOFsWithFacets ( const CellType maximalCellType,
const CellType cellType 
) const [inline, virtual]

Return the total number of degrees of freedom associated with this basis on a specified cell type.

Note: the count returned by this function includes DOFs owned by facets of the specified reference cell.

Parameters:
cellType[in] type of cell for which we want DOF information.
maximalCellType[in] maximal-dimension cell type to which the cell is connected. For example, a triangle in 3D could be connected to a prism or to a tetrahedron.
Returns:
Number of DOFs associated with the cell type and its facets.

Reimplemented from Sundance::BasisDOFTopologyBase.

Definition at line 96 of file SundanceVectorBasisComponent.hpp.

References master_, and Sundance::Handle< PointerType >::ptr().

int Sundance::VectorBasisComponent::nReferenceDOFsWithoutFacets ( const CellType maximalCellType,
const CellType cellType 
) const [inline, virtual]

Return the total number of degrees of freedom associated with this basis on a specified cell type.

Note: the count returned by this function DOES NOT include DOFs owned by facets of the specified reference cell.

Parameters:
cellType[in] type of cell for which we want DOF information.
maximalCellType[in] maximal-dimension cell type to which the cell is connected. For example, a triangle in 3D could be connected to a prism or to a tetrahedron.
Returns:
Number of DOFs associated with the cell type.

Implements Sundance::BasisDOFTopologyBase.

Definition at line 106 of file SundanceVectorBasisComponent.hpp.

References master_, and Sundance::Handle< PointerType >::ptr().

int Sundance::VectorBasisComponent::order ( ) const [inline, virtual]
void Sundance::VectorBasisComponent::refEval ( const CellType maximalCellType,
const CellType cellType,
const Array< Point > &  pts,
const MultiIndex deriv,
Array< Array< Array< double > > > &  result 
) const [inline]
bool Sundance::VectorBasisComponent::supportsCellTypePair ( const CellType maximalCellType,
const CellType cellType 
) const [inline, virtual]

Inform caller as to whether a given combination of cell types is supported.

Parameters:
maximalCellType[in] maximal-dimension cell type to which the cell is connected. For example, a triangle in 3D could be connected to a prism or to a tetrahedron.
cellType[in] type of cell for which we want DOF information.

Implements Sundance::BasisDOFTopologyBase.

Definition at line 73 of file SundanceVectorBasisComponent.hpp.

References master_, and Sundance::Handle< PointerType >::ptr().


Member Data Documentation

Definition at line 131 of file SundanceVectorBasisComponent.hpp.

Referenced by direction().

Site Contact