41 int const local_node_id,
44 std::vector<IpData, Eigen::aligned_allocator<IpData>>
const& ip_data,
45 const bool is_axially_symmetric)
47 Eigen::Vector3d bar_gradN = Eigen::Vector3d::Zero();
48 unsigned const n_integration_points =
50 assert(n_integration_points == ip_data.size());
51 for (
unsigned ip = 0; ip < n_integration_points; ip++)
53 auto const&
N = ip_data[ip].N_u;
54 auto const& dNdx = ip_data[ip].dNdx_u;
56 auto const dNidx = dNdx.col(local_node_id);
58 auto const& w = ip_data[ip].integration_weight;
59 bar_gradN.template segment<DisplacementDim>(0) += dNidx * w;
61 if (is_axially_symmetric)
65 ShapeMatricesType>(element,
N);
66 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)