51 template<
class Scalar, 
class ArrayScalar>
 
   54     this -> basisCardinality_  = 4;
 
   55     this -> basisDegree_       = 1;
 
   56     this -> basisCellTopology_ = shards::CellTopology(shards::getCellTopologyData<shards::Quadrilateral<4> >() );
 
   57     this -> basisType_         = BASIS_FEM_DEFAULT;
 
   58     this -> basisCoordinates_  = COORDINATES_CARTESIAN;
 
   59     this -> basisTagsAreSet_   = 
false;
 
   62 template<
class Scalar, 
class ArrayScalar>
 
   80   Intrepid::setOrdinalTagData(
this -> tagToOrdinal_,
 
   81                               this -> ordinalToTag_,
 
   83                               this -> basisCardinality_,
 
   92 template<
class Scalar, 
class ArrayScalar>
 
   94                                                            const ArrayScalar &  inputPoints,
 
   95                                                            const EOperator      operatorType)
 const {
 
   98 #ifdef HAVE_INTREPID_DEBUG 
   99   Intrepid::getValues_HDIV_Args<Scalar, ArrayScalar>(outputValues,
 
  102                                                       this -> getBaseCellTopology(),
 
  103                                                       this -> getCardinality() );
 
  107   int dim0 = inputPoints.dimension(0);
 
  113   switch (operatorType) {
 
  115       for (
int i0 = 0; i0 < dim0; i0++) {
 
  116         x = inputPoints(i0, 0);
 
  117         y = inputPoints(i0, 1);
 
  120         outputValues(0, i0, 0) = 0.0;
 
  121         outputValues(0, i0, 1) = (y - 1.0)/4.0;
 
  123         outputValues(1, i0, 0) = (1.0 + x)/4.0;
 
  124         outputValues(1, i0, 1) = 0.0; 
 
  126         outputValues(2, i0, 0) = 0.0;
 
  127         outputValues(2, i0, 1) = (1.0 + y)/4.0;
 
  129         outputValues(3, i0, 0) = (x - 1.0)/4.0;
 
  130         outputValues(3, i0, 1) = 0.0;
 
  136       for (
int i0 = 0; i0 < dim0; i0++) {
 
  137          outputValues(0, i0) = 0.25;
 
  138          outputValues(1, i0) = 0.25;
 
  139          outputValues(2, i0) = 0.25;
 
  140          outputValues(3, i0) = 0.25;
 
  145        TEUCHOS_TEST_FOR_EXCEPTION( (operatorType == OPERATOR_CURL), std::invalid_argument,
 
  146                           ">>> ERROR (Basis_HDIV_QUAD_I1_FEM): CURL is invalid operator for HDIV Basis Functions");
 
  150        TEUCHOS_TEST_FOR_EXCEPTION( (operatorType == OPERATOR_GRAD), std::invalid_argument,
 
  151                           ">>> ERROR (Basis_HDIV_QUAD_I1_FEM): GRAD is invalid operator for HDIV Basis Functions");
 
  164       TEUCHOS_TEST_FOR_EXCEPTION( ( (operatorType == OPERATOR_D1)    ||
 
  165                             (operatorType == OPERATOR_D2)    ||
 
  166                             (operatorType == OPERATOR_D3)    ||
 
  167                             (operatorType == OPERATOR_D4)    ||
 
  168                             (operatorType == OPERATOR_D5)    ||
 
  169                             (operatorType == OPERATOR_D6)    ||
 
  170                             (operatorType == OPERATOR_D7)    ||
 
  171                             (operatorType == OPERATOR_D8)    ||
 
  172                             (operatorType == OPERATOR_D9)    ||
 
  173                             (operatorType == OPERATOR_D10) ),
 
  174                           std::invalid_argument,
 
  175                           ">>> ERROR (Basis_HDIV_QUAD_I1_FEM): Invalid operator type");
 
  179       TEUCHOS_TEST_FOR_EXCEPTION( ( (operatorType != OPERATOR_VALUE) &&
 
  180                             (operatorType != OPERATOR_GRAD)  &&
 
  181                             (operatorType != OPERATOR_CURL)  &&
 
  182                             (operatorType != OPERATOR_DIV)   &&
 
  183                             (operatorType != OPERATOR_D1)    &&
 
  184                             (operatorType != OPERATOR_D2)    &&
 
  185                             (operatorType != OPERATOR_D3)    &&
 
  186                             (operatorType != OPERATOR_D4)    &&
 
  187                             (operatorType != OPERATOR_D5)    &&
 
  188                             (operatorType != OPERATOR_D6)    &&
 
  189                             (operatorType != OPERATOR_D7)    &&
 
  190                             (operatorType != OPERATOR_D8)    &&
 
  191                             (operatorType != OPERATOR_D9)    &&
 
  192                             (operatorType != OPERATOR_D10) ),
 
  193                           std::invalid_argument,
 
  194                           ">>> ERROR (Basis_HDIV_QUAD_I1_FEM): Invalid operator type");
 
  200 template<
class Scalar, 
class ArrayScalar>
 
  202                                                            const ArrayScalar &    inputPoints,
 
  203                                                            const ArrayScalar &    cellVertices,
 
  204                                                            const EOperator        operatorType)
 const {
 
  205   TEUCHOS_TEST_FOR_EXCEPTION( (
true), std::logic_error,
 
  206                       ">>> ERROR (Basis_HDIV_QUAD_I1_FEM): FEM Basis calling an FVD member function");
 
Basis_HDIV_QUAD_I1_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 Quadrilateral cell.