一般遇到的线性项仅与z轴成线性,因此本文仅讨论线性项与z轴成线性关系的情况,此时,计算式位于(x,y,z)处的项值计算公式变为:
zone initialize stress-zz S(0) grad 0 0 grad(z)zone initialize stress-xx μ*S(0) grad 0 0 μ*grad(z);μ为侧压力系数zone initialize stress-yy μ*S(0) grad 0 0 μ*grad(z)

由此可见,在一般的梯度施加中,只需要确定S(0)与grad(z)即可,梯度计算示意图见图2:


以初始化浅埋工况的自重应力为例(侧压力系数取0.5),模型尺寸为10m*10m*10m,模型密度取为1000kg/m^3,重力加速度取为10m/s^2。分两个工况模拟,工况1的底面z坐标为0,工况2的底面z坐标为-3。
工况1:即z2=0,z1=10;模型顶部的自重应力为S1=0,底部的自重应力为S2=-1e5Pa。由式(3)计算得到梯度grad = (-1e5-0)/(0-10)=1e4Pa/m;S(0) = -1e5。因此工况1的命令流如下:
;模型底面z坐标为0model newzone create brick size 10 10 10zone cmodel assign mohr-coulombzone property bulk 3e8 shear 1e8 cohesion 1e6 friction 15zone initialize density 1000zone initialize stress-zz -1e5 grad 0 0 1e4zone initialize stress-xx -5e4 grad 0 0 5e3zone initialize stress-yy -5e4 grad 0 0 5e3

图3 stress-zz云图(工况1)

图4 stress-xx云图(工况1)

;模型底面z坐标为-3model newpoint 2(0,10,-3) point 3(0,0,7) size 10 10 10zone cmodel assign mohr-coulombzone property bulk 3e8 shear 1e8 cohesion 1e6 friction 15zone initialize density 1000zone initialize stress-zz -7e4 grad 0 0 1e4zone initialize stress-xx -3.5e4 grad 0 0 5e3zone initialize stress-yy -3.5e4 grad 0 0 5e3
运行上述命令流后,模型的三个正应力云图如下:


图7 stress-xx云图(工况2)

图8 stress-yy(工况2)
======总结======
计算梯度时,首先要知道线性项的首位坐标以及对应的项值,通过直线方程求得斜率(grad);令z=0即可求得S(0)。施加项可包括应力、速度、孔压等项目,当所施加项与x/y/xyz轴成线性时,计算方法相同。