OGS
|
The LocalDataInitializer is a functor creating a local assembler data with corresponding to the mesh element type shape functions and calling initialization of the new local assembler data. For example for MeshLib::Quad a local assembler data with template argument NumLib::ShapeQuad4 is created.
Definition at line 42 of file LocalDataInitializer.h.
#include <LocalDataInitializer.h>
Classes | |
struct | IsElementEnabled |
Public Types | |
using | LADataIntfPtr = std::unique_ptr<LocalAssemblerInterface> |
Public Member Functions | |
LocalDataInitializer (NumLib::LocalToGlobalIndexMap const &dof_table, NumLib::IntegrationOrder const integration_order) | |
LADataIntfPtr | operator() (std::size_t const id, MeshLib::Element const &mesh_item, ConstructorArgs &&... args) const |
Private Types | |
using | LADataBuilder |
Static Private Member Functions | |
template<typename ShapeFunction > | |
static LADataBuilder | makeLocalAssemblerBuilder (NumLib::IntegrationOrder const integration_order) |
Private Attributes | |
std::unordered_map< std::type_index, LADataBuilder > | _builder |
Mapping of element types to local assembler constructors. | |
NumLib::LocalToGlobalIndexMap const & | _dof_table |
|
private |
Definition at line 149 of file LocalDataInitializer.h.
using ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::LADataIntfPtr = std::unique_ptr<LocalAssemblerInterface> |
Definition at line 60 of file LocalDataInitializer.h.
|
inlineexplicit |
Definition at line 62 of file LocalDataInitializer.h.
References ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::_builder, BaseLib::TMP::filter(), BaseLib::TMP::foreach(), and ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::makeLocalAssemblerBuilder().
|
inlinestaticprivate |
Generates a function that creates a new LocalAssembler of type LAData<ShapeFunction>. Only functions with shape function's dimension less or equal to the global dimension are instantiated, e.g. following combinations of shape functions and global dimensions: (Line2, 1), (Line2, 2), (Line2, 3), (Hex20, 3) but not (Hex20, 2) or (Hex20, 1).
Definition at line 162 of file LocalDataInitializer.h.
References MeshLib::Element::getDimension().
|
inline |
Returns data pointer to the newly created local assembler data.
id
is not necessarily the mesh item's id. Especially when having multiple meshes it will differ from the latter. Definition at line 90 of file LocalDataInitializer.h.
References ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::_builder, ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::_dof_table, MeshLib::Element::getDimension(), NumLib::LocalToGlobalIndexMap::getElementVariableIDs(), NumLib::LocalToGlobalIndexMap::getGlobalIndex(), MeshLib::MeshSubset::getMeshID(), NumLib::LocalToGlobalIndexMap::getMeshSubset(), NumLib::LocalToGlobalIndexMap::getNumberOfElementComponents(), NumLib::LocalToGlobalIndexMap::getNumberOfElementDOF(), MeshLib::Element::getNumberOfNodes(), NumLib::LocalToGlobalIndexMap::getNumberOfVariableComponents(), MeshLib::Node, NumLib::MeshComponentMap::nop, and OGS_FATAL.
|
private |
Mapping of element types to local assembler constructors.
Definition at line 202 of file LocalDataInitializer.h.
Referenced by ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::LocalDataInitializer(), and ProcessLib::LIE::SmallDeformation::LocalDataInitializer< LocalAssemblerInterface, LocalAssemblerDataMatrix, LocalAssemblerDataMatrixNearFracture, LocalAssemblerDataFracture, GlobalDim, ConstructorArgs >::operator()().
|
private |