Intrepid2
|
Implementation of the locally H(grad)-compatible FEM basis of variable order on the [-1,1] reference line cell, using Jacobi polynomials. More...
#include <Intrepid2_HGRAD_LINE_Cn_FEM_JACOBI.hpp>
Public Types | |
typedef double | value_type |
typedef Basis< ExecSpaceType, outputValueType, pointValueType > ::ordinal_type_array_1d_host | ordinal_type_array_1d_host |
typedef Basis< ExecSpaceType, outputValueType, pointValueType > ::ordinal_type_array_2d_host | ordinal_type_array_2d_host |
typedef Basis< ExecSpaceType, outputValueType, pointValueType > ::ordinal_type_array_3d_host | ordinal_type_array_3d_host |
typedef Basis< ExecSpaceType, outputValueType, pointValueType > ::outputViewType | outputViewType |
typedef Basis< ExecSpaceType, outputValueType, pointValueType > ::pointViewType | pointViewType |
Public Types inherited from Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType > | |
typedef Kokkos::View < ordinal_type, ExecSpaceType > | ordinal_view_type |
View type for ordinal. | |
typedef Kokkos::View< EBasis, ExecSpaceType > | ebasis_view_type |
View for basis type. | |
typedef Kokkos::View < ECoordinates, ExecSpaceType > | ecoordinates_view_type |
View for coordinate system type. | |
typedef Kokkos::View < ordinal_type *,typename ExecSpaceType::array_layout, Kokkos::HostSpace > | ordinal_type_array_1d_host |
View type for 1d host array. | |
typedef Kokkos::View < ordinal_type **,typename ExecSpaceType::array_layout, Kokkos::HostSpace > | ordinal_type_array_2d_host |
View type for 2d host array. | |
typedef Kokkos::View < ordinal_type ***, typename ExecSpaceType::array_layout, Kokkos::HostSpace > | ordinal_type_array_3d_host |
View type for 3d host array. | |
typedef Kokkos::View < ordinal_type *, Kokkos::LayoutStride, Kokkos::HostSpace > | ordinal_type_array_stride_1d_host |
View type for 1d host array. | |
typedef Kokkos::View < ordinal_type *,ExecSpaceType > | ordinal_type_array_1d |
View type for 1d device array. | |
typedef Kokkos::View < ordinal_type **,ExecSpaceType > | ordinal_type_array_2d |
View type for 2d device array. | |
typedef Kokkos::View < ordinal_type ***, ExecSpaceType > | ordinal_type_array_3d |
View type for 3d device array. | |
typedef Kokkos::View < ordinal_type *, Kokkos::LayoutStride, ExecSpaceType > | ordinal_type_array_stride_1d |
View type for 1d device array. | |
typedef ScalarTraits < pointValueType > ::scalar_type | scalarType |
Scalar type for point values. | |
typedef Kokkos::DynRankView < outputValueType, Kokkos::LayoutStride, ExecSpaceType > | outputViewType |
View type for basis value output. | |
typedef Kokkos::DynRankView < pointValueType, Kokkos::LayoutStride, ExecSpaceType > | pointViewType |
View type for input points. | |
typedef Kokkos::DynRankView < scalarType, Kokkos::LayoutStride, ExecSpaceType > | scalarViewType |
View type for scalars. | |
Public Member Functions | |
Basis_HGRAD_LINE_Cn_FEM_JACOBI (const ordinal_type order, const double alpha=0, const double beta=0) | |
Constructor. | |
virtual void | getValues (outputViewType outputValues, const pointViewType inputPoints, const EOperator operatorType=OPERATOR_VALUE) const |
Evaluation of a FEM basis on a reference cell. More... | |
Public Member Functions inherited from Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType > | |
outputValueType | getDummyOutputValue () |
Dummy array to receive input arguments. | |
pointValueType | getDummyPointValue () |
Dummy array to receive input arguments. | |
virtual void | getValues (outputViewType, const pointViewType, const pointViewType, const EOperator=OPERATOR_VALUE) const |
Evaluation of an FVD basis evaluation on a physical cell. More... | |
virtual void | getDofCoords (scalarViewType) const |
Returns spatial locations (coordinates) of degrees of freedom on the reference cell. | |
virtual void | getDofCoeffs (scalarViewType) const |
Coefficients for computing degrees of freedom for Lagrangian basis If P is an element of the space spanned by the basis, := P(dofCoords(i)) dofCoeffs(i) are the nodal coefficients associated to basis function i. More... | |
virtual const char * | getName () const |
Returns basis name. More... | |
virtual bool | requireOrientation () const |
True if orientation is required. | |
ordinal_type | getCardinality () const |
Returns cardinality of the basis. More... | |
ordinal_type | getDegree () const |
Returns the degree of the basis. More... | |
shards::CellTopology | getBaseCellTopology () const |
Returns the base cell topology for which the basis is defined. See Shards documentation https://trilinos.org/packages/shards for definition of base cell topology. More... | |
EBasis | getBasisType () const |
Returns the basis type. More... | |
ECoordinates | getCoordinateSystem () const |
Returns the type of coordinate system for which the basis is defined. More... | |
ordinal_type | getDofCount (const ordinal_type subcDim, const ordinal_type subcOrd) const |
DoF count for specified subcell. More... | |
ordinal_type | getDofOrdinal (const ordinal_type subcDim, const ordinal_type subcOrd, const ordinal_type subcDofOrd) const |
DoF tag to ordinal lookup. More... | |
const ordinal_type_array_3d_host | getAllDofOrdinal () const |
DoF tag to ordinal data structure. | |
const ordinal_type_array_stride_1d_host | getDofTag (const ordinal_type dofOrd) const |
DoF ordinal to DoF tag lookup. More... | |
const ordinal_type_array_2d_host | getAllDofTags () const |
Retrieves all DoF tags. More... | |
Private Attributes | |
double | alpha_ |
double | beta_ |
Additional Inherited Members | |
Protected Member Functions inherited from Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType > | |
template<typename OrdinalTypeView3D , typename OrdinalTypeView2D , typename OrdinalTypeView1D > | |
void | setOrdinalTagData (OrdinalTypeView3D &tagToOrdinal, OrdinalTypeView2D &ordinalToTag, const OrdinalTypeView1D tags, const ordinal_type basisCard, const ordinal_type tagSize, const ordinal_type posScDim, const ordinal_type posScOrd, const ordinal_type posDfOrd) |
Fills ordinalToTag_ and tagToOrdinal_ by basis-specific tag data. More... | |
Protected Attributes inherited from Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType > | |
ordinal_type | basisCardinality_ |
Cardinality of the basis, i.e., the number of basis functions/degrees-of-freedom. | |
ordinal_type | 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 for definition of base cell topology. | |
EBasis | basisType_ |
Type of the basis. | |
ECoordinates | basisCoordinates_ |
The coordinate system for which the basis is defined. | |
ordinal_type_array_2d_host | ordinalToTag_ |
"true" if tagToOrdinal_ and ordinalToTag_ have been initialized More... | |
ordinal_type_array_3d_host | tagToOrdinal_ |
DoF tag to ordinal lookup table. More... | |
Kokkos::DynRankView < scalarType, ExecSpaceType > | dofCoords_ |
Coordinates of degrees-of-freedom for basis functions defined in physical space. | |
Kokkos::DynRankView < scalarType, ExecSpaceType > | dofCoeffs_ |
Coefficients for computing degrees of freedom for Lagrangian basis If P is an element of the space spanned by the basis, := P(dofCoords_(i)) dofCoeffs_(i) are the nodal coefficients associated to basis functions i. More... | |
Implementation of the locally H(grad)-compatible FEM basis of variable order on the [-1,1] reference line cell, using Jacobi polynomials.
Implements Jacobi basis of variable order on the reference [-1,1] line cell. Jacobi polynomials depend on three parameters , , and and are defined via the so-called Gamma function by
The basis has cardinality and spans a COMPLETE linear polynomial space. Basis functions are dual to a unisolvent set of degrees of freedom (DoF) enumerated as follows:
Basis order | DoF tag table | DoF definition | |||
---|---|---|---|---|---|
subc dim | subc ordinal | subc DoF tag | subc num DoFs | ||
0 | 1 | 0 | 0 | 1 | |
1 | 1 | 0 | 0-1 | 2 | |
2 | 1 | 0 | 0-2 | 3 | |
3 | 1 | 0 | 0-3 | 4 | |
... | 1 | 0 | ... | ... | ... |
n | 1 | 0 | 0-n | n+1 |
For example, for Legendre polynomials ( ), the first 11 bases are given by
Basis order | DoF tag table | DoF definition | |||
---|---|---|---|---|---|
subc dim | subc ordinal | subc DoF tag | subc num DoFs | ||
0 | 1 | 0 | 0 | 1 | |
1 | 1 | 0 | 0-1 | 2 | and: |
2 | 1 | 0 | 0-2 | 3 | and: |
3 | 1 | 0 | 0-3 | 4 | and: |
4 | 1 | 0 | 0-4 | 5 | and: |
5 | 1 | 0 | 0-5 | 6 | and: |
6 | 1 | 0 | 0-6 | 7 | and: |
7 | 1 | 0 | 0-7 | 8 | and: |
8 | 1 | 0 | 0-8 | 9 | and: |
9 | 1 | 0 | 0-9 | 10 | and: |
10 | 1 | 0 | 0-10 | 11 | and: |
Definition at line 231 of file Intrepid2_HGRAD_LINE_Cn_FEM_JACOBI.hpp.
|
inlinevirtual |
Evaluation of a FEM basis on a reference cell.
Returns values of operatorType acting on FEM basis functions for a set of points in the reference cell for which the basis is defined.
outputValues | [out] - variable rank array with the basis values |
inputPoints | [in] - rank-2 array (P,D) with the evaluation points |
operatorType | [in] - the operator acting on the basis functions |
Reimplemented from Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType >.
Definition at line 252 of file Intrepid2_HGRAD_LINE_Cn_FEM_JACOBI.hpp.
References Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType >::getBaseCellTopology(), Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType >::getCardinality(), and Intrepid2::Basis< ExecSpaceType, outputValueType, pointValueType >::getDegree().