29 typedef basis_rep<T> base;
30 typedef typename base::size_type
size_type;
31 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
32 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
33 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
38 typedef basis_rep<T> base;
39 typedef typename base::size_type
size_type;
40 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
41 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
42 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
46basis_P1qd_q<T>::evaluate (
47 const point_basic<T>& hat_x,
48 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
51 values[0] = hat_x[1]+5.0000000000000000e-01;
52 values[1] = -hat_x[1]+hat_x[0];
53 values[2] = -hat_x[0]+5.0000000000000000e-01;
57basis_P1qd_q<T>::grad_evaluate (
58 const point_basic<T>& hat_x,
59 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
65 values[1][1] = -1.0000000000000000e+00;
66 values[2][0] = -1.0000000000000000e+00;
71basis_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);
80basis_P1qd_H<T>::evaluate (
81 const point_basic<T>& hat_x,
82 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
85 values[0] = hat_x[2]+5.0000000000000000e-01;
86 values[1] = -hat_x[2]+hat_x[1];
87 values[2] = hat_x[0]-hat_x[1];
88 values[3] = -hat_x[0]+5.0000000000000000e-01;
92basis_P1qd_H<T>::grad_evaluate (
93 const point_basic<T>& hat_x,
94 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
102 values[1][2] = -1.0000000000000000e+00;
104 values[2][1] = -1.0000000000000000e+00;
106 values[3][0] = -1.0000000000000000e+00;
112basis_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);
124 base::_sopt.set_continuous(
false);
126 base::_name =
"P1qd";
144 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
const
148 return basis_P1qd_q<T>::evaluate (hat_x, values);
151 return basis_P1qd_H<T>::evaluate (hat_x, values);
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");
field::size_type size_type
base::size_type size_type
void _initialize_cstor_sizes() const
void _compute_dofs(reference_element hat_K, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &f_xnod, Eigen::Matrix< T, Eigen::Dynamic, 1 > &dof) const
void evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &values) const
void grad_evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &values) const
void _initialize_data(reference_element hat_K) const
see the basis_option page for the full documentation
see the reference_element page for the full documentation
static const variant_type H
static const variant_type q
variant_type variant() const
#define error_macro(message)
#define fatal_macro(message)
This file is part of Rheolef.
void evaluate(const geo_basic< float_type, M > &omega_K, const geo_element &K, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const