- 积分
- 1
- 注册时间
- 2008-6-30
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2012-6-8 09:01:31
|
显示全部楼层
来自 安徽马鞍山
wqq8889 发表于 2012-6-7 19:25 
谢谢楼主的贡献,有个问题想请教一下:
第六步, 采用已有的surfer 2 FLAC3D程序,导入到FLAC3D里面。具体 ...
main.dat及其调用的fish子程序文件如下:
new
def pre
oo=out('===============Please input the parameter of the mesh===============')
oo=out('=============== attention ===============')
oo=out('=============== Index_x:Gridpoints along the X-AXE ===============')
Index_x=in('Index_x=')
oo=out('=============== Index_y:Gridpoints along the Y-AXE ===============')
Index_y=in('Index_y=')
oo=out('=============== Index_z:Gridpoints along the Z-AXE ===============')
Index_z=in('Index_z=')
oo=out('=============== Hb_surf:z_cordinate of the below surf ==============')
Hb_surf=in('Hb_surf=')
end
pre
call SURFER.fis
call NODEGEN.fis
call MESHGEN.fis
save mesh.sav
def setup
nd_size=Index_x*Index_y
Io_read=0
I0_ascll=1
filename='surfnd.dat'
end
setup
def snd_read
array surf_nd (nd_size)
f_io=open(filename,Io_read,I0_ascll)
status=read(surf_nd,nd_size)
caseof abs(status)
case 1
oo=out('Fatal error:Unexcept end-of-file,you shoult rebuild the surfnd.dat!')
key=1
exit
case 0
00=out('Reading is well done!')
loopid=nd_size
endcase
if abs(status) > 1
oo=out('Fatal error:surf_nd demensions are too large!')
key=1
exit
endif
f_close=close
end
snd_read
def ndgen
if key=1
exit
endif
array node_cor (loopid,3,Index_z)
;z_depth=float(Hb_surf)/(Index_z-1)
loop i (1,Index_z)
loop ii (1,loopid)
node_cor(ii,1,i)=parse(surf_nd(ii), 1)
node_cor(ii,2,i)=parse(surf_nd(ii), 2)
Height=(Index_z-i)*(parse(surf_nd(ii), 3)-float(Hb_surf))/(Index_z-1)
node_cor(ii,3,i)=parse(surf_nd(ii), 3)-Height
endloop
endloop
end
ndgen
def mshgen
if key=1
exit
endif
array p1loc (3) p2loc (3) p3loc (3) p4loc (3)
array p5loc (3) p6loc (3) p7loc (3) p8loc (3)
array gpid (4)
loop i (1,Index_z-1)
loop ii (1,Index_x-1)
loop iii (1,Index_y-1)
gpid(1)=(iii-1)*Index_x+ii
gpid(2)=gpid(1)+1
gpid(3)=gpid(1)+Index_x+1
gpid(4)=gpid(3)-1
loop mshid (1,3)
p1loc(mshid)=node_cor(gpid(1),mshid,i)
p2loc(mshid)=node_cor(gpid(2),mshid,i)
p3loc(mshid)=node_cor(gpid(3),mshid,i)
p4loc(mshid)=node_cor(gpid(4),mshid,i)
p5loc(mshid)=node_cor(gpid(1),mshid,i+1)
p6loc(mshid)=node_cor(gpid(2),mshid,i+1)
p7loc(mshid)=node_cor(gpid(3),mshid,i+1)
p8loc(mshid)=node_cor(gpid(4),mshid,i+1)
endloop
p0x=p1loc(1) p0x p0y p0z
p0y=p1loc(2)
p0z=p1loc(3)
p1x=p2loc(1)
p1y=p2loc(2)
p1z=p2loc(3)
p2x=p4loc(1)
p2y=p4loc(2)
p2z=p4loc(3)
p3x=p5loc(1)
p3y=p5loc(2)
p3z=p5loc(3)
p4x=p3loc(1)
p4y=p3loc(2)
p4z=p3loc(3)
p5x=p8loc(1)
p5y=p8loc(2)
p5z=p8loc(3)
p6x=p6loc(1)
p6y=p6loc(2)
p6z=p6loc(3)
p7x=p7loc(1)
p7y=p7loc(2)
p7z=p7loc(3)
command
gen zone brick size 1 1 1 p0 p0x p0y p0z &
p1 p1x p1y p1z p2 p2x p2y p2z) &
p3 p3x p3y p3z p4 p4x p4y p4z &
p5 p5x p5y p5z p6 p6x p6y p6z &
p7 p7x p7y p7z
endcommand
endloop
endloop
endloop
end
plo blo gro
mshgen
需要说明的是,这个不是我的首创,而是论坛内的大牛们早在几年前就搞了,我只不过是基本应用而已。
|
|