95 const ArrayScalar & inputPoints,
96 const EOperator operatorType)
const {
99#ifdef HAVE_INTREPID_DEBUG
100 Intrepid::getValues_HCURL_Args<Scalar, ArrayScalar>(outputValues,
103 this -> getBaseCellTopology(),
104 this -> getCardinality() );
108 int dim0 = inputPoints.dimension(0);
115 switch (operatorType) {
117 for (
int i0 = 0; i0 < dim0; i0++) {
118 x = inputPoints(i0, 0);
119 y = inputPoints(i0, 1);
120 z = inputPoints(i0, 2);
123 outputValues(0, i0, 0) = 1.0 - y - z;
124 outputValues(0, i0, 1) = x;
125 outputValues(0, i0, 2) = x;
127 outputValues(1, i0, 0) =-y;
128 outputValues(1, i0, 1) = x;
129 outputValues(1, i0, 2) = 0.0;
131 outputValues(2, i0, 0) = -y;
132 outputValues(2, i0, 1) = -1.0 + x + z;
133 outputValues(2, i0, 2) = -y;
135 outputValues(3, i0, 0) = z;
136 outputValues(3, i0, 1) = z;
137 outputValues(3, i0, 2) = 1.0 - x - y;
139 outputValues(4, i0, 0) =-z;
140 outputValues(4, i0, 1) = 0.0;
141 outputValues(4, i0, 2) = x;
143 outputValues(5, i0, 0) = 0.0;
144 outputValues(5, i0, 1) =-z;
145 outputValues(5, i0, 2) = y;
150 for (
int i0 = 0; i0 < dim0; i0++) {
151 x = inputPoints(i0, 0);
152 y = inputPoints(i0, 1);
153 z = inputPoints(i0, 2);
156 outputValues(0, i0, 0) = 0.0;
157 outputValues(0, i0, 1) =-2.0;
158 outputValues(0, i0, 2) = 2.0;
160 outputValues(1, i0, 0) = 0.0;
161 outputValues(1, i0, 1) = 0.0;
162 outputValues(1, i0, 2) = 2.0;
164 outputValues(2, i0, 0) =-2.0;
165 outputValues(2, i0, 1) = 0.0;
166 outputValues(2, i0, 2) = 2.0;
168 outputValues(3, i0, 0) =-2.0;
169 outputValues(3, i0, 1) = 2.0;
170 outputValues(3, i0, 2) = 0.0;
172 outputValues(4, i0, 0) = 0.0;
173 outputValues(4, i0, 1) =-2.0;
174 outputValues(4, i0, 2) = 0.0;
176 outputValues(5, i0, 0) = 2.0;
177 outputValues(5, i0, 1) = 0.0;
178 outputValues(5, i0, 2) = 0.0;
183 TEUCHOS_TEST_FOR_EXCEPTION( (operatorType == OPERATOR_DIV), std::invalid_argument,
184 ">>> ERROR (Basis_HCURL_TET_I1_FEM): DIV is invalid operator for HCURL Basis Functions");
188 TEUCHOS_TEST_FOR_EXCEPTION( (operatorType == OPERATOR_GRAD), std::invalid_argument,
189 ">>> ERROR (Basis_HCURL_TET_I1_FEM): GRAD is invalid operator for HCURL Basis Functions");
202 TEUCHOS_TEST_FOR_EXCEPTION( ( (operatorType == OPERATOR_D1) ||
203 (operatorType == OPERATOR_D2) ||
204 (operatorType == OPERATOR_D3) ||
205 (operatorType == OPERATOR_D4) ||
206 (operatorType == OPERATOR_D5) ||
207 (operatorType == OPERATOR_D6) ||
208 (operatorType == OPERATOR_D7) ||
209 (operatorType == OPERATOR_D8) ||
210 (operatorType == OPERATOR_D9) ||
211 (operatorType == OPERATOR_D10) ),
212 std::invalid_argument,
213 ">>> ERROR (Basis_HCURL_TET_I1_FEM): Invalid operator type");
217 TEUCHOS_TEST_FOR_EXCEPTION( ( (operatorType != OPERATOR_VALUE) &&
218 (operatorType != OPERATOR_GRAD) &&
219 (operatorType != OPERATOR_CURL) &&
220 (operatorType != OPERATOR_DIV) &&
221 (operatorType != OPERATOR_D1) &&
222 (operatorType != OPERATOR_D2) &&
223 (operatorType != OPERATOR_D3) &&
224 (operatorType != OPERATOR_D4) &&
225 (operatorType != OPERATOR_D5) &&
226 (operatorType != OPERATOR_D6) &&
227 (operatorType != OPERATOR_D7) &&
228 (operatorType != OPERATOR_D8) &&
229 (operatorType != OPERATOR_D9) &&
230 (operatorType != OPERATOR_D10) ),
231 std::invalid_argument,
232 ">>> ERROR (Basis_HCURL_TET_I1_FEM): Invalid operator type");
249#ifdef HAVE_INTREPID_DEBUG
251 TEUCHOS_TEST_FOR_EXCEPTION( !(DofCoords.rank() == 2), std::invalid_argument,
252 ">>> ERROR: (Intrepid::Basis_HCURL_TET_I1_FEM::getDofCoords) rank = 2 required for DofCoords array");
254 TEUCHOS_TEST_FOR_EXCEPTION( !( DofCoords.dimension(0) == this -> basisCardinality_ ), std::invalid_argument,
255 ">>> ERROR: (Intrepid::Basis_HCURL_TET_I1_FEM::getDofCoords) mismatch in number of DoF and 0th dimension of DofCoords array");
257 TEUCHOS_TEST_FOR_EXCEPTION( !( DofCoords.dimension(1) == (
int)(this -> basisCellTopology_.getDimension()) ), std::invalid_argument,
258 ">>> ERROR: (Intrepid::Basis_HCURL_TET_I1_FEM::getDofCoords) incorrect reference cell (1st) dimension in DofCoords array");
261 DofCoords(0,0) = 0.5; DofCoords(0,1) = 0.0; DofCoords(0,2) = 0.0;
262 DofCoords(1,0) = 0.5; DofCoords(1,1) = 0.5; DofCoords(1,2) = 0.0;
263 DofCoords(2,0) = 0.0; DofCoords(2,1) = 0.5; DofCoords(2,2) = 0.0;
264 DofCoords(3,0) = 0.0; DofCoords(3,1) = 0.0; DofCoords(3,2) = 0.5;
265 DofCoords(4,0) = 0.5; DofCoords(4,1) = 0.0; DofCoords(4,2) = 0.5;
266 DofCoords(5,0) = 0.0; DofCoords(5,1) = 0.5; DofCoords(5,2) = 0.5;