OGS
anonymous_namespace{ShapeMatrixCache.cpp} Namespace Reference

Functions

template<typename ShapeFunction >
static auto initShapeMatrices (unsigned const integration_order, boost::mp11::mp_identity< ShapeFunction >)
 

Function Documentation

◆ initShapeMatrices()

template<typename ShapeFunction >
static auto anonymous_namespace{ShapeMatrixCache.cpp}::initShapeMatrices ( unsigned const integration_order,
boost::mp11::mp_identity< ShapeFunction >  )
static

Definition at line 21 of file ShapeMatrixCache.cpp.

23{
24 using namespace boost::mp11;
25
26 using MeshElement = typename ShapeFunction::MeshElement;
27
28 auto const& integration_method =
30 NumLib::IntegrationOrder{integration_order});
31
32 using ShapeMatrixPolicy =
34
35 // The reference element will be used as dummy argument below. That's
36 // sufficient, since we only want to compute the shape matrix N.
38
39 // dim does not matter, here.
40 constexpr int dim = 3;
41 auto sms = NumLib::initShapeMatrices<ShapeFunction,
42 ShapeMatrixPolicy,
43 dim,
45 reference_element.element,
46 false /*is_axially_symmetric*/,
47 integration_method);
48
49 return sms |
50 ranges::views::transform([](auto& sm) { return std::move(sm.N); }) |
51 ranges::to<std::vector>;
52}
MeshElementType const element
GenericIntegrationMethod const & getIntegrationMethod(std::type_index const mesh_element_type, IntegrationOrder const order)
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)

References NumLib::ReferenceElement< MeshElementType >::element, NumLib::IntegrationMethodRegistry::getIntegrationMethod(), NumLib::initShapeMatrices(), and NumLib::N.