29 typedef basis_rep<T> base;
33 static void hat_node (Eigen::Matrix<
point_basic<T>,Eigen::Dynamic,1>&);
38 typedef basis_rep<T> base;
42 static void hat_node (Eigen::Matrix<
point_basic<T>,Eigen::Dynamic,1>&);
48 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
51 values[0] = hat_x[1]+5.0000000000000000e-01;
52 values[1] = hat_x[0]-hat_x[1];
53 values[2] = -hat_x[0]+5.0000000000000000e-01;
57 basis_P1qd_q<T>::grad_evaluate (
65 values[1][1] = -1.0000000000000000e+00;
66 values[2][0] = -1.0000000000000000e+00;
71 basis_P1qd_q<T>::hat_node (Eigen::Matrix<
point_basic<T>,Eigen::Dynamic,1>& x)
74 x[0] =
point_basic<T>(5.0000000000000000e-01, 5.0000000000000000e-01);
75 x[1] =
point_basic<T>(5.0000000000000000e-01, -5.0000000000000000e-01);
76 x[2] =
point_basic<T>(-5.0000000000000000e-01, -5.0000000000000000e-01);
82 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
85 values[0] = hat_x[2]+5.0000000000000000e-01;
86 values[1] = hat_x[1]-hat_x[2];
87 values[2] = hat_x[0]-hat_x[1];
88 values[3] = -hat_x[0]+5.0000000000000000e-01;
92 basis_P1qd_H<T>::grad_evaluate (
102 values[1][2] = -1.0000000000000000e+00;
104 values[2][1] = -1.0000000000000000e+00;
106 values[3][0] = -1.0000000000000000e+00;
112 basis_P1qd_H<T>::hat_node (Eigen::Matrix<
point_basic<T>,Eigen::Dynamic,1>& x)
115 x[0] =
point_basic<T>(5.0000000000000000e-01, 5.0000000000000000e-01, 5.0000000000000000e-01);
116 x[1] =
point_basic<T>(5.0000000000000000e-01, 5.0000000000000000e-01, -5.0000000000000000e-01);
117 x[2] =
point_basic<T>(5.0000000000000000e-01, -5.0000000000000000e-01, -5.0000000000000000e-01);
118 x[3] =
point_basic<T>(-5.0000000000000000e-01, -5.0000000000000000e-01, -5.0000000000000000e-01);
144 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
const
154 error_macro (
"evaluate: unsupported `" << hat_K.
name() <<
"' element type");
167 return basis_P1qd_q<T>::grad_evaluate (hat_x, values);
170 return basis_P1qd_H<T>::grad_evaluate (hat_x, values);
173 error_macro (
"grad_evaluate: unsupported `" << hat_K.
name() <<
"' element type");
181 const Eigen::Matrix<T,Eigen::Dynamic,1>& f_xnod,
182 Eigen::Matrix<T,Eigen::Dynamic,1>& dof)
const
199 return basis_P1qd_q<T>::hat_node (_hat_node[hat_K.
variant()]);
202 return basis_P1qd_H<T>::hat_node (_hat_node[hat_K.
variant()]);
205 error_macro (
"hat_node: unsupported `" << hat_K.
name() <<
"' element type");