OGS
NumLib::ShapeMatrixCache Class Reference

Detailed Description

Definition at line 44 of file ShapeMatrixCache.h.

#include <ShapeMatrixCache.h>

Public Types

template<typename MeshElement >
using ShapeFunctionHigherOrder
 
template<typename MeshElement >
using ShapeFunctionLowerOrder
 

Public Member Functions

 ShapeMatrixCache (unsigned const integration_order)
 
template<typename MeshElement >
auto const & NsHigherOrder () const
 
template<typename MeshElement >
auto const & NsLowerOrder () const
 

Static Public Member Functions

static constexpr std::size_t size ()
 

Private Types

using ETLs = NumLib::AllElementTraitsLagrange
 
using MeshElements
 
using ShapeFunctionsHigherOrder
 
using ShapeMatrixPoliciesHigherOrder
 
using ShapeMatricesHigherOrder_N
 
using ShapeMatrixVectorsHigherOrder_N
 
using ShapeFunctionsLowerOrder
 
using ShapeMatrixPoliciesLowerOrder
 
using ShapeMatricesLowerOrder_N
 
using ShapeMatrixVectorsLowerOrder_N
 

Private Attributes

ShapeMatrixVectorsHigherOrder_N Nss_higher_order_
 
ShapeMatrixVectorsLowerOrder_N Nss_lower_order_
 

Member Typedef Documentation

◆ ETLs

◆ MeshElements

Initial value:
boost::mp11::mp_transform<detail::GetMeshElement, ETLs>

Definition at line 48 of file ShapeMatrixCache.h.

◆ ShapeFunctionHigherOrder

template<typename MeshElement >
using NumLib::ShapeMatrixCache::ShapeFunctionHigherOrder
Initial value:
boost::mp11::mp_at<ShapeFunctionsHigherOrder,
boost::mp11::mp_find<MeshElements, MeshElement>>
boost::mp11::mp_transform< detail::GetShapeFunctionHigherOrder, ETLs > ShapeFunctionsHigherOrder

Definition at line 120 of file ShapeMatrixCache.h.

◆ ShapeFunctionLowerOrder

template<typename MeshElement >
using NumLib::ShapeMatrixCache::ShapeFunctionLowerOrder
Initial value:
boost::mp11::mp_at<ShapeFunctionsLowerOrder,
boost::mp11::mp_find<MeshElements, MeshElement>>
boost::mp11::mp_transform< detail::GetShapeFunctionLowerOrder, ETLs > ShapeFunctionsLowerOrder

Definition at line 125 of file ShapeMatrixCache.h.

◆ ShapeFunctionsHigherOrder

Initial value:
boost::mp11::mp_transform<detail::GetShapeFunctionHigherOrder, ETLs>

Definition at line 53 of file ShapeMatrixCache.h.

◆ ShapeFunctionsLowerOrder

Initial value:
boost::mp11::mp_transform<detail::GetShapeFunctionLowerOrder, ETLs>

Definition at line 75 of file ShapeMatrixCache.h.

◆ ShapeMatricesHigherOrder_N

Initial value:
boost::mp11::mp_transform<detail::GetShapeMatrix_N,
boost::mp11::mp_transform< detail::GetShapeMatrixPolicy, ShapeFunctionsHigherOrder > ShapeMatrixPoliciesHigherOrder
typename ShapeMatrixPolicy::ShapeMatrices::ShapeType GetShapeMatrix_N

Definition at line 58 of file ShapeMatrixCache.h.

◆ ShapeMatricesLowerOrder_N

Initial value:
boost::mp11::mp_transform<detail::GetShapeMatrix_N,
boost::mp11::mp_transform< detail::GetShapeMatrixPolicy, ShapeFunctionsLowerOrder > ShapeMatrixPoliciesLowerOrder

Definition at line 80 of file ShapeMatrixCache.h.

◆ ShapeMatrixPoliciesHigherOrder

Initial value:
boost::mp11::mp_transform<detail::GetShapeMatrixPolicy,
ShapeMatrixPolicyType< ShapeFunction, 3 > GetShapeMatrixPolicy

Definition at line 55 of file ShapeMatrixCache.h.

◆ ShapeMatrixPoliciesLowerOrder

Initial value:

Definition at line 77 of file ShapeMatrixCache.h.

◆ ShapeMatrixVectorsHigherOrder_N

Initial value:
boost::mp11::mp_transform<std::vector, ShapeMatricesHigherOrder_N>

Definition at line 63 of file ShapeMatrixCache.h.

