1.关于边界条件

边界条件是指在模型边界上指定模型的场变量,如应力值、位移值等。3DEC中的边界条件主要分为真实边界与人工边界两类。

1.真实边界是物体实际存在的边界,如隧洞、地表等。

2.人工边界是指实际不存在,人工所截断、用来包含所有块体、单元、节点的模型边界。

边界分类虽然不同,但两类边界的边界条件施加方法是一样的。
力学边界也主要分为两类:指定的位移边界和指定的应力边界,下面介绍这两种边界。自由面也可以看成是一种特殊的应力边界条件。在动力分析中的粘滞边界也是一种边界条件,详情可以查看 3DECManual 中的 Optional FeaturesDynamic Analysis 中的介绍以及例子。

实在是不知道什么原因,行内公式就是不能正确显示 ε(┬┬﹏┬┬)3,行间公式刷新一下好像可以显示

2.应力边界

默认条件下,3DEC 模型是无应力约束的。采 用 BOUNDARY命令,力或者应力可以
施加于任意边界或者部分边界上。力边界或者应力边界能施加到刚性块体或者可变形块体上。各应力张量($\sigma{xx}$,$\sigma{yy}$,$\sigma{zz}$,$\sigma{xy}$,$\sigma{xz}$,$\sigma{yz}$)可以通过 stress 关键字来指定:

boundary (0,10) (-1,1) (0,10) stress 0,0,-1e6 0,0,0

这条命令将 $\sigma{xx}=0$,$\sigma{yy}=0$,$\sigma_{zz}=-10^6$ (无剪切应力)施加到由上述三个坐标所组成的区域内,即 0<x<10 , -1<y<1 , 0<z<10 的区域。应当注意,要确保选择的区域包含你要施加边界应力的所有边界顶点。检查边界可以使用:

 list boundary state

具体的命令可以查看帮助文档中关于 LIST boundary 命令这一块。注意:在模型运行时,边界的位置可能会发生移动,这就要确保你选择的区域足够大,以保证在 BOUNDARY 命令执行时你要施加边界的顶点都包含在所选区域内。

另外,边界条件同样可以通过定义边界面的方向、产状来施加,下面的命令可以与达到与上面相同的效果:

 boundary dip 90 dd 180 or 0,1,0 above stress 0,0,-1e6 0,0,0

3DEC中,压应力为负值。同时,3DEC采用力(force)或牵引力(tractions)来施加应力分量,这会导致边界上产生应力张量。牵引力分为两部分,永久与瞬态。永久牵引力是恒载,瞬态荷载采用 history 关键字施加,常用在动力分析中随时间变化的荷载的施加。 单独的力可以利用关键字xload,yload, zload施加到刚性或者变形块体边界,该关键字可以指定x-, y-, z-向的力分量。

2.1 如何施加应力梯度

BOUNDARY 命令后面的关键字 stress 可以跟二级关键字 xgrad,ygrad,zgrad ,用来指定线性分布的应力。每个梯度有六个参数来描述X,Y,Z三个方向的应力分量:

xgrad sxxx syyx szzx sxyx sxzx syzx
ygrad sxxy syyy szzy sxyy sxzy syzy
zgrad sxxz syyz szzz sxyz sxzz syzz

应力张量通过下式来计算:

其中,等式右侧带上标的第一个数代表坐标原点(0,0,0)处的应力分量。通过具体的命令来说明上式,如下:

 boundary -0.1,0.1 0,10 -100,0 stress 0,0,-10e6 0,0,0 zgrad 0,0,1e5 0,0,0

位于原点(0,0,0)处的应力分量为:

将各个参数带入梯度的计算式中,Z方向的应力分量$\sigma_{zz}$由下式计算:

可以看出$\sigma{zz}$与$z$呈线性关系,可以计算出在$z=-100$处$\sigma{zz}=-20\times10^6$,而在-100到0这个区间内$\sigma_{zz}$根据z的坐标线性分布。

一般来说,应力梯度用来指定在重力作用下随深度线性变化的自重应力,这就要确保你施加的梯度能够与施加初始应力的命令 INSITU 与设置重力加速度的命令 GRAVITY 相协调。

2.2 如何改变应力边界条件

