Skip to content
Snippets Groups Projects
Unverified Commit bb8e9c69 authored by Dmitri Naumov's avatar Dmitri Naumov Committed by GitHub
Browse files

Merge pull request #2650 from endJunction/MFrontStateInitialization

MFront state initialization with sigma_prev and eps_prev.
parents d99ec56d 4ef1e0a7
No related branches found
No related tags found
No related merge requests found
...@@ -252,9 +252,9 @@ MFront<DisplacementDim>::integrateStress( ...@@ -252,9 +252,9 @@ MFront<DisplacementDim>::integrateStress(
double const t, double const t,
ParameterLib::SpatialPosition const& x, ParameterLib::SpatialPosition const& x,
double const dt, double const dt,
KelvinVector const& /*eps_prev*/, KelvinVector const& eps_prev,
KelvinVector const& eps, KelvinVector const& eps,
KelvinVector const& /*sigma_prev*/, KelvinVector const& sigma_prev,
typename MechanicsBase<DisplacementDim>::MaterialStateVariables const& typename MechanicsBase<DisplacementDim>::MaterialStateVariables const&
material_state_variables, material_state_variables,
double const T) const double const T) const
...@@ -291,12 +291,25 @@ MFront<DisplacementDim>::integrateStress( ...@@ -291,12 +291,25 @@ MFront<DisplacementDim>::integrateStress(
auto v = mgis::behaviour::make_view(behaviour_data); auto v = mgis::behaviour::make_view(behaviour_data);
auto const eps_prev_MFront = OGSToMFront(eps_prev);
for (auto i = 0; i < KelvinVector::SizeAtCompileTime; ++i)
{
v.s0.gradients[i] = eps_prev_MFront[i];
}
auto const eps_MFront = OGSToMFront(eps); auto const eps_MFront = OGSToMFront(eps);
for (auto i = 0; i < KelvinVector::SizeAtCompileTime; ++i) for (auto i = 0; i < KelvinVector::SizeAtCompileTime; ++i)
{ {
v.s1.gradients[i] = eps_MFront[i]; v.s1.gradients[i] = eps_MFront[i];
} }
auto const sigma_prev_MFront = OGSToMFront(sigma_prev);
for (auto i = 0; i < KelvinVector::SizeAtCompileTime; ++i)
{
v.s0.thermodynamic_forces[i] = sigma_prev_MFront[i];
v.s1.thermodynamic_forces[i] = sigma_prev_MFront[i];
}
auto const status = mgis::behaviour::integrate(v, _behaviour); auto const status = mgis::behaviour::integrate(v, _behaviour);
if (status != 1) if (status != 1)
{ {
......
...@@ -265,7 +265,7 @@ ...@@ -265,7 +265,7 @@
<vtkdiff> <vtkdiff>
<file>load_test_mc_pcs_0_ts_20_t_20.000000.vtu</file> <file>load_test_mc_pcs_0_ts_20_t_20.000000.vtu</file>
<field>NodalForces</field> <field>NodalForces</field>
<absolute_tolerance>1e-5</absolute_tolerance> <absolute_tolerance>2e-5</absolute_tolerance>
<relative_tolerance>1e-9</relative_tolerance> <relative_tolerance>1e-9</relative_tolerance>
</vtkdiff> </vtkdiff>
<vtkdiff> <vtkdiff>
...@@ -296,7 +296,7 @@ ...@@ -296,7 +296,7 @@
<vtkdiff> <vtkdiff>
<file>load_test_mc_pcs_0_ts_30_t_30.000000.vtu</file> <file>load_test_mc_pcs_0_ts_30_t_30.000000.vtu</file>
<field>displacement</field> <field>displacement</field>
<absolute_tolerance>1e-13</absolute_tolerance> <absolute_tolerance>2e-13</absolute_tolerance>
<relative_tolerance>1e-14</relative_tolerance> <relative_tolerance>1e-14</relative_tolerance>
</vtkdiff> </vtkdiff>
<vtkdiff> <vtkdiff>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment