Intrepid
|
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Wedge cell. More...
#include <Intrepid_HGRAD_WEDGE_C2_FEM.hpp>
Public Member Functions | |
Basis_HGRAD_WEDGE_C2_FEM () | |
Constructor. | |
void | getValues (ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const |
FEM basis evaluation on a reference Wedge cell. More... | |
void | getValues (ArrayScalar &outputValues, const ArrayScalar &inputPoints, const ArrayScalar &cellVertices, const EOperator operatorType=OPERATOR_VALUE) const |
FVD basis evaluation: invocation of this method throws an exception. | |
Public Member Functions inherited from Intrepid::Basis< Scalar, ArrayScalar > | |
virtual | ~Basis () |
Destructor. | |
virtual int | getCardinality () const |
Returns cardinality of the basis. More... | |
virtual int | getDegree () const |
Returns the degree of the basis. More... | |
virtual const shards::CellTopology | getBaseCellTopology () const |
Returns the base cell topology for which the basis is defined. See Shards documentation http://trilinos.sandia.gov/packages/shards for definition of base cell topology. More... | |
virtual EBasis | getBasisType () const |
Returns the basis type. More... | |
virtual ECoordinates | getCoordinateSystem () const |
Returns the type of coordinate system for which the basis is defined. More... | |
virtual int | getDofOrdinal (const int subcDim, const int subcOrd, const int subcDofOrd) |
DoF tag to ordinal lookup. More... | |
virtual const std::vector < std::vector< std::vector < int > > > & | getDofOrdinalData () |
DoF tag to ordinal data structure. | |
virtual const std::vector< int > & | getDofTag (const int dofOrd) |
DoF ordinal to DoF tag lookup. More... | |
virtual const std::vector < std::vector< int > > & | getAllDofTags () |
Retrieves all DoF tags. More... | |
Private Member Functions | |
void | initializeTags () |
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays. | |
Additional Inherited Members | |
Protected Attributes inherited from Intrepid::Basis< Scalar, ArrayScalar > | |
int | basisCardinality_ |
Cardinality of the basis, i.e., the number of basis functions/degrees-of-freedom. | |
int | basisDegree_ |
Degree of the largest complete polynomial space that can be represented by the basis. | |
shards::CellTopology | basisCellTopology_ |
Base topology of the cells for which the basis is defined. See the Shards package http://trilinos.sandia.gov/packages/shards for definition of base cell topology. | |
EBasis | basisType_ |
Type of the basis. | |
ECoordinates | basisCoordinates_ |
The coordinate system for which the basis is defined. | |
bool | basisTagsAreSet_ |
"true" if tagToOrdinal_ and ordinalToTag_ have been initialized | |
std::vector< std::vector< int > > | ordinalToTag_ |
DoF ordinal to tag lookup table. More... | |
std::vector< std::vector < std::vector< int > > > | tagToOrdinal_ |
DoF tag to ordinal lookup table. More... | |
Implementation of the default H(grad)-compatible FEM basis of degree 2 on Wedge cell.
Implements Lagrangian basis of degree 2 on the reference Wedge cell. The basis has cardinality 18 and spans a COMPLETE bi-quadratic polynomial space. Basis functions are dual to a unisolvent set of degrees-of-freedom (DoF) defined and enumerated as follows:
================================================================================================= | | degree-of-freedom-tag table | | | DoF |----------------------------------------------------------| DoF definition | | ordinal | subc dim | subc ordinal | subc DoF ord |subc num DoF | | |=========|==============|==============|==============|=============|===========================| | 0 | 0 | 0 | 0 | 1 | L_0(u) = u( 0, 0,-1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 1 | 0 | 1 | 0 | 1 | L_1(u) = u( 1, 0,-1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 2 | 0 | 2 | 0 | 1 | L_2(u) = u( 0, 1,-1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 3 | 0 | 3 | 0 | 1 | L_3(u) = u( 0, 0, 1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 4 | 0 | 4 | 0 | 1 | L_4(u) = u( 1, 0, 1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 5 | 0 | 5 | 0 | 1 | L_5(u) = u( 0, 1, 1) | |---------|--------------|--------------|--------------|-------------|---------------------------| |---------|--------------|--------------|--------------|-------------|---------------------------| | 6 | 1 | 0 | 0 | 1 | L_6(u) = u(1/2, 0,-1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 7 | 1 | 1 | 0 | 1 | L_7(u) = u(1/2,1/2,-1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 8 | 1 | 2 | 0 | 1 | L_8(u) = u( 0,1/2,-1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 9 | 1 | 6 | 0 | 1 | L_9(u) = u( 0, 0, 0) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 10 | 1 | 7 | 0 | 1 | L_10(u)= u( 1, 0, 0) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 11 | 1 | 8 | 0 | 1 | L_11(u)= u( 0, 1, 0) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 12 | 1 | 3 | 0 | 1 | L_12(u)= u(1/2, 0, 1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 13 | 1 | 4 | 0 | 1 | L_13(u)= u(1/2,1/2, 1) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 14 | 1 | 5 | 0 | 1 | L_14(u)= u( 0,1/2, 1) | |---------|--------------|--------------|--------------|-------------|---------------------------| |---------|--------------|--------------|--------------|-------------|---------------------------| | 15 | 2 | 0 | 0 | 1 | L_15(u)= u(1/2, 0, 0) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 16 | 2 | 1 | 0 | 1 | L_16(u)= u(1/2,1/2, 0) | |---------|--------------|--------------|--------------|-------------|---------------------------| | 17 | 2 | 2 | 0 | 1 | L_17(u)= u( 0,1/2, 0) | |=========|==============|==============|==============|=============|===========================| | MAX | maxScDim=2 | maxScOrd=8 | maxDfOrd=0 | - | | |=========|==============|==============|==============|=============|===========================|
\remark Ordering of DoFs follows the node order in Wedge<18> topology. Note that node order in this topology does not follow the natural oder of k-subcells where the nodes are located, except for nodes 0 to 5 which coincide with the vertices of the base Wedge<6> topology. As a result, L_0 to L_5 are associated with nodes 0 to 5, but L_6 to L_14 are not associated with edges 0 to 9 in that order. The last three nodes are located on 2-subcells (faces) and follow their order. Thus, L_15, L_16 and L17 are associated with faces 0, 1 and 2 in that order.
Definition at line 119 of file Intrepid_HGRAD_WEDGE_C2_FEM.hpp.
|
virtual |
FEM basis evaluation on a reference Wedge cell.
Returns values of <var>operatorType</var> acting on FEM basis functions for a set of points in the <strong>reference Wedge</strong> cell. For rank and dimensions of I/O array arguments see Section \ref basis_md_array_sec .
outputValues | [out] - rank-2 or 3 array with the computed basis values |
inputPoints | [in] - rank-2 array with dimensions (P,D) containing reference points |
operatorType | [in] - operator applied to basis functions |
Implements Intrepid::Basis< Scalar, ArrayScalar >.
Definition at line 109 of file Intrepid_HGRAD_WEDGE_C2_FEMDef.hpp.