20template <
typename ShapeFunction,
typename ShapeMatricesType,
int GlobalDim,
22 typename PointContainer>
23std::vector<
typename ShapeMatricesType::ShapeMatrices,
24 Eigen::aligned_allocator<typename ShapeMatricesType::ShapeMatrices>>
26 PointContainer
const& points)
29 typename ShapeMatricesType::ShapeMatrices,
30 Eigen::aligned_allocator<typename ShapeMatricesType::ShapeMatrices>>
36 shape_matrices.reserve(points.size());
37 for (
auto const& p : points)
39 shape_matrices.emplace_back(ShapeFunction::DIM, GlobalDim,
40 ShapeFunction::NPOINTS);
41 fe.template computeShapeFunctions<SelectedShapeMatrixType>(
42 p.data(), shape_matrices.back(), GlobalDim, is_axially_symmetric);
45 return shape_matrices;
48template <
typename ShapeFunction,
typename ShapeMatricesType,
int GlobalDim,
50 typename IntegrationMethod>
51std::vector<
typename ShapeMatricesType::ShapeMatrices,
52 Eigen::aligned_allocator<typename ShapeMatricesType::ShapeMatrices>>
54 IntegrationMethod
const& integration_method)
56 int const n_integration_points = integration_method.getNumberOfPoints();
58 std::vector<MathLib::WeightedPoint> points;
59 points.reserve(n_integration_points);
60 for (
int ip = 0; ip < n_integration_points; ++ip)
62 points.push_back(integration_method.getWeightedPoint(ip));
66 SelectedShapeMatrixType>(
67 e, is_axially_symmetric, points);
70template <
typename ShapeFunction,
typename ShapeMatricesType>
73 typename ShapeMatricesType::ShapeMatrices::ShapeType
const&
N)
78 return fe.interpolateZerothCoordinate(
N);
81template <
typename ShapeFunction,
typename ShapeMatricesType>
84 typename ShapeMatricesType::ShapeMatrices::ShapeType
const&
N)
89 return fe.interpolateCoordinates(
N);
Definition of the Element class.
double interpolateXCoordinate(MeshLib::Element const &e, typename ShapeMatricesType::ShapeMatrices::ShapeType const &N)
std::vector< typename ShapeMatricesType::ShapeMatrices, Eigen::aligned_allocator< typename ShapeMatricesType::ShapeMatrices > > initShapeMatrices(MeshLib::Element const &e, bool const is_axially_symmetric, IntegrationMethod const &integration_method)
std::vector< typename ShapeMatricesType::ShapeMatrices, Eigen::aligned_allocator< typename ShapeMatricesType::ShapeMatrices > > computeShapeMatrices(MeshLib::Element const &e, bool const is_axially_symmetric, PointContainer const &points)
ShapeMatrixType
Shape matrix type to be calculated.
std::array< double, 3 > interpolateCoordinates(MeshLib::Element const &e, typename ShapeMatricesType::ShapeMatrices::ShapeType const &N)
NumLib::TemplateIsoparametric< ShapeFunction, ShapeMatricesType > createIsoparametricFiniteElement(MeshLib::Element const &e)