求指教,彭文斌书FLAC3D实用教程P130,关于fish语言的问题:
n
gen zone brick size 10 5 5
mod el
prop shear 1e8 bulk 2e8
fix x y z ran x 0 y 0 5 z 0 5
fix x y z ran x 0 10 y 0 5 z 0
fix x y z ran x 10 y 0 5 z 0 5
table 1
def find_add
head = null
pnt = gp_head
loop while pnt # null
x_pos = gp_xpos(pnt)
if x_pos = width then
new = get_mem(2)
mem(new) = head
mem(new+1) = pnt
head = new
endif
pnt = gp_next(pnt)
endloop
end
set width = 10.0
find_add
def app_vel
while_stepping
ad = head
loop while ad # null
pnt = mem(ad+1)
gp_xvel(pnt) = vel_max * gp_zpos(pnt) / height
gp_zvel(pnt) = -vel_max * (gp_xpos(pnt) - width) / height
ad = mem(ad)
endloop
end
set large vel_max = 1e-2 height = 5.0
step 100
plot grid black vel red
前一个函数定义了一个链表,自己理解是X=10这个面的所有节点的一个链表,可是下面函数在施加节点速度时,怎么结果
图中显示的是所有节点都有速度矢量,不是只遍历了x=10这个面的节点吗?自己觉得显示的速度矢量图应该只在x=10一
个面上的,况且在
gp_xvel(pnt) = vel_max * gp_zpos(pnt) / height
gp_zvel(pnt) = -vel_max * (gp_xpos(pnt) - width) / height
中gp_xpos不是一直等于10吗,看了很久觉得矛盾,求高人指点下