在动力分析时,瞬态荷载可以采用 history 施加。在3DEC静态力学分析中,有时候也需要改变已经施加的边界应力值,如地基基础荷载的变化。为了使已经施加的应力或者荷载产生突变,需要采用一个新的 BOUNDARY 命令来指定,即在已施加应力边界的节点的相同位置施加一个应力或者力的变化值。这种情况下,指定的新值会累加到已有值上,这点与FLAC软件不同(FLAC中新的应力边界会更新而不会累加)。如果要去除原来的应力,当前施加值必需等于负的已有值,才可抵消上次边界条件施加的影响。

如果是瞬态荷载改变(如通过 history 关键字施加的瞬态荷载),那么类型相同的新荷载同样会累加到已有荷载上,而如果新荷载的类型与原来不同,则会替换掉原有的瞬态荷载。这里的类型指正弦荷载、余弦荷载、脉冲荷载等。

2.3 如何检查边界条件

边界的应力或者力可以通过 LIST bound 来检查,该命令会列举出边界顶点的地址以及相关的值,可选的二级关键字包括 diaplacement,force,reactions,state,summary,velocity ,具体所代表的含义可以查看帮助文档。例如:

 list bound force

会列举出永久力荷载(fx,fy,fz) 以及当前加载步的力的增量(fxi,fyi,fzi)

如果用 BOUNDARY. . . hist 施加了瞬态力,那么总的力指的是在当前循环下的永久力荷载与瞬态载荷的和。

2.4 特别注意的问题

如果模型中既有速度边界又有应力边界,速度边界最好在应力边界之后施加,如果应力边界在速度边界之后施加,且二者产生了重叠的边界,那么重叠的速度边界上指定的速度就会被清除掉。下面混合边界条件的例子可以说明:

new
poly brick 0,10 0,10 0,10
plot create plot Blocks
plot block
plot reset
;
gen quad ndiv 4 4 4
;
prop mat=1 dens 1000 bulk 8e9 g 5e9
bound zvel = 0.0 range z 0.0
bound stress -1e5,0,0 0,0,0 range x 0.0
bound stress -1e5,0,0 0,0,0 range x 10.0
bound stress 0,-1e5,0 0,0,0 range y 0.0
bound stress 0,-1e5,0 0,0,0 range y 10.0
bound stress 0,0,-2e5 0,0,0 range z 10.0
;
hist zdisp 0,0,0
step 100
;
plot clear
plot axes scale = 10 block fill off vel line color blue
ret

本来施加在模型底部的速度边界是用来限制模型在Z方向的速度的,但模型运行后,由于应力边界的施加,位于底部四条边上重叠的边界上速度边界被清除了,模型四周的点有向下运动的速度,如上图的速度矢量所示。

3.位移边界

在3DEC中,其实是不能直接对位移边界进行控制的,为了给可变形块体的边界指定位移,有必要固定边界然后指定一个边界速度。假设想指定的位移为D,经历的时间为T,就可以根据D=V*T,来指定速度了。其中T=Δt*N,Δt是时间步长,N是循环数。在实际模拟中,应该尽量将V保持在一个较小值,保持N较大,从而最小化系统的振荡。

BOUNDARY xvel, yvel, zvel 可以用来指定可变形块体在X,Y,Z方向的速度,或者用 BOUNDARY nvel 来指定边界的法向速度,通常用于边界面不在坐标平面内时。使用 FIX 命令可以固定刚体或者可变形块体的速度(固定的速度为当前速度);APPLY 命令用来为刚体指定非当前的速度,速度也可以通过FISH函数来调整。

随时间变化的速度历程可以通过“命令+hist”来指定,不同的是 BOUNDARY . . . hist 来指定可变形块体的速度,APPLY...hist 则指定刚体的速度。注意:在指定速度历程时,hist 关键字必须与 BOUNDARY xvel, BOUNDARY yvel 或者 BOUNDARY zvel 出现在一起,hist 其实就是相当于一个速度的乘数的作用,hist 关键字还可以指定为荷载的乘数,具体的可以查看帮助文档中 BOUNDARY 中有关 hist 关键字的用法。这里还强调一点就是,速度边界应当总是在应力边界之后指定 。如果想移除块体所指定的速度边界,对于可变形块体可以用 BOUNDARY xfree, BOUNDARY yfree 或者 BOUNDARY zfree 命令来消除,对于刚体可以用 FREE 命令来消除 。


长风破浪会有时,直挂云帆济沧海。