50 constexpr int space_dim = 3;
54 auto const& integration_method =
55 NumLib::IntegrationMethodRegistry::template getIntegrationMethod<
58 auto const shape_function_data =
59 NumLib::initShapeMatrices<ShapeFunction, ShapeMatricesType, space_dim>(
60 e,
false , integration_method);
62 auto const n_integration_points = integration_method.getNumberOfPoints();
64 for (
unsigned ip = 0; ip < n_integration_points; ++ip)
66 auto const weight = integration_method.getWeightedPoint(ip).getWeight();
67 volume += shape_function_data[ip].detJ * weight;
78 return computeElementVolumeNumerically<NumLib::ShapeLine2>(e);
80 return computeElementVolumeNumerically<NumLib::ShapeLine3>(e);
82 return computeElementVolumeNumerically<NumLib::ShapeTri3>(e);
84 return computeElementVolumeNumerically<NumLib::ShapeTri6>(e);
86 return computeElementVolumeNumerically<NumLib::ShapeQuad4>(e);
88 return computeElementVolumeNumerically<NumLib::ShapeQuad8>(e);
90 return computeElementVolumeNumerically<NumLib::ShapeQuad9>(e);
92 return computeElementVolumeNumerically<NumLib::ShapeTet4>(e);
94 return computeElementVolumeNumerically<NumLib::ShapeHex8>(e);
96 return computeElementVolumeNumerically<NumLib::ShapeHex20>(e);
98 return computeElementVolumeNumerically<NumLib::ShapeTet10>(e);
100 return computeElementVolumeNumerically<NumLib::ShapePrism6>(e);
102 return computeElementVolumeNumerically<NumLib::ShapePrism15>(e);
104 return computeElementVolumeNumerically<NumLib::ShapePyra5>(e);
106 return computeElementVolumeNumerically<NumLib::ShapePyra13>(e);
109 "Numerical volume calculation is not available for element "