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...