这是在彭文斌老师书上抄的的一个程序,作为自己联系。但在运行的时候总是报错
unrecognized parameter width
程序如下
ge zo b size 10 5 5
mod el
prop shear 1e8 bulk 2e8
fix x y z range x -0.1 0.1 y 0 5 z 0 5
fix x y z range x 0 10 y 0 5 z -0.1 0.1
fix x y z range x 9.9 10.1 y 0 5 z 0 5
table 1
def find_add
head=null
p_gp=gp_head ;g_head 指向节点表 zone_head 指向单元体表
loop while p_gp#null
x_pos=gp_xpos(p_gp) ;gp_xpos(p_gp) 节点地址为p_gp的点的x坐标
if x_pos=gp_xpos(p_gp)
new=get_mem(2) ; mem(ad)设置或获得正常FISH变量地址
mem(new)=head ;get_mem(n)申请n个fish变量对象的内存空间,返回内存的开始地址
mem(new+1)=p_gp
head=new
endif
p_gp=gp_next(p_gp) ;gp_next下一个节点地址
end_loop
end
set width=10.0
find_add
def apply_vel
whilestepping;由于由此命令,每个时间步都会执行apply_vel函数
ad=head
loop while ad #null
p_gp=men(ad+1)
gp_xvel(p_gp)=vel_max *gp_zpos(p_gp)/height
gp_zvel(p_gp)=-vel_max *(gp_xpos(p_gp)-width)/height
ad=men(ad)
end_loop
end
set large vel_max=1e-2 height=5.0
step 100
step 100