Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
Technologicat committed Aug 24, 2020
1 parent 9a3dbd1 commit 88dea78
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 47 deletions.
6 changes: 4 additions & 2 deletions test/test_DSA.jl
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,9 @@ let stresses_expected = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
# Interrupt and hold
# Drive to zero stress
strain_at_stop = material.drivers.strain[1,1]
stress_driven_uniaxial_increment!(material, -material.variables.stress[1,1], dtime)
let dstress11 = -material.variables.stress[1,1]
stress_driven_uniaxial_increment!(material, dstress11, dtime)
end
update_material!(material)
snapshot!()
# Hold for 3600 seconds
Expand All @@ -332,7 +334,7 @@ let stresses_expected = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
# Continue test
dstrain_extra = strain_at_stop - material.drivers.strain[1,1]
n_extra_steps = Int(ceil(dstrain_extra / dstrain11))
for i in n_interrupt + 1:n_steps + n_extra_steps
for i in (n_interrupt + 1):(n_steps + n_extra_steps)
uniaxial_increment!(material, dstrain11, dtime)
update_material!(material)
snapshot!()
Expand Down
4 changes: 2 additions & 2 deletions test/test_biaxial_increment.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ let dtime = 0.25,
mat = Chaboche(parameters = parameters),
dstrain11 = 1e-3*dtime,
dstrain12 = 1e-3*dtime,
dtimes = [dtime, dtime, dtime, dtime, 1.0],
dtimes = dtime*[1.0, 1.0, 1.0, 1.0, 4.0],
dstrains11 = dstrain11*[1.0, 1.0, 1.0, -1.0, -4.0],
dstrains12 = dstrain12*[1.0, 1.0, 1.0, -1.0, -4.0]

