diff --git a/ProcessLib/SmallDeformation/CreateLocalAssemblers.h b/ProcessLib/SmallDeformation/CreateLocalAssemblers.h index efeb85943ba80af7017227e2f348385009f27776..6f048c54b5bdb14d087d9fe5bf84deb28655244e 100644 --- a/ProcessLib/SmallDeformation/CreateLocalAssemblers.h +++ b/ProcessLib/SmallDeformation/CreateLocalAssemblers.h @@ -23,8 +23,7 @@ namespace SmallDeformation namespace detail { template <unsigned GlobalDim, int DisplacementDim, - template <typename, typename, unsigned, int> - class LocalAssemblerImplementation, + template <typename, typename, int> class LocalAssemblerImplementation, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, @@ -66,8 +65,7 @@ void createLocalAssemblers( * Therefore they always have to be provided manually. */ template <int DisplacementDim, - template <typename, typename, unsigned, int> - class LocalAssemblerImplementation, + template <typename, typename, int> class LocalAssemblerImplementation, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( const unsigned dimension, diff --git a/ProcessLib/SmallDeformation/LocalDataInitializer.h b/ProcessLib/SmallDeformation/LocalDataInitializer.h index ee730dce4b7479b2876ac884e4b21f9fdff67216..baefa052d0f23a52d445899f60ad6c84a05a4690 100644 --- a/ProcessLib/SmallDeformation/LocalDataInitializer.h +++ b/ProcessLib/SmallDeformation/LocalDataInitializer.h @@ -110,7 +110,8 @@ namespace ProcessLib /// For example for MeshLib::Quad a local assembler data with template argument /// NumLib::ShapeQuad4 is created. template <typename LocalAssemblerInterface, - template <typename, typename, unsigned, int> class LocalAssemblerData, + template <typename, typename, int> + class SmallDeformationLocalAssembler, unsigned GlobalDim, int DisplacementDim, typename... ConstructorArgs> class LocalDataInitializer final { @@ -245,9 +246,8 @@ private: typename ShapeFunction::MeshElement>::IntegrationMethod; template <typename ShapeFunction> - using LAData = - LocalAssemblerData<ShapeFunction, IntegrationMethod<ShapeFunction>, - GlobalDim, DisplacementDim>; + using LAData = SmallDeformationLocalAssembler< + ShapeFunction, IntegrationMethod<ShapeFunction>, DisplacementDim>; /// A helper forwarding to the correct version of makeLocalAssemblerBuilder /// depending whether the global dimension is less than the shape function's diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h index 3e22ead64f00de4addc1866391b08d23b85e762d..1ddad16f816b2e012217084111436422be9bf9d8 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h +++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h @@ -365,29 +365,5 @@ private: bool const _is_axially_symmetric; }; -template <typename ShapeFunction, typename IntegrationMethod, - unsigned GlobalDim, int DisplacementDim> -class LocalAssemblerData final - : public SmallDeformationLocalAssembler<ShapeFunction, IntegrationMethod, - DisplacementDim> -{ -public: - LocalAssemblerData(LocalAssemblerData const&) = delete; - LocalAssemblerData(LocalAssemblerData&&) = delete; - - LocalAssemblerData( - MeshLib::Element const& e, - std::size_t const local_matrix_size, - bool is_axially_symmetric, - unsigned const integration_order, - SmallDeformationProcessData<DisplacementDim>& process_data) - : SmallDeformationLocalAssembler<ShapeFunction, IntegrationMethod, - DisplacementDim>( - e, local_matrix_size, is_axially_symmetric, integration_order, - process_data) - { - } -}; - } // namespace SmallDeformation } // namespace ProcessLib diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h b/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h index 63ca0f4aec4b7c231787d234f66e7d7320b0a34c..bf943873ed9b03675608042f133afba1859dd27b 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess-impl.h @@ -51,8 +51,8 @@ void SmallDeformationProcess<DisplacementDim>::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - ProcessLib::SmallDeformation::createLocalAssemblers<DisplacementDim, - LocalAssemblerData>( + ProcessLib::SmallDeformation::createLocalAssemblers< + DisplacementDim, SmallDeformationLocalAssembler>( mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, mesh.isAxiallySymmetric(), integration_order, _process_data);