
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_ |
Definition at line 45 of file SundanceVectorBasisComponent.hpp.
| VectorBasisComponent::VectorBasisComponent | ( | const BasisFamily & | master, | |
| int | direction | |||
| ) |
Definition at line 38 of file SundanceVectorBasisComponent.cpp.
References master_, and Playa::Handle< PointerType >::ptr().
| 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] |
| 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.
| 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. |
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 Playa::Handle< PointerType >::ptr().
| bool Sundance::VectorBasisComponent::isContravariantBasis | ( | ) | const [inline] |
| bool Sundance::VectorBasisComponent::isCovariantBasis | ( | ) | const [inline] |
| bool VectorBasisComponent::lessThan | ( | const BasisFamilyBase * | other | ) | const |
| 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.
| 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. |
Reimplemented from Sundance::BasisDOFTopologyBase.
Definition at line 96 of file SundanceVectorBasisComponent.hpp.
References master_, and Playa::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.
| 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. |
Implements Sundance::BasisDOFTopologyBase.
Definition at line 106 of file SundanceVectorBasisComponent.hpp.
References master_, and Playa::Handle< PointerType >::ptr().
| int Sundance::VectorBasisComponent::order | ( | ) | const [inline, virtual] |
Implements Sundance::BasisFamilyBase.
Definition at line 55 of file SundanceVectorBasisComponent.hpp.
References master_, and Sundance::BasisFamily::order().
| void Sundance::VectorBasisComponent::refEval | ( | const CellType & | maximalCellType, | |
| const CellType & | cellType, | |||
| const Array< Point > & | pts, | |||
| const MultiIndex & | deriv, | |||
| Array< Array< Array< double > > > & | result | |||
| ) | const [inline] |
Definition at line 116 of file SundanceVectorBasisComponent.hpp.
References master_, and Playa::Handle< PointerType >::ptr().
| 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.
| 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 Playa::Handle< PointerType >::ptr().
int Sundance::VectorBasisComponent::direction_ [private] |
Definition at line 131 of file SundanceVectorBasisComponent.hpp.
Referenced by direction(), and lessThan().
Definition at line 130 of file SundanceVectorBasisComponent.hpp.
Referenced by dim(), getReferenceDOFs(), isContravariantBasis(), isCovariantBasis(), lessThan(), nReferenceDOFsWithFacets(), nReferenceDOFsWithoutFacets(), order(), refEval(), supportsCellTypePair(), and VectorBasisComponent().