19 GMatrixType& g_matrix,
20 const bool is_axially_symmetric,
24 static_assert(0 < DisplacementDim && DisplacementDim <= 3,
25 "LinearGMatrix::computeGMatrix: DisplacementDim must be in "
30 switch (DisplacementDim)
37 for (
int i = 0; i < NPOINTS; ++i)
39 auto G_col0 = g_matrix.col(i);
40 auto G_col1 = g_matrix.col(i + NPOINTS);
41 auto G_col2 = g_matrix.col(i + 2 * NPOINTS);
42 auto const dNidx = dNdx.col(i);
44 G_col0.template segment<DisplacementDim>(0).noalias() = dNidx;
45 G_col1.template segment<DisplacementDim>(DisplacementDim)
47 G_col2.template segment<DisplacementDim>(2 * DisplacementDim)
57 for (
int i = 0; i < NPOINTS; ++i)
59 auto G_col0 = g_matrix.col(i);
60 auto G_col1 = g_matrix.col(i + NPOINTS);
61 auto const dNidx = dNdx.col(i);
63 G_col0.template segment<DisplacementDim>(0).noalias() = dNidx;
64 G_col1.template segment<DisplacementDim>(DisplacementDim)
67 if (is_axially_symmetric)
69 G_col0[4] = N[i] / radius;