35 #ifndef INTREPID_TENSORPRODUCTSPACETOOLS_HPP
36 #define INTREPID_TENSORPRODUCTSPACETOOLS_HPP
40 #include "Teuchos_Array.hpp"
41 #include "Teuchos_RCP.hpp"
72 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
74 static void evaluate( ArrayTypeOut &vals ,
75 const ArrayTypeCoeffs &coeffs ,
76 const Array<RCP<ArrayTypeBasis> > &bases );
117 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
118 class ArrayTypeBasis>
120 const ArrayTypeCoeffs &coeffs ,
121 const Array<RCP<ArrayTypeBasis> > &bases );
138 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
139 class ArrayTypeBasis>
141 const ArrayTypeCoeffs &coeffs ,
142 const Array<RCP<ArrayTypeBasis> > &bases ,
143 const Array<RCP<ArrayTypeBasis> > &Dbases );
162 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
163 class ArrayTypeBasis>
165 const ArrayTypeCoeffs &coeffs ,
166 const Array<RCP<ArrayTypeBasis> > &bases ,
167 const Array<RCP<ArrayTypeBasis> > &Dbases );
179 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
180 class ArrayTypeBasis,
class ArrayTypeWeights>
181 static void moments( ArrayTypeOut &vals ,
182 const ArrayTypeData &data ,
183 const Array<RCP<ArrayTypeBasis> > &basisVals ,
184 const Array<RCP<ArrayTypeWeights> > &wts );
197 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
198 class ArrayTypeBasis,
class ArrayTypeWeights>
200 const ArrayTypeData &data ,
201 const Array<RCP<ArrayTypeBasis> > &basisVals ,
202 const Array<RCP<ArrayTypeWeights> > &wts );
216 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
217 class ArrayTypeBasis,
class ArrayTypeWeights>
219 const ArrayTypeData &data ,
220 const Array<RCP<ArrayTypeBasis> > &basisVals ,
221 const Array<RCP<ArrayTypeBasis> > &basisDVals ,
222 const Array<RCP<ArrayTypeWeights> > &wts );
237 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
238 class ArrayTypeBasis,
class ArrayTypeWeights>
240 const ArrayTypeData &data ,
241 const Array<RCP<ArrayTypeBasis> > &basisVals ,
242 const Array<RCP<ArrayTypeBasis> > &basisDVals ,
243 const Array<RCP<ArrayTypeWeights> > &wts );
247 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
248 class ArrayTypeBasis>
249 static void evaluate2D( ArrayTypeOut &vals ,
250 const ArrayTypeCoeffs &coeffs ,
251 const Array<RCP<ArrayTypeBasis> > &basisVals );
253 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
254 class ArrayTypeBasis>
255 static void evaluate3D( ArrayTypeOut &vals ,
256 const ArrayTypeCoeffs &coeffs ,
257 const Array<RCP<ArrayTypeBasis> > &basisDVals );
259 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
260 class ArrayTypeBasis>
261 static void evaluateCollocated2D( ArrayTypeOut &vals ,
262 const ArrayTypeCoeffs &coeffs ,
263 const Array<RCP<ArrayTypeBasis> > &basisVals );
265 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
266 class ArrayTypeBasis>
267 static void evaluateCollocated3D( ArrayTypeOut &vals ,
268 const ArrayTypeCoeffs &coeffs ,
269 const Array<RCP<ArrayTypeBasis> > &basisDVals );
271 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
272 class ArrayTypeBasis>
273 static void evaluateGradient2D( ArrayTypeOut &vals ,
274 const ArrayTypeCoeffs &coeffs ,
275 const Array<RCP<ArrayTypeBasis> > &basisVals ,
276 const Array<RCP<ArrayTypeBasis> > &basisDVals );
278 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
279 class ArrayTypeBasis>
280 static void evaluateGradient3D( ArrayTypeOut &vals ,
281 const ArrayTypeCoeffs &coeffs ,
282 const Array<RCP<ArrayTypeBasis> > &basisVals ,
283 const Array<RCP<ArrayTypeBasis> > &basisDVals );
286 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
287 class ArrayTypeBasis>
288 static void evaluateGradientCollocated2D( ArrayTypeOut &vals ,
289 const ArrayTypeCoeffs &coeffs ,
290 const Array<RCP<ArrayTypeBasis> > &basisVals ,
291 const Array<RCP<ArrayTypeBasis> > &basisDVals );
293 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeCoeffs,
294 class ArrayTypeBasis>
295 static void evaluateGradientCollocated3D( ArrayTypeOut &vals ,
296 const ArrayTypeCoeffs &coeffs ,
297 const Array<RCP<ArrayTypeBasis> > &basisVals ,
298 const Array<RCP<ArrayTypeBasis> > &basisDVals );
300 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
301 class ArrayTypeBasis,
class ArrayTypeWeights>
302 static void moments2D( ArrayTypeOut &vals ,
303 const ArrayTypeData &data ,
304 const Array<RCP<ArrayTypeBasis> > &basisVals ,
305 const Array<RCP<ArrayTypeWeights> > &wts );
307 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
308 class ArrayTypeBasis,
class ArrayTypeWeights>
309 static void moments3D( ArrayTypeOut &vals ,
310 const ArrayTypeData &data ,
311 const Array<RCP<ArrayTypeBasis> > &basisVals ,
312 const Array<RCP<ArrayTypeWeights> > &wts );
314 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
315 class ArrayTypeBasis,
class ArrayTypeWeights>
316 static void momentsCollocated2D( ArrayTypeOut &vals ,
317 const ArrayTypeData &data ,
318 const Array<RCP<ArrayTypeBasis> > &basisVals ,
319 const Array<RCP<ArrayTypeWeights> > &wts );
321 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
322 class ArrayTypeBasis,
class ArrayTypeWeights>
323 static void momentsCollocated3D( ArrayTypeOut &vals ,
324 const ArrayTypeData &data ,
325 const Array<RCP<ArrayTypeBasis> > &basisVals ,
326 const Array<RCP<ArrayTypeWeights> > &wts );
328 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
329 class ArrayTypeBasis,
class ArrayTypeWeights>
330 static void momentsGradCollocated2D( ArrayTypeOut &vals ,
331 const ArrayTypeData &data ,
332 const Array<RCP<ArrayTypeBasis> > &basisVals ,
333 const Array<RCP<ArrayTypeBasis> > &basisDVals ,
334 const Array<RCP<ArrayTypeWeights> > &wts );
336 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
337 class ArrayTypeBasis,
class ArrayTypeWeights>
338 static void momentsGradCollocated3D( ArrayTypeOut &vals ,
339 const ArrayTypeData &data ,
340 const Array<RCP<ArrayTypeBasis> > &basisVals ,
341 const Array<RCP<ArrayTypeBasis> > &basisDVals ,
342 const Array<RCP<ArrayTypeWeights> > &wts );
344 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
345 class ArrayTypeBasis,
class ArrayTypeWeights>
346 static void momentsGrad2D( ArrayTypeOut &vals ,
347 const ArrayTypeData &data ,
348 const Array<RCP<ArrayTypeBasis> > &basisVals ,
349 const Array<RCP<ArrayTypeBasis> > &basisDVals ,
350 const Array<RCP<ArrayTypeWeights> > &wts );
352 template<
class Scalar,
class ArrayTypeOut,
class ArrayTypeData,
353 class ArrayTypeBasis,
class ArrayTypeWeights>
354 static void momentsGrad3D( ArrayTypeOut &vals ,
355 const ArrayTypeData &data ,
356 const Array<RCP<ArrayTypeBasis> > &basisVals ,
357 const Array<RCP<ArrayTypeBasis> > &basisDVals ,
358 const Array<RCP<ArrayTypeWeights> > &wts );
Header file for utility class to provide multidimensional containers.
Header file for the abstract base class Intrepid::Basis.
Implementation of a templated lexicographical container for a multi-indexed scalar quantity...