其实在flac3d6.0里面,
已经有了一种限制范围的方法。
就是你先定义一个组,
然后再用gp.isgroup这个内置变量进行约束。
也就是先遍历,
找到符合条件(isgroup)的组,
就可以对其进行操作了,
也就是下图的生成映射,
当时你也可以做其他的操作。
另外还有一个zone.isgroup也是一样的用法。这里的图片,
主要是限定某个面的坐标,
只有限定的坐标才能进去这个集 合,
之后再让这个集 合遍历(遍历cap),
进行数据处理(累计计算面上的力)。
大家也可以借鉴一下
; FISH to store gridpoints on y=0 surface 'South'
fish define FindSurface
global surface = map ;构建映射型变量map
loop foreach local gp gp.list
if gp.isgroup(gp,'South') then
surface(gp.id(gp)) = gp ;建立节点之间的联系,地址-ID
endif
endloop
end
@FindSurface
; FISH to track AxialStress on y=0 surface 'South'
fish define AxialStress
local str = 0
loop foreach local gp surface ;开始遍历
str = str + gp.force.unbal.y(gp) ;你做什么
endloop
AxialStress = str / math.pi ; cylinder radius = 1 ;还是你做什么
end