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