From e845549114d6dc24eff22227a5a4c6236101eabb Mon Sep 17 00:00:00 2001
From: Christoph Lehmann <christoph.lehmann@ufz.de>
Date: Mon, 24 Oct 2022 14:56:37 +0200
Subject: [PATCH] [PL] Adapt to the moved constitutive setting

---
 .../LocalAssemblerInterface.h                 | 12 +++---
 .../ThermoRichardsMechanicsFEM-impl.h         | 41 +++++++++----------
 .../ThermoRichardsMechanicsFEM.h              | 10 ++---
 3 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h b/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h
index 7a83891a622..1ffbb72f0c2 100644
--- a/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h
+++ b/ProcessLib/ThermoRichardsMechanics/LocalAssemblerInterface.h
@@ -16,7 +16,7 @@
 #include "NumLib/Fem/Integration/GenericIntegrationMethod.h"
 #include "ProcessLib/LocalAssemblerInterface.h"
 #include "ProcessLib/Reflection/ReflectionSetIPData.h"
-#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveSetting.h"
+#include "ProcessLib/ThermoRichardsMechanics/ConstitutiveOriginal/ConstitutiveData.h"
 #include "ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsProcessData.h"
 
 namespace ProcessLib::ThermoRichardsMechanics
@@ -48,7 +48,8 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface,
         material_states_.reserve(n_integration_points);
         for (unsigned ip = 0; ip < n_integration_points; ++ip)
         {
-            material_states_.emplace_back(solid_material_);
+            material_states_.emplace_back(
+                solid_material_.createMaterialStateVariables());
         }
     }
 
@@ -122,10 +123,11 @@ struct LocalAssemblerInterface : public ProcessLib::LocalAssemblerInterface,
 protected:
     ThermoRichardsMechanicsProcessData<DisplacementDim>& process_data_;
 
-    std::vector<StatefulData<DisplacementDim>>
+    std::vector<ConstitutiveOriginal::StatefulData<DisplacementDim>>
         current_states_;  // TODO maybe do not store but rather re-evaluate for
                           // state update
-    std::vector<StatefulData<DisplacementDim>> prev_states_;
+    std::vector<ConstitutiveOriginal::StatefulData<DisplacementDim>>
+        prev_states_;
 
     // Material state is special, because it contains both the current and the
     // old state.
@@ -137,7 +139,7 @@ protected:
 
     MaterialLib::Solids::MechanicsBase<DisplacementDim> const& solid_material_;
 
-    std::vector<OutputData<DisplacementDim>> output_data_;
+    std::vector<ConstitutiveOriginal::OutputData<DisplacementDim>> output_data_;
 };
 
 }  // namespace ProcessLib::ThermoRichardsMechanics
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h
index f382ac60c60..2271e50c563 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM-impl.h
@@ -16,7 +16,6 @@
 #include <Eigen/LU>
 #include <cassert>
 
-#include "ConstitutiveSetting.h"
 #include "MaterialLib/MPL/Medium.h"
 #include "MaterialLib/MPL/Utils/FormEigenTensor.h"
 #include "MaterialLib/MPL/Utils/FormKelvinVectorFromThermalExpansivity.h"
@@ -148,7 +147,8 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
         // restart.
         SpaceTimeData const x_t{x_position, t, dt};
         ElasticTangentStiffnessData<DisplacementDim> C_el_data;
-        ElasticTangentStiffnessModel<DisplacementDim>{this->solid_material_}
+        ConstitutiveOriginal::ElasticTangentStiffnessModel<DisplacementDim>{
+            this->solid_material_}
             .eval(x_t, {T_ip, 0, {}}, C_el_data);
 
         auto const& eps = this->current_states_[ip].eps_data.eps;
@@ -180,8 +180,8 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
     LocalMatrices loc_mat_current_ip;
     loc_mat_current_ip.setZero();  // only to set the right matrix sizes
 
-    ConstitutiveSetting<DisplacementDim> constitutive_setting(
-        this->solid_material_, this->process_data_);
+    ConstitutiveOriginal::ConstitutiveSetting<DisplacementDim>
+        constitutive_setting;
 
     for (unsigned ip = 0; ip < this->integration_method_.getNumberOfPoints();
          ++ip)
@@ -297,15 +297,15 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
         typename ThermoRichardsMechanicsLocalAssembler<
             ShapeFunctionDisplacement, ShapeFunction,
             DisplacementDim>::IpData const& ip_data,
-        ConstitutiveSetting<DisplacementDim>& CS,
+        ConstitutiveOriginal::ConstitutiveSetting<DisplacementDim>& CS,
         MaterialPropertyLib::Medium& medium,
         typename ThermoRichardsMechanicsLocalAssembler<
             ShapeFunctionDisplacement, ShapeFunction,
             DisplacementDim>::LocalMatrices& out,
