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_TRI_Cn_FEM_ORTHHPP
00037 #define INTREPID_HGRAD_TRI_Cn_FEM_ORTHHPP
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_TRI_Cn_FEM_ORTH: public Basis<Scalar, ArrayScalar> {
00055 private:
00058 void initializeTags();
00059
00060 public:
00061
00065 Basis_HGRAD_TRI_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 TabulatorTri
00107 {
00108 public:
00118 static void tabulate( ArrayScalar & outputValues ,
00119 const int deg ,
00120 const ArrayScalar &inputPoints );
00121 };
00122
00123
00124
00129 template<typename Scalar,typename ArrayScalar>
00130 class TabulatorTri<Scalar,ArrayScalar,0>
00131 {
00132 public:
00141 static void tabulate( ArrayScalar & outputValues ,
00142 const int deg ,
00143 const ArrayScalar &inputPoints );
00144
00145 };
00146
00153 template<typename Scalar,typename ArrayScalar>
00154 class TabulatorTri<Scalar,ArrayScalar,1>
00155 {
00156 public:
00166 static void tabulate( ArrayScalar & outputValues ,
00167 const int deg ,
00168 const ArrayScalar &inputPoints );
00169
00170 };
00171
00172
00173
00174 }
00175
00176 #include "Intrepid_HGRAD_TRI_Cn_FEM_ORTHDef.hpp"
00177
00178 #endif
00179