49 #ifndef INTREPID_HGRAD_LINE_HERMITE_FEM_HPP
50 #define INTREPID_HGRAD_LINE_HERMITE_FEM_HPP
56 #include "Teuchos_SerialDenseMatrix.hpp"
57 #include "Teuchos_SerialDenseSolver.hpp"
92 template<
class Scalar,
class ArrayScalar>
95 template<
typename T>
using RCP = Teuchos::RCP<T>;
96 using SerialDenseMatrix = Teuchos::SerialDenseMatrix<int,Scalar>;
98 using TAGS = std::vector<int>;
106 mutable SerialDenseMatrix
V_;
108 mutable Teuchos::SerialDenseSolver<int,Scalar> solver_;
112 mutable bool isFactored_;
120 void recurrence( ArrayScalar &P, ArrayScalar &Px,
const Scalar x )
const;
125 void legendre_d( ArrayScalar &Pm, ArrayScalar &Pm1,
const int m,
const Scalar pt )
const;
159 void getValues(ArrayScalar & outputValues,
160 const ArrayScalar & inputPoints,
161 const EOperator operatorType)
const;
166 void getValues(ArrayScalar & outputValues,
167 const ArrayScalar & inputPoints,
168 const ArrayScalar & cellVertices,
169 const EOperator operatorType = OPERATOR_VALUE)
const;
172 virtual void getDofCoords( ArrayScalar & DofCoords )
const;
175 void printTags( std::ostream &os );
183 #endif // INTREPID_HGRAD_LINE_HERMITE_FEM_HPP
virtual void getDofCoords(ArrayScalar &DofCoords) const
implements the dofcoords interface
Implements Hermite interpolant basis of degree n on the reference Line cell. The basis has cardinalit...
FieldContainer< Scalar > latticePts_
Holds the points defining the Hermite basis.
void legendre_d(ArrayScalar &Pm, ArrayScalar &Pm1, const int m, const Scalar pt) const
Evaluates and at a particular point .
void recurrence(ArrayScalar &P, ArrayScalar &Px, const Scalar x) const
Evaluates and at a particular point .
Definition file for Hermite FEM basis functions of degree 2n for H(grad) functions on a Line...
SerialDenseMatrix V_
Contains the values of the Legendre polynomials and their derivatives.
void getValues(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const
Evaluation of a FEM basis on a reference Line cell.
void initializeTags()
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays.
Header file for the abstract base class Intrepid::Basis.
An abstract base class that defines interface for concrete basis implementations for Finite Element (...
void setupVandermonde(bool factor=true)
Form the Legendre/Derivative Vandermonde matrix at the given lattice points and have the linear solve...
Basis_HGRAD_LINE_Hermite_FEM()
Default Constructor assumes the two interpolation points are the cell vertices. Cubic Hermite Interpo...
Header file for a set of functions providing orthogonal polynomial polynomial calculus and interpolat...