29 #ifndef __FEM_Context_HPP
30 #define __FEM_Context_HPP 1
32 #include <feel/feelcore/context.hpp>
33 #include <boost/mpl/vector_c.hpp>
43 const size_type FIRST_DERIVATIVE = ( 1<<3 );
45 const size_type SECOND_DERIVATIVE = ( 1<<5 );
50 const size_type FIRST_DERIVATIVE_NORMAL = ( 1<<10 );
61 JACOBIAN, KB, KB2, FIRST_DERIVATIVE, GRAD, SECOND_DERIVATIVE, HESSIAN,
62 MEASURE, NORMAL, TANGENT, FIRST_DERIVATIVE_NORMAL, POINT,
65 MASS, STIFFNESS> contexts;
67 template<
size_type Context>
70 static const bool value = has_value<Context, JACOBIAN>::value;
72 template<
size_type Context>
75 static const bool value = has_value<Context, KB>::value;
77 template<
size_type Context>
80 static const bool value = has_value<Context, KB2>::value;
82 template<
size_type Context>
83 struct has_first_derivative
85 static const bool value = has_value<Context, FIRST_DERIVATIVE>::value;
87 template<
size_type Context>
90 static const bool value = has_value<Context, GRAD>::value;
92 template<
size_type Context>
93 struct has_second_derivative
95 static const bool value = has_value<Context, SECOND_DERIVATIVE>::value;
97 template<
size_type Context>
100 static const bool value = has_value<Context, HESSIAN>::value;
102 template<
size_type Context>
105 static const bool value = has_value<Context, NORMAL>::value;
107 template<
size_type Context>
110 static const bool value = has_value<Context, TANGENT>::value;
113 template<
size_type Context>
114 struct has_first_derivative_normal
116 static const bool value = has_value<Context, FIRST_DERIVATIVE_NORMAL>::value;
119 template<
size_type Context>
122 static const bool value = has_value<Context, POINT>::value;
124 template<
size_type Context>
127 static const bool value = has_value<Context, SYMM>::value;
129 template<
size_type Context>
132 static const bool value = has_value<Context, UNSYMM>::value;
134 template<
size_type Context>
137 static const bool value = has_value<Context, DIV>::value;
139 template<
size_type Context>
142 static const bool value = has_value<Context, CURL>::value;
145 template<
size_type Context>
148 static const bool value = has_value<Context, MASS>::value;
150 template<
size_type Context>
153 static const bool value = has_value<Context, STIFFNESS>::value;