00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00036 #ifndef INTREPID_HGRAD_TET_Cn_FEM_ORTH_HPP
00037 #define INTREPID_HGRAD_TET_Cn_FEM_ORTH_HPP
00038
00039 #include "Intrepid_Basis.hpp"
00040 #include "Sacado.hpp"
00041
00042 namespace Intrepid {
00043
00053 template<class Scalar, class ArrayScalar>
00054 class Basis_HGRAD_TET_Cn_FEM_ORTH: public Basis<Scalar, ArrayScalar> {
00055 private:
00058 void initializeTags();
00059
00060 public:
00061
00065 Basis_HGRAD_TET_Cn_FEM_ORTH( int degree );
00066
00067
00078 void getValues(ArrayScalar & outputValues,
00079 const ArrayScalar & inputPoints,
00080 const EOperator operatorType) const;
00081
00082
00085 void getValues(ArrayScalar & outputValues,
00086 const ArrayScalar & inputPoints,
00087 const ArrayScalar & cellVertices,
00088 const EOperator operatorType = OPERATOR_VALUE) const;
00089
00090 };
00091
00105 template<typename Scalar,typename ArrayScalar, unsigned derivOrder>
00106 class TabulatorTet
00107 {
00108 public:
00118 static void tabulate( ArrayScalar & outputValues ,
00119 const int deg ,
00120 const ArrayScalar &inputPoints );
00121 };
00122
00123
00128 template<typename Scalar,typename ArrayScalar>
00129 class TabulatorTet<Scalar,ArrayScalar,0>
00130 {
00131 public:
00140 static void tabulate( ArrayScalar & outputValues ,
00141 const int deg ,
00142 const ArrayScalar &inputPoints );
00143
00144 };
00145
00152 template<typename Scalar,typename ArrayScalar>
00153 class TabulatorTet<Scalar,ArrayScalar,1>
00154 {
00155 public:
00165 static void tabulate( ArrayScalar & outputValues ,
00166 const int deg ,
00167 const ArrayScalar &inputPoints );
00168
00169 };
00170
00171
00172
00173 }
00174
00175 #include "Intrepid_HGRAD_TET_Cn_FEM_ORTHDef.hpp"
00176
00177 #endif
00178