Intrepid::Basis_HGRAD_LINE_Cn_FEM_JACOBI< Scalar, ArrayScalar > Class Template Reference

Implementation of the locally H(grad)-compatible FEM basis of variable order on the [-1,1] reference line cell, using Jacobi polynomials. More...

#include <Intrepid_HGRAD_LINE_Cn_FEM_JACOBI.hpp>

Inheritance diagram for Intrepid::Basis_HGRAD_LINE_Cn_FEM_JACOBI< Scalar, ArrayScalar >:
Intrepid::Basis< Scalar, ArrayScalar >

List of all members.

Public Member Functions

 Basis_HGRAD_LINE_Cn_FEM_JACOBI (int order, Scalar alpha=0, Scalar beta=0)
 Constructor.
void getValues (ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const
 Evaluation of a FEM basis on a reference Line cell.
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.
void setBasisParameters (int n, Scalar alpha=0, Scalar beta=0)
 Sets private data basisDegree_, basisCardinality_, jacobiAlpha_, and jacobiBeta_, to n, n+1, alpha, and beta, respectively.

Private Member Functions

void initializeTags ()
 Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays.

Private Attributes

Scalar jacobiAlpha_
Scalar jacobiBeta_

Detailed Description

template<class Scalar, class ArrayScalar>
class Intrepid::Basis_HGRAD_LINE_Cn_FEM_JACOBI< Scalar, ArrayScalar >

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 $n$ on the reference [-1,1] line cell. Jacobi polynomials depend on three parameters $ \alpha $, $ \beta $, and $ n $ and are defined via the so-called Gamma function by

\[ P_n^{(\alpha,\beta)} (z) = \frac{\Gamma (\alpha+n+1)}{n!\Gamma (\alpha+\beta+n+1)} \sum_{m=0}^n {n\choose m} \frac{\Gamma (\alpha + \beta + n + m + 1)}{\Gamma (\alpha + m + 1)} \left(\frac{z-1}{2}\right)^m \]

The basis has cardinality $n+1$ 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 $ P_0^{(\alpha,\beta)} $
1 1 0 0-1 2 $ P_0^{(\alpha,\beta)}, P_1^{(\alpha,\beta)} $
2 1 0 0-2 3 $ P_0^{(\alpha,\beta)}, P_1^{(\alpha,\beta)}, P_2^{(\alpha,\beta)} $
3 1 0 0-3 4 $ P_0^{(\alpha,\beta)}, P_1^{(\alpha,\beta)}, ..., P_3^{(\alpha,\beta)} $
... 1 0 ... ... ...
n 1 0 0-n n+1 $ P_0^{(\alpha,\beta)}, P_1^{(\alpha,\beta)}, ..., P_n^{(\alpha,\beta)} $

For example, for Legendre polynomials ($\alpha=\beta=0$), 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 1 0 0-1 2 and: $ x $
2 1 0 0-2 3 and: $ \frac{1}{2} (3x^2-1) $
3 1 0 0-3 4 and: $ \frac{1}{2} (5x^3-3x) $
4 1 0 0-4 5 and: $ \frac{1}{8} (35x^4-30x^2+3) $
5 1 0 0-5 6 and: $ \frac{1}{8} (63x^5-70x^3+15x) $
6 1 0 0-6 7 and: $ \frac{1}{16} (231x^6-315x^4+105x^2-5) $
7 1 0 0-7 8 and: $ \frac{1}{16} (429x^7-693x^5+315x^3-35x) $
8 1 0 0-8 9 and: $ \frac{1}{128} (6435x^8-12012x^6+6930x^4-1260x^2+35) $
9 1 0 0-9 10 and: $ \frac{1}{128} (12155x^9-25740x^7+18018x^5-4620x^3+315x) $
10 1 0 0-1011 and: $ \frac{1}{128} (46189x^{10}-109395x^8+90090x^6-30030x^4+3465x^2-63) $

Definition at line 117 of file Intrepid_HGRAD_LINE_Cn_FEM_JACOBI.hpp.


Member Function Documentation

template<class Scalar , class ArrayScalar>
void Intrepid::Basis_HGRAD_LINE_Cn_FEM_JACOBI< Scalar, ArrayScalar >::getValues ( ArrayScalar &  outputValues,
const ArrayScalar &  inputPoints,
const EOperator  operatorType 
) const [inline, virtual]

Evaluation of a FEM basis on a reference Line cell.

Returns values of operatorType acting on FEM basis functions for a set of points in the reference Line cell. For rank and dimensions of I/O array arguments see Section MD array template arguments for basis methods .

Parameters:
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

Implements Intrepid::Basis< Scalar, ArrayScalar >.

Definition at line 53 of file Intrepid_HGRAD_LINE_Cn_FEM_JACOBIDef.hpp.

References Intrepid::Basis< Scalar, ArrayScalar >::basisCardinality_, Intrepid::Basis< Scalar, ArrayScalar >::getBaseCellTopology(), Intrepid::Basis< Scalar, ArrayScalar >::getCardinality(), Intrepid::Basis< Scalar, ArrayScalar >::getDegree(), Intrepid::IntrepidPolylib::jacobd(), and Intrepid::IntrepidPolylib::jacobfd().

Referenced by Intrepid::Basis_HGRAD_LINE_Cn_FEM< Scalar, ArrayScalar >::Basis_HGRAD_LINE_Cn_FEM(), and Intrepid::Basis_HGRAD_LINE_Cn_FEM< Scalar, ArrayScalar >::getValues().


The documentation for this class was generated from the following files:
Generated on Mon Jan 31 09:55:54 2011 for Intrepid by  doxygen 1.6.3