10#include <kernel/space/node_functional_base.hpp>
11#include <kernel/cubature/dynamic_factory.hpp>
34 return T_(0.25) * (T_(1) - T_(2) * x + x * x);
41 return T_(0.25) * (T_(1) + T_(2) * x + x * x);
49 return T_(0.5) * (T_(1) - x * x);
57 return T_(0.5) * (x - T_(1));
63 return T_(0.5) * (x + T_(1));
110 XABORTM(
"You can only use p0,p1,p2. The basisfunction p"+
stringify( i)+
" is not available.");
120 template<
typename T_>
123 return T_(-0.75) - T_(1.5) * x + T_(3.75) * x * x;
127 template<
typename T_>
130 return T_(-0.75) + T_(1.5) * x + T_(3.75) * x * x;
134 template<
typename T_>
137 return T_(3) - T_(7.5) * x * x;
142 template<
typename T_>
145 return T_(7.5) * x - T_(1.5);
148 template<
typename T_>
151 return T_(7.5) * x + T_(1.5);
154 template<
typename T_>
163 template<
typename T_>
169 template<
typename T_>
175 template<
typename T_>
184 template<
typename T_>
198 XABORTM(
"You can only use q0,q1,q2. The basisfunction q"+
stringify(i)+
" is not available.");
204 template<
typename T_>
208 for (
int qx = 0; qx < 3; ++qx)
210 rsl += koef(qx ) * q(qx, x);
216 template<
typename T_>
220 for (
int qx = 0; qx < 3; ++qx)
222 for (
int qy = 0; qy < 3; ++qy)
224 rsl+=koef( qx * 3 + qy)* q(qx,x)*q(qy,y);
231 template<
typename T_>
235 for (
int qz = 0; qz < 3; ++qz)
237 for (
int qx = 0; qx < 3; ++qx)
239 for (
int qy = 0; qy < 3; ++qy)
241 rsl += koef(qz*9+qx * 3 + qy) * q(qx, x) * q(qy, y)*q(qz,z);
#define XABORTM(msg)
Abortion macro definition with custom message.
Tiny Vector class template.
String stringify(const T_ &item)
Converts an item into a String.