;define ball and wall friction property
ball property fric @ballFriction
wall property fric @wallFriction
[ly0 = wly]
[lx0 = wlx]
[wexx = 0.0]
[weyy = 0.0]
[wevol = 0.0]
define wexx
wexx = (wlx - lx0) / lx0
end
define weyy
weyy = (wly - ly0) / ly0
end
define wevol
wevol = wexx + weyy
end
history id 51 @wexx
history id 52 @weyy
history id 53 @wevol
history purge
[rate = 0.2]
wall servo activate off range set name 'vesselTop' set name 'vesselBottom' union
wall attribute yvelocity [-rate*wly] range set name 'vesselTop'
wall attribute yvelocity [ rate*wly] range set name 'vesselBottom'
[stop_me = 0]
[target = 0.075]
define stop_me
if weyy <= -target then
stop_me = 1
endif
end
ball attribute displacement multiply 0.0
calm
solve fishhalt @stop_me
return
;define ball and wall friction property
ball property fric @ballFriction
wall property fric @wallFriction
[rate = 0.01]
wall attribute yvelocity [-rate*wly] range set name 'vesselTop'
wall attribute yvelocity [ rate*wly] range set name 'vesselBottom'
wall servo activate off range set name 'vesselTop' set name 'vesselBottom' union
calm
[ly0 = wly]
[lx0 = wlx]
[wsyy0 = wsyy]
[wexx = 0.0]
[weyy = 0.0]
[wevol = 0.0]
define wexx
wexx = 2.0*(wlx - lx0) / (wlx+lx0)
end
define weyy
weyy = 2.0*(wly - ly0) / (wly+ly0)
end
define wevol
wevol = wexx + weyy
end
history id 51 @weyy
history id 52 @wexx
history id 53 @wevol
history purge
[stop_load = 0]
[target = 5e-4]
define stop_load
if -weyy >= target then
stop_load = 1
endif
end
solve fishhalt @stop_load
[young_modulus = (wsyy-wsyy0)/weyy]
[poisson_ratio = -wexx/weyy]
[shear_modulus = 0.5*young_modulus/(1+poisson_ratio)]
save biaxial-load
wall attribute yvelocity [ rate*wly] range set name 'vesselTop'
wall attribute yvelocity [-rate*wly] range set name 'vesselBottom'
[stop_unload = 0]
define stop_unload
if weyy >= 0.0 then
stop_unload = 1
endif
end
solve fishhalt @stop_unload