; fname: cmhertz-setup.p3dat
; Setup shared parameters, loading path and history monitoring
; =============================================================================
model domain extent -2 2 -2 2 condition periodic
contact cmat default model hertz property hz_shear 1e9 hz_poiss 0.3 fric 0.5
model mechanical timestep fix 1e-3
fish define monitor
modeltime = mech.time.total
cnforce = 0
cnvforce = 0
csforce = 0
csvforce = 0
loop foreach local cp contact.list
hz_f_loc = contact.prop(cp,'hz_force')
cnforce = comp.x(hz_f_loc)
hz_fs_loc = hz_f_loc
comp.x(hz_fs_loc) = 0.0
csforce = math.mag(hz_fs_loc)
hz_fs_glob = contact.to.global(cp,hz_fs_loc)
cxsforce = comp.x(hz_fs_glob)
cysforce = comp.y(hz_fs_glob)
czsforce = comp.z(hz_fs_glob)
cnvforce = comp.x(contact.prop(cp,'dp_force'))
csvforce = comp.y(contact.prop(cp,'dp_force'))
endloop
end
fish callback add @monitor 50.0
history interval 1
model history name 1 mechanical time-total
model history name 2 timestep
fish history name 100 @cnforce
fish history name 101 @cnvforce
fish history name 102 @cxsforce
fish history name 103 @cysforce
fish history name 104 @czsforce
fish history name 105 @csforce
fish history name 106 @csvforce
model energy mechanical on
model history name 1000 mechanical energy energy-strain
model history name 1001 mechanical energy energy-slip
model history name 1002 mechanical energy energy-dashpot
fish define loading_path(root,n)
local fnamea = string.build('%1%2d_load%3a',root,global.dim,n)
local fnameb = string.build('%1%2d_load%3b',root,global.dim,n)
local fnamec = string.build('%1%2d_load%3c',root,global.dim,n)
local fnamed = string.build('%1%2d_load%3d',root,global.dim,n)
local fnamee = string.build('%1%2d_load%3e',root,global.dim,n)
command
ball attribute velocity-y -0.01 range id 1
model solve time 1e-1
model save @fnamea
ball attribute velocity-y 0 spin-z 0.00628 range id 1
model solve time 5e-2
model save @fnameb
ball attribute spin multiply 0.0 spin-x 0.00628 range id 1
model solve time 5e-2
model save @fnamec
ball attribute spin multiply 0.0 spin-y 6.28 range id 1
model solve time 5e-2
model save @fnamed
ball attribute spin multiply 0.0 velocity-y 0.01 range id 1
model solve time 1e-1
model save @fnamee
endcommand
end
return
; =============================================================================
; eof: cmhertz-setup.p3dat