diff --git a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h index 7c902c4ca2a0a3a53737f8334a12fa8f34d7c452..c3b73149f8fdbafb87a618be78ccf700cb9ae26d 100644 --- a/ProcessLib/HydroMechanics/HydroMechanicsFEM.h +++ b/ProcessLib/HydroMechanics/HydroMechanicsFEM.h @@ -233,16 +233,16 @@ public: { auto& ip_data = _ip_data[ip]; + ParameterLib::SpatialPosition const x_position{ + std::nullopt, _element.getID(), ip, + MathLib::Point3d( + NumLib::interpolateCoordinates<ShapeFunctionPressure, + ShapeMatricesTypePressure>( + _element, ip_data.N_p))}; + /// Set initial stress from parameter. if (_process_data.initial_stress != nullptr) { - ParameterLib::SpatialPosition const x_position{ - std::nullopt, _element.getID(), ip, - MathLib::Point3d(NumLib::interpolateCoordinates< - ShapeFunctionDisplacement, - ShapeMatricesTypeDisplacement>( - _element, ip_data.N_u))}; - ip_data.sigma_eff = MathLib::KelvinVector::symmetricTensorToKelvinVector< DisplacementDim>((*_process_data.initial_stress)( @@ -251,6 +251,10 @@ public: x_position)); } + double const t = 0; // TODO (naumov) pass t from top + ip_data.solid_material.initializeInternalStateVariables( + t, x_position, *ip_data.material_state_variables); + ip_data.pushBackState(); } } diff --git a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h index 2dd4c79ca7b95d739c926ef94b26ba3ba09b9620..5a13430d4a2f2fd900d2ff9534aea93571e0b809 100644 --- a/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h +++ b/ProcessLib/RichardsMechanics/RichardsMechanicsFEM.h @@ -130,16 +130,16 @@ public: { auto& ip_data = _ip_data[ip]; + ParameterLib::SpatialPosition const x_position{ + std::nullopt, _element.getID(), ip, + MathLib::Point3d( + NumLib::interpolateCoordinates< + ShapeFunctionDisplacement, + ShapeMatricesTypeDisplacement>(_element, ip_data.N_u))}; + /// Set initial stress from parameter. if (_process_data.initial_stress != nullptr) { - ParameterLib::SpatialPosition const x_position{ - std::nullopt, _element.getID(), ip, - MathLib::Point3d(NumLib::interpolateCoordinates< - ShapeFunctionDisplacement, - ShapeMatricesTypeDisplacement>( - _element, ip_data.N_u))}; - ip_data.sigma_eff = MathLib::KelvinVector::symmetricTensorToKelvinVector< DisplacementDim>((*_process_data.initial_stress)( @@ -148,6 +148,10 @@ public: x_position)); } + double const t = 0; // TODO (naumov) pass t from top + ip_data.solid_material.initializeInternalStateVariables( + t, x_position, *ip_data.material_state_variables); + ip_data.pushBackState(); } } diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h index 5ad1661a0a0e1c8fc7d828e30d68a44e266f6376..532ebd77e006a116beaede738ec23b0ff34a5519 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h +++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h @@ -236,16 +236,16 @@ public: { auto& ip_data = _ip_data[ip]; + ParameterLib::SpatialPosition const x_position{ + std::nullopt, _element.getID(), ip, + MathLib::Point3d( + NumLib::interpolateCoordinates<ShapeFunction, + ShapeMatricesType>( + _element, ip_data.N))}; + /// Set initial stress from parameter. if (_process_data.initial_stress != nullptr) { - ParameterLib::SpatialPosition const x_position{ - std::nullopt, _element.getID(), ip, - MathLib::Point3d( - NumLib::interpolateCoordinates<ShapeFunction, - ShapeMatricesType>( - _element, ip_data.N))}; - ip_data.sigma = MathLib::KelvinVector::symmetricTensorToKelvinVector< DisplacementDim>((*_process_data.initial_stress)( @@ -254,6 +254,10 @@ public: x_position)); } + double const t = 0; // TODO (naumov) pass t from top + ip_data.solid_material.initializeInternalStateVariables( + t, x_position, *ip_data.material_state_variables); + ip_data.pushBackState(); } } diff --git a/ProcessLib/TH2M/TH2MFEM.h b/ProcessLib/TH2M/TH2MFEM.h index 88653ff718831c74c390ffee948b1a03d8ceb562..27bedcd7da1e72f270e0db21943b59705636f192 100644 --- a/ProcessLib/TH2M/TH2MFEM.h +++ b/ProcessLib/TH2M/TH2MFEM.h @@ -126,16 +126,16 @@ private: { auto& ip_data = _ip_data[ip]; + ParameterLib::SpatialPosition const x_position{ + std::nullopt, _element.getID(), ip, + MathLib::Point3d( + NumLib::interpolateCoordinates< + ShapeFunctionDisplacement, + ShapeMatricesTypeDisplacement>(_element, ip_data.N_u))}; + /// Set initial stress from parameter. if (_process_data.initial_stress != nullptr) { - ParameterLib::SpatialPosition const x_position{ - std::nullopt, _element.getID(), ip, - MathLib::Point3d(NumLib::interpolateCoordinates< - ShapeFunctionDisplacement, - ShapeMatricesTypeDisplacement>( - _element, ip_data.N_u))}; - ip_data.sigma_eff = MathLib::KelvinVector::symmetricTensorToKelvinVector< DisplacementDim>((*_process_data.initial_stress)( @@ -144,6 +144,10 @@ private: x_position)); } + double const t = 0; // TODO (naumov) pass t from top + ip_data.solid_material.initializeInternalStateVariables( + t, x_position, *ip_data.material_state_variables); + ip_data.pushBackState(); } } diff --git a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h index 94a53bc808c12c2d06f116ffba8c72bafc3d8ae9..e59aaa2aa3e2feaa17c1a8e5a8d261055d903b36 100644 --- a/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h +++ b/ProcessLib/ThermoHydroMechanics/ThermoHydroMechanicsFEM.h @@ -122,16 +122,16 @@ public: { auto& ip_data = _ip_data[ip]; + ParameterLib::SpatialPosition const x_position{ + std::nullopt, _element.getID(), ip, + MathLib::Point3d( + NumLib::interpolateCoordinates< + ShapeFunctionDisplacement, + ShapeMatricesTypeDisplacement>(_element, ip_data.N_u))}; + /// Set initial stress from parameter. if (_process_data.initial_stress != nullptr) { - ParameterLib::SpatialPosition const x_position{ - std::nullopt, _element.getID(), ip, - MathLib::Point3d(NumLib::interpolateCoordinates< - ShapeFunctionDisplacement, - ShapeMatricesTypeDisplacement>( - _element, ip_data.N_u))}; - ip_data.sigma_eff = MathLib::KelvinVector::symmetricTensorToKelvinVector< DisplacementDim>((*_process_data.initial_stress)( @@ -142,6 +142,10 @@ public: x_position)); } + double const t = 0; // TODO (naumov) pass t from top + ip_data.solid_material.initializeInternalStateVariables( + t, x_position, *ip_data.material_state_variables); + ip_data.pushBackState(); } } diff --git a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h index 72a3660828de6df409f61a6f11f14b337cef19b9..374c7e51c802598ff6ff0cb826f3102e7dcf2443 100644 --- a/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h +++ b/ProcessLib/ThermoMechanics/ThermoMechanicsFEM.h @@ -202,16 +202,16 @@ public: { auto& ip_data = _ip_data[ip]; + ParameterLib::SpatialPosition const x_position{ + std::nullopt, _element.getID(), ip, + MathLib::Point3d( + NumLib::interpolateCoordinates<ShapeFunction, + ShapeMatricesType>( + _element, ip_data.N))}; + /// Set initial stress from parameter. if (_process_data.initial_stress != nullptr) { - ParameterLib::SpatialPosition const x_position{ - std::nullopt, _element.getID(), ip, - MathLib::Point3d( - NumLib::interpolateCoordinates<ShapeFunction, - ShapeMatricesType>( - _element, ip_data.N))}; - ip_data.sigma = MathLib::KelvinVector::symmetricTensorToKelvinVector< DisplacementDim>((*_process_data.initial_stress)( @@ -220,6 +220,10 @@ public: x_position)); } + double const t = 0; // TODO (naumov) pass t from top + ip_data.solid_material.initializeInternalStateVariables( + t, x_position, *ip_data.material_state_variables); + ip_data.pushBackState(); } } diff --git a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h index 949b966f522d1baea91ce141c908ec7691f7f984..3d01685f42740665dc8026f9954d2a9dae942bb5 100644 --- a/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h +++ b/ProcessLib/ThermoRichardsMechanics/ThermoRichardsMechanicsFEM.h @@ -317,6 +317,11 @@ public: current_state.transport_poro_data.phi = current_state.poro_data.phi; } + + double const t = 0; // TODO (naumov) pass t from top + this->solid_material_.initializeInternalStateVariables( + t, x_position, + *this->material_states_[ip].material_state_variables); } for (unsigned ip = 0; ip < n_integration_points; ip++)