本文摘要(由AI生成):
本文主要介绍了常规三轴数值模拟的基本思路,包括成样、预压、围压以及加载等步骤。成样部分主要介绍了生成圆柱形试样的代码,预压部分主要介绍了圆柱形墙的伺服难点以及如何监测侧面墙的应力和加载。围压以及加载部分与三轴模拟相同,但计算效果受颗粒数影响,需要至少1万个颗粒才能获得较好的效果。
之前做过一个真三轴的数值模拟,这里讲一下常规三轴的基本思路。
生成圆柱形的试样,这个比较简单,直接公开代码
new
def chicun_par
sample_rad=0.5
sample_hight=2
keli_rdmin=0.06
keli_rdmax=0.09
end
@chicun_par
domain extent [-sample_hight*1.5] [sample_hight*1.5][n=1.4]
wall generate cylinder base 0 0 [-sample_hight*0.5*n] axis 0 0 1 ...
height [sample_hight*n] radius [sample_rad] cap false falsewall generate plane position 0 0 [sample_hight*0.5] dip 0 ddir 0
wall generate plane position 0 0 [-sample_hight*0.5] dip 0 ddir 0
ball distribute radius [keli_rdmin] [keli_rdmax] porosity 0.28 ...
range cylinder end1 0 0 [sample_hight*0.5-keli_rdmin] ...
end2 0 0 [-sample_hight*0.5+keli_rdmin] radius [sample_rad-keli_rdmin]
cmat default model linear method deform emod 100e6 kratio 1.5 property fric 0.5
ball attribute density 2.7e3 damp 0.7
cycle 2000 calm 50
solve
save sample
这里是主要难点,圆柱形墙的伺服比较难,如何监测侧面墙的应力以及如何进行侧面墙的加载是个难点。
这里的代码在付费中公开。下图为伺服的应力变化。
这里因为颗粒数只有五百个,计算效果不是很好,这种单元试验至少1w个才好看点。
代码里面的加载速率自己调呀,我给的比较大。
内容简介:完整代码