plastic_flow_occurred = zeros(Bool, length(dstrains11) - 1)
plastic_flow_occurred = zeros(Bool, length(dtimes) - 1)
for i in 1:length(dtimes)
dstrain11 = dstrains11[i]
dstrain12 = dstrains12[i]
Expand Down
22 changes: 6 additions & 16 deletions test/test_memory.jl
Original file line number Diff line number Diff line change
Expand Up @@ -83,22 +83,12 @@ let parameters = MemoryParameterState(E = 200.0e3,
# Amplitude 4 - evanescence
ea = 0.003
strains11 = ea * sin.(2*pi*t)
for dstrain11 in diff(strains11)
uniaxial_increment!(mat, dstrain11, dtime)
update_material!(mat)
snapshot!()
end

for dstrain11 in diff(strains11)
uniaxial_increment!(mat, dstrain11, dtime)
update_material!(mat)
snapshot!()
end

for dstrain11 in diff(strains11)
uniaxial_increment!(mat, dstrain11, dtime)
update_material!(mat)
snapshot!()
for _ in 1:3
for dstrain11 in diff(strains11)
uniaxial_increment!(mat, dstrain11, dtime)
update_material!(mat)
snapshot!()
end
end

R4 = copy(Rs[end])
Expand Down
35 changes: 22 additions & 13 deletions test/test_perfectplastic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,18 @@

using Test, Tensors

let parameters = PerfectPlasticParameterState(youngs_modulus=200.0e3,
poissons_ratio=0.3,
yield_stress=100.0),
let nu = 0.3,
parameters = PerfectPlasticParameterState(youngs_modulus=200.0e3,
poissons_ratio=nu,
yield_stress=100.0),
epsilon=1e-3,
mat, # scope the name to this level; actual definition follows later
tostrain(vec) = fromvoigt(Symm2, vec; offdiagscale=2.0),
tostress(vec) = fromvoigt(Symm2, vec),
uniaxial_stress(sigma) = tostress([sigma, 0, 0, 0, 0, 0])
let dtime=0.25
dstrain_dtime = tostrain(epsilon*[1.0, -0.3, -0.3, 0.0, 0.0, 0.0])
# elastic straining
dstrain_dtime = tostrain(epsilon*[1.0, -nu, -nu, 0.0, 0.0, 0.0])
ddrivers = PerfectPlasticDriverState(time=dtime, strain=dstrain_dtime*dtime)
mat = PerfectPlastic(parameters=parameters, ddrivers=ddrivers)
integrate_material!(mat)
Expand All @@ -22,9 +24,12 @@ let parameters = PerfectPlasticParameterState(youngs_modulus=200.0e3,
mat.ddrivers = ddrivers
integrate_material!(mat)
update_material!(mat)
# we're now at the yield surface
@test isapprox(mat.variables.stress, uniaxial_stress(100.0))
@test isapprox(mat.variables.cumeq, 0.0; atol=1.0e-12)

# plastic straining
# von Mises material, plastically incompressible, so plastic nu=0.5.
dstrain_dtime = tostrain(epsilon*[1.0, -0.5, -0.5, 0.0, 0.0, 0.0])
ddrivers = PerfectPlasticDriverState(time=dtime, strain=dstrain_dtime*dtime)
mat.ddrivers = ddrivers
Expand All @@ -33,20 +38,24 @@ let parameters = PerfectPlasticParameterState(youngs_modulus=200.0e3,
@test isapprox(mat.variables.stress, uniaxial_stress(100.0); atol=1.0e-12)
@test isapprox(mat.variables.cumeq, dtime*epsilon)

dstrain_dtime = tostrain(-epsilon*[1.0, -0.3, -0.3, 0.0, 0.0, 0.0])
# return to elastic state
dstrain_dtime = tostrain(-epsilon*[1.0, -nu, -nu, 0.0, 0.0, 0.0])
ddrivers = PerfectPlasticDriverState(time=dtime, strain=dstrain_dtime*dtime)
mat.ddrivers = ddrivers
integrate_material!(mat)
update_material!(mat)
@test isapprox(mat.variables.stress, uniaxial_stress(50.0); atol=1.0e-12)
end

dstrain_dtime = (-0.75*tostrain(epsilon*[1.0, -0.3, -0.3, 0.0, 0.0, 0.0])
-0.25*tostrain(epsilon*[1.0, -0.5, -0.5, 0.0, 0.0, 0.0]))
ddrivers = PerfectPlasticDriverState(time=1.0, strain=dstrain_dtime*1.0)
mat.ddrivers = ddrivers
integrate_material!(mat)
integrate_material!(mat)
update_material!(mat)
@test isapprox(mat.variables.stress, uniaxial_stress(-100.0))
let dtime=1.0
# loading in reverse direction to plastic state
dstrain_dtime = (-0.75*tostrain(epsilon*[1.0, -nu, -nu, 0.0, 0.0, 0.0])
-0.25*tostrain(epsilon*[1.0, -0.5, -0.5, 0.0, 0.0, 0.0]))
ddrivers = PerfectPlasticDriverState(time=1.0, strain=dstrain_dtime*dtime)
mat.ddrivers = ddrivers
integrate_material!(mat)
integrate_material!(mat)
update_material!(mat)
@test isapprox(mat.variables.stress, uniaxial_stress(-100.0))
end
end
4 changes: 2 additions & 2 deletions test/test_perfectplastic_shear.jl
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ let E = 200.0e3,
nu = 0.3,
yield_stress = 100.0,
parameters = PerfectPlasticParameterState(youngs_modulus=E,
poissons_ratio=nu,
yield_stress=yield_stress),
poissons_ratio=nu,
yield_stress=yield_stress), # yield in shear = R0 / sqrt(3)
mat = PerfectPlastic(parameters=parameters),
times = [0.0],
loads = [0.0],
Expand Down
26 changes: 14 additions & 12 deletions test/test_uniaxial_increment.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,26 @@
using Test, Tensors

let dtime = 0.25,
nu = 0.3,
R = 100.0,
parameters = PerfectPlasticParameterState(youngs_modulus=200.0e3,
poissons_ratio=0.3,
yield_stress=100.0),
poissons_ratio=nu,
yield_stress=R),
mat = PerfectPlastic(parameters=parameters),
tostrain(vec) = fromvoigt(Symm2, vec; offdiagscale=2.0),
tostress(vec) = fromvoigt(Symm2, vec),
uniaxial_stress(sigma) = tostress([sigma, 0, 0, 0, 0, 0]),
stresses_expected = [uniaxial_stress(50.0),
uniaxial_stress(100.0),
uniaxial_stress(100.0),
uniaxial_stress(50.0),
uniaxial_stress(-100.0)],
stresses_expected = [uniaxial_stress(R / 2),
uniaxial_stress(R),
uniaxial_stress(R),
uniaxial_stress(R / 2),
uniaxial_stress(-R)],
dstrain11 = 1e-3*dtime,
strains_expected = [tostrain(dstrain11*[1.0, -0.3, -0.3, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[2, -0.3*2, -0.3*2, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[3, -0.3*2 - 0.5, -0.3*2 - 0.5, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[2, -0.3 - 0.5, -0.3 - 0.5, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[-2, 0.3*2, 0.3*2, 0.0, 0.0, 0.0])],
strains_expected = [tostrain(dstrain11*[1.0, -nu, -nu, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[2, -2*nu, -2*nu, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[3, -2*nu - 0.5, -2*nu - 0.5, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[2, -nu - 0.5, -nu - 0.5, 0.0, 0.0, 0.0]),
tostrain(dstrain11*[-2, 2*nu, 2*nu, 0.0, 0.0, 0.0])],
dtimes = [dtime, dtime, dtime, dtime, 1.0],
dstrains11 = dstrain11*[1.0, 1.0, 1.0, -1.0, -4.0]

Expand Down

0 comments on commit 88dea78

Please sign in to comment.