33 int const local_node_id,
36 std::vector<IpData, Eigen::aligned_allocator<IpData>>
const& ip_data,
37 const bool is_axially_symmetric)
39 Eigen::Vector3d bar_gradN = Eigen::Vector3d::Zero();
40 unsigned const n_integration_points =
42 assert(n_integration_points == ip_data.size());
43 for (
unsigned ip = 0; ip < n_integration_points; ip++)
45 auto const&
N = ip_data[ip].N_u;
46 auto const& dNdx = ip_data[ip].dNdx_u;
48 auto const dNidx = dNdx.col(local_node_id);
50 auto const& w = ip_data[ip].integration_weight;
51 bar_gradN.template segment<DisplacementDim>(0) += dNidx * w;
53 if (is_axially_symmetric)
57 ShapeMatricesType>(element,
N);
58 bar_gradN[2] += w *
N(local_node_id) / x_coord;
Eigen::Vector3d averageGradShapeFunction(int const local_node_id, MeshLib::Element const &element, NumLib::GenericIntegrationMethod const &integration_method, std::vector< IpData, Eigen::aligned_allocator< IpData > > const &ip_data, const bool is_axially_symmetric)