From b1882cc06fc4ef6bc414691369d14d7475087cd7 Mon Sep 17 00:00:00 2001 From: Christoph Lehmann <christoph.lehmann@ufz.de> Date: Wed, 3 Nov 2021 17:25:42 +0100 Subject: [PATCH] [PL] Remove shape fct order arg for HM --- ProcessLib/HydroMechanics/CreateLocalAssemblers.h | 6 ++---- ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp | 11 ++--------- .../RichardsMechanics/CreateLocalAssemblers.h | 6 ++---- .../RichardsMechanics/RichardsMechanicsProcess.cpp | 11 ++--------- ProcessLib/TH2M/CreateLocalAssemblers.h | 6 ++---- ProcessLib/TH2M/TH2MProcess.cpp | 13 ++----------- .../ThermoHydroMechanics/CreateLocalAssemblers.h | 6 ++---- .../ThermoHydroMechanicsProcess.cpp | 11 ++--------- .../ThermoRichardsMechanics/CreateLocalAssemblers.h | 6 ++---- .../ThermoRichardsMechanicsProcess.cpp | 13 ++----------- ProcessLib/Utils/LocalDataInitializerHM.h | 4 ++-- 11 files changed, 22 insertions(+), 71 deletions(-) diff --git a/ProcessLib/HydroMechanics/CreateLocalAssemblers.h b/ProcessLib/HydroMechanics/CreateLocalAssemblers.h index bc64eb1a29b..ddbb5937fbd 100644 --- a/ProcessLib/HydroMechanics/CreateLocalAssemblers.h +++ b/ProcessLib/HydroMechanics/CreateLocalAssemblers.h @@ -27,7 +27,6 @@ template <int GlobalDim, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<MeshLib::Element*> const& mesh_elements, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) @@ -42,7 +41,7 @@ void createLocalAssemblers( // Populate the vector of local assemblers. local_assemblers.resize(mesh_elements.size()); - LocalDataInitializer initializer(dof_table, shapefunction_order); + LocalDataInitializer initializer(dof_table); DBUG("Calling local assembler builder for all mesh elements."); GlobalExecutor::transformDereferenced( @@ -71,14 +70,13 @@ void createLocalAssemblers( const unsigned /*dimension*/, std::vector<MeshLib::Element*> const& mesh_elements, NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) { DBUG("Create local assemblers."); detail::createLocalAssemblers<GlobalDim, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); } } // namespace HydroMechanics diff --git a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp index f0c5fca86c4..6fd72cd1622 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp +++ b/ProcessLib/HydroMechanics/HydroMechanicsProcess.cpp @@ -169,17 +169,10 @@ void HydroMechanicsProcess<DisplacementDim>::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int mechanical_process_id = _use_monolithic_scheme ? 0 : 1; - const int deformation_variable_id = _use_monolithic_scheme ? 1 : 0; ProcessLib::HydroMechanics::createLocalAssemblers< DisplacementDim, HydroMechanicsLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - // use displacement process variable to set shape function order - getProcessVariables(mechanical_process_id)[deformation_variable_id] - .get() - .getShapeFunctionOrder(), - _local_assemblers, mesh.isAxiallySymmetric(), integration_order, - _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); auto add_secondary_variable = [&](std::string const& name, int const num_components, diff --git a/ProcessLib/RichardsMechanics/CreateLocalAssemblers.h b/ProcessLib/RichardsMechanics/CreateLocalAssemblers.h index ab48a3c6d85..a2d563ee488 100644 --- a/ProcessLib/RichardsMechanics/CreateLocalAssemblers.h +++ b/ProcessLib/RichardsMechanics/CreateLocalAssemblers.h @@ -27,7 +27,6 @@ template <int GlobalDim, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<MeshLib::Element*> const& mesh_elements, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) @@ -42,7 +41,7 @@ void createLocalAssemblers( // Populate the vector of local assemblers. local_assemblers.resize(mesh_elements.size()); - LocalDataInitializer initializer(dof_table, shapefunction_order); + LocalDataInitializer initializer(dof_table); DBUG("Calling local assembler builder for all mesh elements."); GlobalExecutor::transformDereferenced( @@ -71,14 +70,13 @@ void createLocalAssemblers( const unsigned /*dimension*/, std::vector<MeshLib::Element*> const& mesh_elements, NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) { DBUG("Create local assemblers."); detail::createLocalAssemblers<GlobalDim, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); } } // namespace RichardsMechanics diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp index 6c3df82fd1c..b017276892c 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsProcess.cpp @@ -196,17 +196,10 @@ void RichardsMechanicsProcess<DisplacementDim>::initializeConcreteProcess( { using nlohmann::json; - const int mechanical_process_id = _use_monolithic_scheme ? 0 : 1; - const int deformation_variable_id = _use_monolithic_scheme ? 1 : 0; ProcessLib::RichardsMechanics::createLocalAssemblers< DisplacementDim, RichardsMechanicsLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - // use displacement process variable to set shape function order - getProcessVariables(mechanical_process_id)[deformation_variable_id] - .get() - .getShapeFunctionOrder(), - _local_assemblers, mesh.isAxiallySymmetric(), integration_order, - _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); auto add_secondary_variable = [&](std::string const& name, int const num_components, diff --git a/ProcessLib/TH2M/CreateLocalAssemblers.h b/ProcessLib/TH2M/CreateLocalAssemblers.h index 5bf48de9e09..508d863d2dc 100644 --- a/ProcessLib/TH2M/CreateLocalAssemblers.h +++ b/ProcessLib/TH2M/CreateLocalAssemblers.h @@ -27,7 +27,6 @@ template <int GlobalDim, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<MeshLib::Element*> const& mesh_elements, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) @@ -42,7 +41,7 @@ void createLocalAssemblers( // Populate the vector of local assemblers. local_assemblers.resize(mesh_elements.size()); - LocalDataInitializer initializer(dof_table, shapefunction_order); + LocalDataInitializer initializer(dof_table); DBUG("Calling local assembler builder for all mesh elements."); GlobalExecutor::transformDereferenced( @@ -71,14 +70,13 @@ void createLocalAssemblers( const unsigned /*dimension*/, std::vector<MeshLib::Element*> const& mesh_elements, NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) { DBUG("Create local assemblers."); detail::createLocalAssemblers<GlobalDim, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); } } // namespace TH2M diff --git a/ProcessLib/TH2M/TH2MProcess.cpp b/ProcessLib/TH2M/TH2MProcess.cpp index f19be7589cb..5e2e6214e2f 100644 --- a/ProcessLib/TH2M/TH2MProcess.cpp +++ b/ProcessLib/TH2M/TH2MProcess.cpp @@ -158,19 +158,10 @@ void TH2MProcess<DisplacementDim>::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int mechanical_process_id = - _use_monolithic_scheme ? 0 : deformation_process_id; - const int deformation_variable_id = - _use_monolithic_scheme ? deformation_process_id : 0; ProcessLib::TH2M::createLocalAssemblers<DisplacementDim, TH2MLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - // use displacement process variable to set shape function order - getProcessVariables(mechanical_process_id)[deformation_variable_id] - .get() - .getShapeFunctionOrder(), - _local_assemblers, mesh.isAxiallySymmetric(), integration_order, - _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); auto add_secondary_variable = [&](std::string const& name, int const num_components, diff --git a/ProcessLib/ThermoHydroMechanics/CreateLocalAssemblers.h b/ProcessLib/ThermoHydroMechanics/CreateLocalAssemblers.h index c058cb14966..d512d6de635 100644 --- a/ProcessLib/ThermoHydroMechanics/CreateLocalAssemblers.h +++ b/ProcessLib/ThermoHydroMechanics/CreateLocalAssemblers.h @@ -27,7 +27,6 @@ template <int GlobalDim, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<MeshLib::Element*> const& mesh_elements, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) @@ -42,7 +41,7 @@ void createLocalAssemblers( // Populate the vector of local assemblers. local_assemblers.resize(mesh_elements.size()); - LocalDataInitializer initializer(dof_table, shapefunction_order); + LocalDataInitializer initializer(dof_table); DBUG("Calling local assembler builder for all mesh elements."); GlobalExecutor::transformDereferenced( @@ -71,14 +70,13 @@ void createLocalAssemblers( const unsigned /*dimension*/, std::vector<MeshLib::Element*> const& mesh_elements, NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) { DBUG("Create local assemblers."); detail::createLocalAssemblers<GlobalDim, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); } } // namespace ThermoHydroMechanics diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp index c53d6f85291..c943c69f592 100644 --- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp +++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsProcess.cpp @@ -176,17 +176,10 @@ void ThermoHydroMechanicsProcess<DisplacementDim>::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - const int mechanical_process_id = _use_monolithic_scheme ? 0 : 2; - const int deformation_variable_id = _use_monolithic_scheme ? 2 : 0; ProcessLib::ThermoHydroMechanics::createLocalAssemblers< DisplacementDim, ThermoHydroMechanicsLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - // use displacement process variable to set shape function order - getProcessVariables(mechanical_process_id)[deformation_variable_id] - .get() - .getShapeFunctionOrder(), - _local_assemblers, mesh.isAxiallySymmetric(), integration_order, - _process_data); + mesh.getDimension(), mesh.getElements(), dof_table, _local_assemblers, + mesh.isAxiallySymmetric(), integration_order, _process_data); _secondary_variables.addSecondaryVariable( "sigma", diff --git a/ProcessLib/ThermoRichardsMechanics/CreateLocalAssemblers.h b/ProcessLib/ThermoRichardsMechanics/CreateLocalAssemblers.h index 2436605a5c7..ab62ac3bd7f 100644 --- a/ProcessLib/ThermoRichardsMechanics/CreateLocalAssemblers.h +++ b/ProcessLib/ThermoRichardsMechanics/CreateLocalAssemblers.h @@ -25,7 +25,6 @@ template <int GlobalDim, typename LocalAssemblerInterface, typename... ExtraCtorArgs> void createLocalAssemblers( NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<MeshLib::Element*> const& mesh_elements, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) @@ -40,7 +39,7 @@ void createLocalAssemblers( // Populate the vector of local assemblers. local_assemblers.resize(mesh_elements.size()); - LocalDataInitializer initializer(dof_table, shapefunction_order); + LocalDataInitializer initializer(dof_table); DBUG("Calling local assembler builder for all mesh elements."); GlobalExecutor::transformDereferenced( @@ -69,14 +68,13 @@ void createLocalAssemblers( const unsigned /*dimension*/, std::vector<MeshLib::Element*> const& mesh_elements, NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order, std::vector<std::unique_ptr<LocalAssemblerInterface>>& local_assemblers, ExtraCtorArgs&&... extra_ctor_args) { DBUG("Create local assemblers."); detail::createLocalAssemblers<GlobalDim, LocalAssemblerImplementation>( - dof_table, shapefunction_order, mesh_elements, local_assemblers, + dof_table, mesh_elements, local_assemblers, std::forward<ExtraCtorArgs>(extra_ctor_args)...); } } // namespace ProcessLib::ThermoRichardsMechanics diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp index e8943afcbf1..ae630d04834 100644 --- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp +++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcess.cpp @@ -154,19 +154,10 @@ void ThermoRichardsMechanicsProcess<DisplacementDim>::initializeConcreteProcess( MeshLib::Mesh const& mesh, unsigned const integration_order) { - using nlohmann::json; - - const int mechanical_process_id = 0; - const int deformation_variable_id = 2; createLocalAssemblers<DisplacementDim, ThermoRichardsMechanicsLocalAssembler>( - mesh.getDimension(), mesh.getElements(), dof_table, - // use displacement process variable to set shape function order - getProcessVariables(mechanical_process_id)[deformation_variable_id] - .get() - .getShapeFunctionOrder(), - local_assemblers_, mesh.isAxiallySymmetric(), integration_order, - process_data_); + mesh.getDimension(), mesh.getElements(), dof_table, local_assemblers_, + mesh.isAxiallySymmetric(), integration_order, process_data_); auto add_secondary_variable = [&](std::string const& name, int const num_components, diff --git a/ProcessLib/Utils/LocalDataInitializerHM.h b/ProcessLib/Utils/LocalDataInitializerHM.h index 9e8d11f6515..b73ad72dacc 100644 --- a/ProcessLib/Utils/LocalDataInitializerHM.h +++ b/ProcessLib/Utils/LocalDataInitializerHM.h @@ -124,8 +124,8 @@ class LocalDataInitializerHM final public: using LADataIntfPtr = std::unique_ptr<LocalAssemblerInterface>; - LocalDataInitializerHM(NumLib::LocalToGlobalIndexMap const& dof_table, - const unsigned shapefunction_order /* TODO remove */) + explicit LocalDataInitializerHM( + NumLib::LocalToGlobalIndexMap const& dof_table) : _dof_table(dof_table) { // /// Quads and Hexahedra /////////////////////////////////// -- GitLab