63 if (_last_visited_geo [hat_K.
variant()] == omega_K.name() &&
67 _last_visited_geo [hat_K.
variant()] = omega_K.name();
71 Eigen::Matrix<piola<T>,Eigen::Dynamic,1>&
piola = _piola [hat_K.
variant()];
72 Eigen::Matrix<T,Eigen::Dynamic,1>& weight = _weight [hat_K.
variant()];
74 const Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>&
75 s_phij_xi = _bops.template evaluate<T> (hat_K);
76 const Eigen::Matrix<point_basic<T>,Eigen::Dynamic,Eigen::Dynamic>&
77 grad_phij_xi = _bops.template grad_evaluate<point_basic<T>> (hat_K);
85 piola .resize (loc_nnod);
86 for (
size_type loc_inod = 0; loc_inod < loc_nnod; ++loc_inod) {
94 omega_K.dis_inod (K, _dis_inod_K);
95 for (
size_type loc_jdof = 0; loc_jdof < loc_ndof; ++loc_jdof) {
97 const point_basic<T>& xjnod = omega_K.dis_node (_dis_inod_K[loc_jdof]);
98 for (
size_type loc_inod = 0; loc_inod < loc_nnod; ++loc_inod) {
100 for (
size_type alpha = 0; alpha <
d; alpha++) {
101 piola[loc_inod].
F[alpha] += s_phij_xi (loc_inod,loc_jdof)*xjnod[alpha];
107 if (map_d > 0 && map_d + 1 ==
d) {
113 for (
size_type loc_inod = 0; loc_inod < loc_nnod; ++loc_inod) {
118 if (!_bops.has_quadrature())
return;
119 weight.resize (loc_nnod);
122 for (
size_type loc_inod = 0; loc_inod < loc_nnod; ++loc_inod) {
123 T weight_q = quad (hat_K, loc_inod).w;
124 weight[loc_inod] =
piola[loc_inod].
detDF*weight_q;
126 weight[loc_inod] *=
piola[loc_inod].
F [i_comp_axi];