◆ ShapeMatrixVectorsLowerOrder_N

Initial value:
boost::mp11::mp_transform<std::vector, ShapeMatricesLowerOrder_N>

Definition at line 85 of file ShapeMatrixCache.h.

Constructor & Destructor Documentation

◆ ShapeMatrixCache()

NumLib::ShapeMatrixCache::ShapeMatrixCache ( unsigned const integration_order)
explicit

Definition at line 57 of file ShapeMatrixCache.cpp.

58{
59 using namespace boost::mp11;
60 using Indices = mp_iota<mp_size<ETLs>>;
61
62 mp_for_each<Indices>(
63 [this, integration_order](auto index)
64 {
65 using ETL = mp_at_c<ETLs, index>;
67 detail::GetShapeFunctionHigherOrder<ETL>;
68
69 std::get<index.value>(Nss_higher_order_) = ::initShapeMatrices(
70 integration_order, mp_identity<ShapeFunctionHigherOrder>{});
71
73 detail::GetShapeFunctionLowerOrder<ETL>;
74
75 std::get<index.value>(Nss_lower_order_) = ::initShapeMatrices(
76 integration_order, mp_identity<ShapeFunctionLowerOrder>{});
77 });
78}
boost::mp11::mp_at< ShapeFunctionsLowerOrder, boost::mp11::mp_find< MeshElements, MeshElement > > ShapeFunctionLowerOrder
boost::mp11::mp_at< ShapeFunctionsHigherOrder, boost::mp11::mp_find< MeshElements, MeshElement > > ShapeFunctionHigherOrder
ShapeMatrixVectorsLowerOrder_N Nss_lower_order_
ShapeMatrixVectorsHigherOrder_N Nss_higher_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::initShapeMatrices(), Nss_higher_order_, and Nss_lower_order_.

Member Function Documentation

◆ NsHigherOrder()

template<typename MeshElement >
auto const & NumLib::ShapeMatrixCache::NsHigherOrder ( ) const
inline

Definition at line 99 of file ShapeMatrixCache.h.

100 {
101 using Index = boost::mp11::mp_find<MeshElements, MeshElement>;
102 return std::get<Index::value>(Nss_higher_order_);
103 }

References Nss_higher_order_.

Referenced by NumLib::detail::assembleAdvectionMatrix(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleBlockMatrices(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHeatTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleHydraulicEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleKCmCn(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleReactionEquationConcrete(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianComponentTransportEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::assembleWithJacobianHydraulicEquation(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::calculateIntPtDarcyVelocity(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getIntPtDarcyVelocityLocal(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getIntPtMolarFlux(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::getShapeMatrix(), ProcessLib::HT::HTFEM< ShapeFunction, GlobalDim >::getShapeMatrix(), ProcessLib::LiquidFlow::LiquidFlowLocalAssembler< ShapeFunction, GlobalDim >::getShapeMatrix(), ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::initializeChemicalSystemConcrete(), interpolateElementCoords(), and ProcessLib::ComponentTransport::LocalAssemblerData< ShapeFunction, GlobalDim >::setChemicalSystemConcrete().

◆ NsLowerOrder()

template<typename MeshElement >
auto const & NumLib::ShapeMatrixCache::NsLowerOrder ( ) const
inline

Definition at line 106 of file ShapeMatrixCache.h.

107 {
108 using Index = boost::mp11::mp_find<MeshElements, MeshElement>;
109 return std::get<Index::value>(Nss_lower_order_);
110 }

References Nss_lower_order_.

◆ size()

static constexpr std::size_t NumLib::ShapeMatrixCache::size ( )
inlinestaticconstexpr

Returns the number of elements in the ShapeMatrixVectorsHigherOrder_N tuple.

Definition at line 114 of file ShapeMatrixCache.h.

115 {
116 return boost::mp11::mp_size<ETLs>::value;
117 }

Member Data Documentation

◆ Nss_higher_order_

ShapeMatrixVectorsHigherOrder_N NumLib::ShapeMatrixCache::Nss_higher_order_
private

Definition at line 130 of file ShapeMatrixCache.h.

Referenced by ShapeMatrixCache(), and NsHigherOrder().

◆ Nss_lower_order_

ShapeMatrixVectorsLowerOrder_N NumLib::ShapeMatrixCache::Nss_lower_order_
private

Definition at line 131 of file ShapeMatrixCache.h.

Referenced by ShapeMatrixCache(), and NsLowerOrder().


The documentation for this class was generated from the following files: