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>&);
47 typedef basis_rep<T> base;
48 typedef typename base::size_type
size_type;
49 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
50 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
51 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
56 typedef basis_rep<T> base;
57 typedef typename base::size_type
size_type;
58 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
59 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
60 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
65 typedef basis_rep<T> base;
66 typedef typename base::size_type
size_type;
67 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
68 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
69 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
74 typedef basis_rep<T> base;
75 typedef typename base::size_type
size_type;
76 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
77 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
78 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
83 typedef basis_rep<T> base;
84 typedef typename base::size_type
size_type;
85 static void evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<T,Eigen::Dynamic,1>& values);
86 static void grad_evaluate (
const point_basic<T>& hat_x, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values);
87 static void hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>&);
91basis_P0_p<T>::evaluate (
92 const point_basic<T>& hat_x,
93 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
100basis_P0_p<T>::grad_evaluate (
101 const point_basic<T>& hat_x,
102 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
108basis_P0_p<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
111 x[0] = point_basic<T>();
115basis_P0_e<T>::evaluate (
116 const point_basic<T>& hat_x,
117 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
124basis_P0_e<T>::grad_evaluate (
125 const point_basic<T>& hat_x,
126 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
133basis_P0_e<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
136 x[0] = point_basic<T>(5.0000000000000000e-01);
140basis_P0_t<T>::evaluate (
141 const point_basic<T>& hat_x,
142 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
149basis_P0_t<T>::grad_evaluate (
150 const point_basic<T>& hat_x,
151 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
159basis_P0_t<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
162 x[0] = point_basic<T>((1.0/3.0), (1.0/3.0));
166basis_P0_q<T>::evaluate (
167 const point_basic<T>& hat_x,
168 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
175basis_P0_q<T>::grad_evaluate (
176 const point_basic<T>& hat_x,
177 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
185basis_P0_q<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
188 x[0] = point_basic<T>(0.0, 0.0);
192basis_P0_T<T>::evaluate (
193 const point_basic<T>& hat_x,
194 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
201basis_P0_T<T>::grad_evaluate (
202 const point_basic<T>& hat_x,
203 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
212basis_P0_T<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
215 x[0] = point_basic<T>(2.5000000000000000e-01, 2.5000000000000000e-01, 2.5000000000000000e-01);
219basis_P0_P<T>::evaluate (
220 const point_basic<T>& hat_x,
221 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
228basis_P0_P<T>::grad_evaluate (
229 const point_basic<T>& hat_x,
230 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
239basis_P0_P<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
242 x[0] = point_basic<T>((1.0/3.0), (1.0/3.0), 0.0);
246basis_P0_H<T>::evaluate (
247 const point_basic<T>& hat_x,
248 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
255basis_P0_H<T>::grad_evaluate (
256 const point_basic<T>& hat_x,
257 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values)
266basis_P0_H<T>::hat_node (Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x)
269 x[0] = point_basic<T>(0.0, 0.0, 0.0);
275 base::_sopt.set_continuous(
false);
295 Eigen::Matrix<T,Eigen::Dynamic,1>& values)
const
299 return basis_P0_p<T>::evaluate (hat_x, values);
302 return basis_P0_e<T>::evaluate (hat_x, values);
305 return basis_P0_t<T>::evaluate (hat_x, values);
308 return basis_P0_q<T>::evaluate (hat_x, values);
311 return basis_P0_T<T>::evaluate (hat_x, values);
314 return basis_P0_P<T>::evaluate (hat_x, values);
317 return basis_P0_H<T>::evaluate (hat_x, values);
320 error_macro (
"evaluate: unsupported `" << hat_K.
name() <<
"' element type");
333 return basis_P0_p<T>::grad_evaluate (hat_x, values);
336 return basis_P0_e<T>::grad_evaluate (hat_x, values);
339 return basis_P0_t<T>::grad_evaluate (hat_x, values);
342 return basis_P0_q<T>::grad_evaluate (hat_x, values);
345 return basis_P0_T<T>::grad_evaluate (hat_x, values);
348 return basis_P0_P<T>::grad_evaluate (hat_x, values);
351 return basis_P0_H<T>::grad_evaluate (hat_x, values);
354 error_macro (
"grad_evaluate: unsupported `" << hat_K.
name() <<
"' element type");
362 const Eigen::Matrix<T,Eigen::Dynamic,1>& f_xnod,
363 Eigen::Matrix<T,Eigen::Dynamic,1>& dof)
const
373 base::is_continuous(),
374 base::_ndof_on_subgeo_internal,
375 base::_ndof_on_subgeo,
376 base::_nnod_on_subgeo_internal,
377 base::_nnod_on_subgeo,
378 base::_first_idof_by_dimension_internal,
379 base::_first_idof_by_dimension,
380 base::_first_inod_by_dimension_internal,
381 base::_first_inod_by_dimension);
390 return basis_P0_p<T>::hat_node (_hat_node[hat_K.
variant()]);
393 return basis_P0_e<T>::hat_node (_hat_node[hat_K.
variant()]);
396 return basis_P0_t<T>::hat_node (_hat_node[hat_K.
variant()]);
399 return basis_P0_q<T>::hat_node (_hat_node[hat_K.
variant()]);
402 return basis_P0_T<T>::hat_node (_hat_node[hat_K.
variant()]);
405 return basis_P0_P<T>::hat_node (_hat_node[hat_K.
variant()]);
408 return basis_P0_H<T>::hat_node (_hat_node[hat_K.
variant()]);
411 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
static void initialize_local_first(size_type k, bool is_continuous, std::array< std::array< size_type, reference_element::max_variant >, 4 > &ndof_on_subgeo_internal, std::array< std::array< size_type, reference_element::max_variant >, 4 > &ndof_on_subgeo, std::array< std::array< size_type, reference_element::max_variant >, 4 > &nnod_on_subgeo_internal, std::array< std::array< size_type, reference_element::max_variant >, 4 > &nnod_on_subgeo, std::array< std::array< size_type, 5 >, reference_element::max_variant > &first_idof_by_dimension_internal, std::array< std::array< size_type, 5 >, reference_element::max_variant > &first_idof_by_dimension, std::array< std::array< size_type, 5 >, reference_element::max_variant > &first_inod_by_dimension_internal, std::array< std::array< size_type, 5 >, reference_element::max_variant > &first_inod_by_dimension)
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
static const variant_type e
static const variant_type p
variant_type variant() const
static const variant_type T
static const variant_type P
static const variant_type t
#define error_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