1 #ifndef INTREPID_HGRAD_LINE_C1_FEMDEF_HPP 
    2 #define INTREPID_HGRAD_LINE_C1_FEMDEF_HPP 
   54 template<
class Scalar, 
class ArrayScalar>
 
   56     this -> basisCardinality_  = 2;
 
   57     this -> basisDegree_       = 1;    
 
   58     this -> basisCellTopology_ = shards::CellTopology(shards::getCellTopologyData<shards::Line<2> >() );
 
   59     this -> basisType_         = BASIS_FEM_DEFAULT;
 
   60     this -> basisCoordinates_  = COORDINATES_CARTESIAN;
 
   61     this -> basisTagsAreSet_   = 
false;
 
   66 template<
class Scalar, 
class ArrayScalar> 
 
   68                                                                     const ArrayScalar &  inputPoints,
 
   69                                                                     const EOperator      operatorType)
 const {
 
   72 #ifdef HAVE_INTREPID_DEBUG 
   73   Intrepid::getValues_HGRAD_Args<Scalar, ArrayScalar>(outputValues,
 
   76                                                       this -> getBaseCellTopology(),
 
   77                                                       this -> getCardinality() );
 
   80   int dim0 = inputPoints.dimension(0);  
 
   85   switch (operatorType) {
 
   88       for (
int i0 = 0; i0 < dim0; i0++) {
 
   89         x = inputPoints(i0, 0);
 
   92         outputValues(0, i0) = (1.0 - x)/2.0;
 
   93         outputValues(1, i0) = (1.0 + x)/2.0;
 
  101       for (
int i0 = 0; i0 < dim0; i0++) {
 
  102         x = inputPoints(i0,0);
 
  105         outputValues(0, i0, 0) = -0.5;
 
  106         outputValues(1, i0, 0) = 0.5;
 
  111       for (
int i0 = 0; i0 < dim0; i0++) {
 
  114         outputValues(0, i0, 0) =  0.0;
 
  115         outputValues(1, i0, 0) =  0.0;
 
  129         int DkCardinality = Intrepid::getDkCardinality(operatorType, 
 
  130                                                        this -> basisCellTopology_.getDimension() );
 
  131         for(
int dofOrd = 0; dofOrd < 
this -> basisCardinality_; dofOrd++) {
 
  132           for (
int i0 = 0; i0 < dim0; i0++) {
 
  133             for(
int dkOrd = 0; dkOrd < DkCardinality; dkOrd++){
 
  134               outputValues(dofOrd, i0, dkOrd) = 0.0;
 
  142       TEUCHOS_TEST_FOR_EXCEPTION( !( Intrepid::isValidOperator(operatorType) ), std::invalid_argument,
 
  143                           ">>> ERROR (Basis_HGRAD_LINE_C1_FEM): Invalid operator type");
 
  147 template<
class Scalar, 
class ArrayScalar>
 
  157   int tags[]  = { 0, 0, 0, 1,
 
  161   Intrepid::setOrdinalTagData(
this -> tagToOrdinal_,
 
  162                               this -> ordinalToTag_,
 
  164                               this -> basisCardinality_,
 
  171 template<
class Scalar, 
class ArrayScalar>
 
  173                                                                     const ArrayScalar &    inputPoints,
 
  174                                                                     const ArrayScalar &    cellVertices,
 
  175                                                                     const EOperator        operatorType)
 const {
 
  176   TEUCHOS_TEST_FOR_EXCEPTION( (
true), std::logic_error,
 
  177                       ">>> ERROR (Basis_HGRAD_LINE_C1_FEM): FEM Basis calling an FVD member function");
 
Basis_HGRAD_LINE_C1_FEM()
Constructor. 
void initializeTags()
Initializes tagToOrdinal_ and ordinalToTag_ lookup arrays. 
void getValues(ArrayScalar &outputValues, const ArrayScalar &inputPoints, const EOperator operatorType) const 
Evaluation of a FEM basis on a reference Line cell.