论坛首页    职业区    学术与写作    工程技术区    软件区    资料区    商务合作区    社区办公室
 您好! 欢迎 登录 或 注册 最新帖子 邀请注册 活动聚焦 统计排行 社区服务 帮助
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
  • 2358阅读
  • 2回复

flac 3d [复制链接]

上一主题 下一主题
离线an-yantu
 

发帖
1852
土币
33661
威望
180
原创币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2012-08-08
请高手 翻译一下下面的fish语句 什么意思?
def aux2
command  
set grav 0 0 -10
water dens 1000
end_command
loop n(1,nptab1-1)
loop k (1,nprof-1)  
      xx1=xtable(n+10,k)  
      yy1=ytable(n+10,k)  
      zz1=ytable(1,n)    
      xx2=xtable(n+10,k+1)  
      yy2=ytable(n+10,k+1)  
      zz2=zz1
      xx3=xtable(n+11,k+1)  
     yy3=ytable(n+11,k+1)
     zz3=ytable(1,n+1)  
     xx4=xtable(n+11,k)
     yy4=ytable (n+11,k)
      zz4=zz3  
      command
      WATER TABLE face xx1,yy1,zz1 xx2,yy2,zz2 xx3,yy3,zz3
      WATER TABLE face xx1,yy1,zz1 xx3,yy3,zz3 xx4,yy4,zz4
      end_command
      end_loop
      end_loop
      end
     aux2
     ret
岩土

发帖
28
土币
6742
威望
1
原创币
0
只看该作者 1楼 发表于: 2012-08-29
看看这个关于water.fis的命令注释吧,希望对你有所帮助哦!
关于water.fis的命令注释(设置地下水位)
1)water.fis的 功能是设置地下水位面,在二维计算中,通过water table命令即可设置水位线,在三维计算 中由于地下水位是面,因此需要作一些插值运算,以便形成水位面。这个FISH程序包含三个函数parm,aux1和aux2。parm用来设定水位的边值,即设置水位的区域,aux1插 值计算等值线的点,aux2调用aux1的 计算结果,使用FLAC3D命令形成水位面。
2)首先设置参数值,然后定义一个table.
def parm
nptab1=7
nprof=10
end
parm
table 1 (12 0) (18.25 12.5) (25 17) (35 21) (50 24) (75 25) (150 25)
产 生table1,包含7组数据点。
3) 在解释的两个FISH函数之前,对table,xtable,ytable作 一些总的说明。water.fis程序反复使用了这三个变量,理解了这三个变量的含义,water.fis这段程序就解决了大半问题了。
Itasca的所有软件都使用了相同的数据结 构储存数据,称之为链表结构,类似于关系型数据库中的数据链接方法。如果有数据结构的知识,或掌握关系型数据库的SQL语 言,这三个变量的含义就不难理解了,只不过这个操作与真正的数据库操作相比,只有两个数据变量x,y。 我用数据库的术语作解释:table就是产生一个“表”,xtable,ytable的作用就是产生一个新 表(Create)以及对表中的数据进行取出(Select)、 插入(Insert)、替换(Update)操 作.
4)FISH函数aux1的 作用是在table 1的基础上产生出另外个table,table的ID从11到17,每个table有10个数据集。alfa的计算方法是为适合(fit)曲面而采用的坐标点算法。
def aux1
loop n(1,nptab1)
  rr=xtable(1,n)
  zz=ytable(1,n)
    loop k(1,nprof)
      case_of k
        alfa=0.5*(pi+.1)*float(k-2)/float(nprof-2)
        xtable(n+10,k)=rr*cos(alfa)
        ytable(n+10,k)=rr*sin(alfa)
        case 1
        xtable(n+10,k)=rr
        ytable(n+10,k)=-40.0
        case 2
        xtable(n+10,k)=rr
        ytable(n+10,k)=0.0
      end_case
     end_loop
end_loop
end
aux1
当执行这个FISH函数后,生成(nptab1+10,nprof)组数据,这些数据为Aux2调 用。注意:本段程序产生的数据是为那个特定的曲面边坡制作的,不是一个general purpose的LIB
5)FISH函数aux2的作用是 使用WATER TABLE face命令产生水
面,把table 1的ytable值作为z坐标,aux1产生的数据作为x,y坐标。
def aux2
command
  set grav 0 0 -10
  water dens 1000
end_command
loop n(1,nptab1-1)
  loop k (1,nprof-1)
     xx1=xtable(n+10,k)
     yy1=ytable(n+10,k)
     zz1=ytable(1,n)
     xx2=xtable(n+10,k+1)
     yy2=ytable(n+10,k+1)
     zz2=zz1
     xx3=xtable(n+11,k+1)
     yy3=ytable(n+11,k+1)
     zz3=ytable(1,n+1)
     xx4=xtable(n+11,k)
     yy4=ytable(n+11,k)
     zz4=zz3
     command
       WATER TABLE face xx1,yy1,zz1 xx2,yy2,zz2 xx3,yy3,zz3
       WATER TABLE face xx1,yy1,zz1 xx3,yy3,zz3 xx4,yy4,zz4
     end_command
   end_loop
end_loop
end
aux2
共1条评分 ,土币+2
安文博-岩土 土币 +2 - 2012-09-15
离线an-yantu

发帖
1852
土币
33661
威望
180
原创币
0
只看该作者 2楼 发表于: 2012-09-15
回 涛声依旧0315 的帖子
涛声依旧0315:看看这个关于water.fis的命令注释吧,希望对你有所帮助哦!
关于water.fis的命令注释(设置地下水位)
1)water.fis的 功能是设置地下水位面,在二维计算中,通过water table命令即可设置水位线,在三维计算 中由于地下水位是面,因此需要作一些插值运算,以便形成水位面。这个FIS .. (2012-08-29 14:27) 

谢谢指导-----
岩土
快速回复
限100 字节
温馨提示:欢迎交流讨论,请勿纯表情、纯引用!
 
上一个 下一个

      https://beian.mps.gov.cn/ 粤公网安备 44010602012919号 广州半山岩土网络科技有限公司 粤ICP备2024274469号

      工业和信息化部备案管理系统网站