Hi,
I want to create rock specimens with different joint orientations in 3DEC 9.0 to test the uniaxial compressive strength of rock containing various joint orientations. However, when I run my code, I get the error message: ‘Cannot cut blocks after cycling.’ How can I resolve this issue? Below is my code.
Thank you in advance!
JLUJYP
model new
block tolerance 1e-6
model random 10001
model mechanical timestep fix 0.005
model large-strain on
[global Size=1]
[global R=0.025Size]
[global High=0.1Size]
block create tunnel radius=[R] length=0,[High] radius-ratio=20 dip=-90 dip-direction=0 blocks-radial=1 blocks-tangential=2 blocks-axial=1
block delete range position-x [-1R],[R] not
block delete range position-y [-1R],[R] not
block join on
[global area = math.piR^2]
[global length = High]
;call ‘fish-support.fis’
fish define findList
gp_list_top = list
gp_list_bottom = list
loop foreach gp block.gp.list
if block.gp.isgroup(gp,‘top’)
gp_list_top(“end”) = gp
endif
if block.gp.isgroup(gp,‘bottom’)
gp_list_bottom(“end”) = gp
endif
endloop
end
fish define zzstress
findList
global gp_top = gp_list_top(1)
; compression positive,unit MPa
local top_reaction = -list.sum(block.gp.force.reaction.z(::gp_list_top))
local bottom_reaction = list.sum(block.gp.force.reaction.z(::gp_list_bottom))
zzstress = 0.5(top_reaction + bottom_reaction)/area
end
; Function that determines if solving should stop
fish define halt
global gpHalt = block.gp.near(0,0,High)
DISP_threshold = High1.125e-4
DISP = math.abs(block.gp.disp.z(gpHalt ))
halt = DISP > DISP_threshold
end
model save ‘model_initial’
fish define solveAll
loop local beta (0,90,5) ; Check angles from 0-90 in 5 degree increments
command
block delete
block create tunnel radius=[R] length=0,[High] radius-ratio=20 dip=-90 dip-direction=0 blocks-radial=1 blocks-tangential=2 blocks-axial=1
block delete range position-x [-1R],[R] not
block delete range position-y [-1R],[R] not
block join on
block cut joint-set dip @beta dip-direction 0 origin 0 0 [0.5High]
block zone generate edgelength [0.5R]
block gridpoint group ‘top’ range position-z [High]
block gridpoint group ‘bottom’ range position-z 0
; Assign model and properties
block zone cmodel assign mohr-coulomb
block zone property bulk 1.e8 shea 7.e7 cohesion 2.e3 density 0.002
block zone property friction 40. dilation 0. tension 2400.
block contact jmodel mohr
block contact property stiffness-normal 7.6e7 stiffness-shear 7.6e7 cohesion 1.e3 tension 2000 friction 20
block contact material-table default property stiffness-normal 7.6e7 stiffness-shear 7.6e7 cohesion 1.e3 tension 2000 friction 20
; Assign boundary conditions
block gridpoint apply velocity-z [-1.25e-7High] range group ‘top’
block gridpoint apply velocity-z 0 range group ‘bottom’
; Cycle till the target strain is reached
model solve fish-halt @halt
; Add results to table
table ‘result’ add (@beta,@zzstress)
end_command
end_loop
end
@solveAll
; Save the last state, and the accumulated table
model save ‘final’