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