41 if ((
name.length()) > 0 && (
name[0] ==
'D')) {
44 }
else if (
name.length() > 0) {
45 error_macro (
"invalid polynomial name `"<<
name<<
"' for the Dk raw polynomial set");
61 build_inod2ideg (hat_K, base::_degree, _inod2ideg[hat_K.
variant()]);
70 Eigen::Matrix<T,Eigen::Dynamic,1>&
value)
const
72 base::_initialize_guard (hat_K);
73 eval_dubiner_basis (hat_x, hat_K, base::_degree, _inod2ideg[hat_K.
variant()],
value);
82 base::_initialize_guard (hat_K);
83 std::vector<ad3_basic<T> >& value_ad = _value_ad [hat_K.
variant()];
85 eval_dubiner_basis (hat_x_ad, hat_K, base::_degree, _inod2ideg[hat_K.
variant()], value_ad);
86 size_t loc_ndof = value_ad.size();
87 value.resize(loc_ndof);
88 for (
size_t loc_idof = 0; loc_idof < loc_ndof; loc_idof++) {
89 value[loc_idof] = value_ad[loc_idof].grad();
95 #define _RHEOLEF_instanciation(T) \
96 template class basis_raw_dubiner<T>;
see the Float page for the full documentation
basis_raw_dubiner(std::string name)
base::size_type size_type
void evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &value) const
void grad_evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &value) const
size_type ndof(reference_element hat_K) const
void _initialize(reference_element hat_K) const
see the reference_element page for the full documentation
variant_type variant() const
static size_type n_node(variant_type variant, size_type order)
#define error_macro(message)
size_type ndof(const basis_basic< T > &b, const geo_size &gs, size_type map_dim)
This file is part of Rheolef.
_RHEOLEF_instanciation(Float, sequential, std::allocator< Float >) _RHEOLEF_instanciation(Float