This class is for the representation of a single component of a vector-valued basis family. More...
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_ |
This class is for the representation of a single component of a vector-valued basis family.
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 Sundance::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] |
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.
| 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.
| 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 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.
| 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 Sundance::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 Sundance::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 Sundance::Handle< PointerType >::ptr().
int Sundance::VectorBasisComponent::direction_ [private] |
Definition at line 131 of file SundanceVectorBasisComponent.hpp.
Referenced by direction().
Definition at line 130 of file SundanceVectorBasisComponent.hpp.
Referenced by dim(), getReferenceDOFs(), isContravariantBasis(), isCovariantBasis(), nReferenceDOFsWithFacets(), nReferenceDOFsWithoutFacets(), order(), refEval(), supportsCellTypePair(), and VectorBasisComponent().