In [4]:
using ConstLab
using Plots
using Voigt
plotly();
In [ ]:
include("mises_mixed_hardening.jl")
In [5]:
σy = 200.0*10^6
mp = MisesMixedHardMP(
E = 200.0 * 10^9,
ν = 0.3,
σy = σy ,
H = 0.1 * 200*10^9,
κ∞ = 0.1 * σy,
α∞ = 0.1 * σy,
r = 0.5
);
In [6]:
ms = MisesMixedHardMS()
Out[6]:
In [7]:
tend = 1.0
nts = 50
ts = collect(linspace(0, tend, nts))
ε_max = 0.01
Out[7]:
In [8]:
εs_pstrain, σs_pstrain, ε_control_pstrain = loadcase(:uniaxial_strain, ε_max, ts, :unsym);
In [11]:
@time εs_res_pstrain, σs_res_pstrain, matstats = driver(stress, ATS, ms, mp, ts, εs_pstrain,
σs_pstrain, ε_control_pstrain);
In [12]:
εs_pstress, σs_pstress, ε_control_pstress = loadcase(:uniaxial_stress, ε_max, ts, :unsym);
In [17]:
@time εs_res_pstress, σs_res_pstress, matstats = driver(stress, ATS, ms, mp, ts, εs_pstress,
σs_pstress, ε_control_pstress, ftol = 1e-5, iterations=30);
In [18]:
vm(x) = sqrt(3/2) * vnorm(dev(x));
In [19]:
p = plot()
p = plot!(p, vec(εs_res_pstress[1,:]),
Float64[vm(σs_res_pstrain[:,i]) for i = 1:nts],
label="Plane strain");
p = plot!(p, vec(εs_res_pstress[1,:]),
Float64[vm(σs_res_pstress[:,i]) for i = 1:nts],
label="Plane stress");
p = plot!(p, vec(εs_res_pstress[1,:]),
(mp.κ∞ + mp.α∞ + mp.σy) * ones(ts),
label="Saturation stress")
xlabel!(p, "ε_11"); ylabel!(p, "σ"); title!(p, "Uniaxial strain vs stress")
Out[19]: