1. 引言
[bound_his_start = mech.step]
fish def bound_his
bound_his = 0.9976^((mech.step-bound_his_start)/100.0)
end
def relax_pct
relax_pct = (1.-bound_his)*100.
end
2. block relax
(1) 块体是被开挖的,而不是被删除的,因此可以使用block fill命令将它们带回来,最大的应用场景是模拟嗣后充填法【与充填采矿模拟相关的一些注意事项(Excavation and Backfilling)】。
(2) 执行此命令时会执行一个计算时步,以确定所需的引力 (等于开挖表面上的不平衡力)。
(3) 一次只能有一个松弛条件处于活动状态,如果给出第二个block relax命令,则移除前一个block relax命令所施加的力。
block relax的关键字如下:
(1) fish s
指定用于减少施加力的 FISH 函数的名称。每个计算时步的函数结果都会乘以初始力,该函数必须返回 0 到 1 之间的值。
(2) linear i
在接下来的 i 计算时步中将引力线性减少到指定的最小值。
(3) nonlinear i
该函数渐近地接近指定的最小值,因此 f 的值不会在 i时步内精确地减小到 0。经过1000 步松弛到差不多0的典型曲线如下所示:
删除现有的松弛条件 (施加的力将设置为 0)。
(6) face-group s <slot s >
当给出block relax命令时,范围内的所有面都会自动分配一个组名。默认情况下,槽 srelax 中的组名称为 srelax。可以通过为范围内的面分配特定的组名称(以及可选的槽)来覆盖此默认值。请注意,如果选择的组名称已存在,则字符串 _1 将附加到指定的组名。
3. 试验
block relax nonlinear 1000 range group 'exc'
block excavate range group 'exc'
如果采用block relax命令开挖,隧道顶板的最大位移量为0.0424m;如果采用block excavate命令开挖,隧道顶板的最大位移量为0.257m。这意味着一次性开挖可能过高地估计了位移量。