-        StatefulData<DisplacementDim>& current_state,
-        StatefulData<DisplacementDim> const& prev_state,
+        ConstitutiveOriginal::StatefulData<DisplacementDim>& current_state,
+        ConstitutiveOriginal::StatefulData<DisplacementDim> const& prev_state,
         MaterialStateData<DisplacementDim>& mat_state,
-        OutputData<DisplacementDim>& output_data) const
+        ConstitutiveOriginal::OutputData<DisplacementDim>& output_data) const
 {
     auto const& N_u = ip_data.N_u;
     auto const& N_u_op = ip_data.N_u_op;
@@ -330,10 +330,10 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
 
     GlobalDimVectorType const grad_T_ip = dNdx * T;
 
-    ConstitutiveModels<DisplacementDim> models(this->process_data_,
-                                               this->solid_material_);
-    ConstitutiveTempData<DisplacementDim> tmp;
-    ConstitutiveData<DisplacementDim> CD;
+    ConstitutiveOriginal::ConstitutiveModels<DisplacementDim> models(
+        this->process_data_, this->solid_material_);
+    ConstitutiveOriginal::ConstitutiveTempData<DisplacementDim> tmp;
+    ConstitutiveOriginal::ConstitutiveData<DisplacementDim> CD;
 
     {
         double const T_ip = N * T;
@@ -435,9 +435,8 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
     block_uT(out.Jac).noalias() =
         B.transpose() * CD.s_mech_data.J_uT_BT_K_N * N;
     block_up(out.Jac).noalias() =
-        B.transpose() * CD.swelling_data.J_up_BT_K_N * N +
-        CD.eq_u_data.J_up_X_BTI2N * BTI2N +
-        N_u_op.transpose() * CD.eq_u_data.J_up_HT_V_N * N;
+        B.transpose() * CD.s_mech_data.J_up_BT_K_N * N +
+        N_u_op.transpose() * CD.grav_data.J_up_HT_V_N * N;
     block_uu(out.Jac).noalias() =
         B.transpose() * CD.s_mech_data.stiffness_tensor * B;
 
@@ -475,13 +474,13 @@ void ThermoRichardsMechanicsLocalAssembler<ShapeFunctionDisplacement,
     using KV = MathLib::KelvinVector::KelvinVectorType<DisplacementDim>;
     KV sigma_avg = KV::Zero();
 
-    ConstitutiveSetting<DisplacementDim> constitutive_setting(
-        this->solid_material_, process_data);
+    ConstitutiveOriginal::ConstitutiveSetting<DisplacementDim>
+        constitutive_setting;
 
-    ConstitutiveModels<DisplacementDim> models(process_data,
-                                               this->solid_material_);
-    ConstitutiveTempData<DisplacementDim> tmp;
-    ConstitutiveData<DisplacementDim> CD;
+    ConstitutiveOriginal::ConstitutiveModels<DisplacementDim> models(
+        process_data, this->solid_material_);
+    ConstitutiveOriginal::ConstitutiveTempData<DisplacementDim> tmp;
+    ConstitutiveOriginal::ConstitutiveData<DisplacementDim> CD;
 
     for (unsigned ip = 0; ip < n_integration_points; ip++)
     {
diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h
index 6166225380c..faa456b2b61 100644
--- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h
+++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h
@@ -13,7 +13,7 @@
 #include <memory>
 #include <vector>
 
-#include "ConstitutiveSetting.h"
+#include "ConstitutiveOriginal/ConstitutiveSetting.h"
 #include "IntegrationPointData.h"
 #include "LocalAssemblerInterface.h"
 #include "MathLib/KelvinVector.h"
@@ -214,12 +214,12 @@ private:
         ParameterLib::SpatialPosition const& x_position,
         std::vector<double> const& local_x,
         std::vector<double> const& local_xdot, IpData const& ip_data,
-        ConstitutiveSetting<DisplacementDim>& CS,
+        ConstitutiveOriginal::ConstitutiveSetting<DisplacementDim>& CS,
         MaterialPropertyLib::Medium& medium, LocalMatrices& out,
-        StatefulData<DisplacementDim>& current_state,
-        StatefulData<DisplacementDim> const& prev_state,
+        ConstitutiveOriginal::StatefulData<DisplacementDim>& current_state,
+        ConstitutiveOriginal::StatefulData<DisplacementDim> const& prev_state,
         MaterialStateData<DisplacementDim>& mat_state,
-        OutputData<DisplacementDim>& output_data) const;
+        ConstitutiveOriginal::OutputData<DisplacementDim>& output_data) const;
 
     void addToLocalMatrixData(double const dt,
                               std::vector<double> const& local_x,
-- 
GitLab