首页/文章/ 详情

新手向——FLAC3D6.0如何输出节点位移

4月前浏览542
在利用FLAC3D计算完成后,有时需要提取单个或多个节点的位移,笔者在此提供常用的2种方法:①使用list功能提取;②编写fish函数提取。

======案例演示======

案例模型为6*6*6*的立方体,分组情况见图1。进行初始平衡后挖去分组‘2’,提取并输出模型各节点的位移。

图1 模型分组

命令流如下:

    ;建立模型并完成开挖计算model newzone create brick size 6 6 6 group '1'zone cmodel assign m-czone prop bulk 5e8 shear 3e8 coh 1e6 fric 20zone ini dens 2800zone face skinzone face apply v-n 0 range group 'West' or 'East'zone face apply v-n 0 range group 'North' or 'South'zone face apply v-n 0 range group 'Bottom'model gravity 9.81model solve elasticzone group '2' range p-x 1 5 p-z 1 5zone cmodel assign null range group '2'model solve

    图2 Z向位移云图
    ①使用list命令提取位移,相应位移值会输出到软件console界面,见图3.
    命令如下:
      ;提取全部节点位移zone gridpoint list displacement ;提取某个分组(包括面分组)的节点位移,则命令变为:zone gridpoint list displacement range group 'xxx';提取某一个节点(x,y,z)的位移,则命令变为:zone gridpoint list displacement range position (x,y,z);提取某个范围内的节点位移,则命令变为:zone gridpoint list displacement range position-x x1 x2 position-y y1 y2 position-x z1 z2

      图3 list位移输出示意

      Tips1:输出的位移看Displacement列,不看Small Displacement列,此项可以通过fish函数提取结果对比。
      ②使用fish函数并提取,本文以提取x向位移并输出到txt文件为例,命令如下:
        ;提取单个节点(x,y,z)结果并输出到consolefish def disp_out  gpnt = gp.near(x,y,z)  xdisp = gp.disp.x(gpnt)  ydisp = gp.disp.y(gpnt)  zdisp = gp.disp.z(gpnt)  io.out('The x-displacement of gridpoint is: \n' + string(xdisp))  io.out('The y-displacement of gridpoint is: \n' + string(ydisp))  io.out('The z-displacement of gridpoint is: \n' + string(zdisp)) end@disp_out ;提取模型所有节点的编号与x/y/z位移并输出到txt文件,以输出x位移为例:fish def disp_out    n = 0    loop foreach gpnt gp.list        n = n+1        table.x(1,n) = gp.id(gpnt)        table.y(1,n) = gp.disp.x(gpnt)    endloop    command        table '1' export 'xdisp.txt'     endcommandend@disp_out

        图4 fish提取整个模型节点x位移输出结果
        Tips2:利用fish提取某个分组的节点位移时,使用gp.isgroup()函数进行分组判别,详情见《gp.group函数与gp.isgroup函数辨析》一文。
        Tips3:若想一次输出节点的所有位移,则将table替换为一个m行4列的数组即可,其中第一列存放序号或者节点编号,第二至四列存放x/y/z的位移值,二维数组的写出见《二维数组的写出:以10×10数组为例》一文。
        ======总结======

        提取单个节点的位移情况,建议用list功能,如果节点坐标正确,但输出为空时,采用fish语言输出。这是因为flac内部存在一定容差,可能导致找不到该节点。

        提取多个节点位移时,建议采用fish提取。

        来源:FLAC3D小技巧
        FLAC3D
        著作权归作者所有,欢迎分享,未经许可,不得转载
        首次发布时间:2023-12-26
        最近编辑:4月前
        FLAC3D小技巧
        硕士 专注FLAC3D中的小技巧分享...
        获赞 24粉丝 118文章 40课程 0
        点赞
        收藏
        未登录
        还没有评论

        课程
        培训
        服务
        行家

        VIP会员 学习 福利任务 兑换礼品
        下载APP
        联系我们
        帮助与反馈