FLAC3D6.0新手向之命令篇(一)
经常有人问我,作为初学者应该选择学习FLAC3D3.0,FLAC3D5.0亦或是FLAC3D6.0,对此,笔者的建议是选择FLAC3D6.0。笔者看中的主要优势有四点:一是新增的model pane板块与face group 功能极大地方便了对模型不规则曲面的处理——包括但不局限于不规则曲面上的应力施加,结构单元建立、接触面的建立以及后处理;二是新增了与ABAQUS、ANSYS的网格文件接口,用户可以直接导入ABAQUS或者ANSYS的网格文件,不必再使用各类转换接口;三是老版本命令流一键转换,降低了老版本用户的学习难度;FLAC3D6.0新手向之命令篇分为两部分,(一)介绍FLAC3D6.0的老版本命令流一键转换,(二)介绍升级后的editor板块。要使用一键转换功能,只需在editor里键入老版本命令流后,点击软件左上角的Edit菜单,在其子菜单中选择最后一项command conversion即可,如下图。
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598571472_djpvu1.jpg?imageView2/0)
点击command conversion之后,软件将会出现一个对话框,如下图所示,这是让我们设置是否转换原命令流中的fish函数,默认是on,如果选择off,那么原命令中的fish函数将不会被转换,笔者建议保留默认设置,直接点convert进行转换。
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598570434_5objlx.jpg?imageView2/0)
笔者选择了陈育民书中例8.4的部分命令流作为例子进行讲解,此案例囊括了大部分命令流转换报错的情形,原命令流如下:
new
gen zon bri size 3 3 3
model elastic
prop bu 3e7 sh 1e7
ini dens 2000
fix x y z ran z -.0 .1
fix x ran x -.1 .1
fix x ran x 2.9 3.1
fix y ran y -.1 .1
fix y ran y 2.9 3.1
set grav 10
set mechanical ratio 1e-4
solve
ini xd 0 yd 0 zd 0 xv 0 yv 0 zv 0
def E_modify
p_z = zone_head
d_k = 704
d_n = 0.38
d_pa = 101325.0
loop while p_z # null
sigma_3 = -1.0*z_sig1(p_z)
E_new = d_k*d_pa*(sigma_3/d_pa)^d_n
z_prop(p_z,'young') = E_new
p_z = z_next(p_z)
endloop
end
E_modify
plot cont prop young
经过转换后的命令流如下:
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598571788_akae11.jpg?imageView2/0)
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598570094_wbywba.jpg?imageView2/0)
以;%%-- The new property name for sh depends on the constitutive model, it could be any of those listed above.为例,这里的意思就是原命令prop bu 3e7 sh 1e7中的sh(即剪切模量shear)的新名称取决于本构模型,不同本构模型的剪切模量名称是不同的,并且已经将可能的名称列在了已转换的命令中:zone property %%bulk,bulk-reference,bulk-maximum%% 3e7 %%flag-shear,shear-minimum,shear-reference,shear,shear-maximum%% 1e7我们只需要根据所指定的本构模型,选择相应的剪切模量名称即可。同理对于The new property name for bu depends on the constitutive model, it could be any of those listed above.我们只需要根据所指定的本构模型,选择相应的体积模量名称即可。对于弹性本构,修改完成后的赋参命令为:zone property bulk 3e7 shear 1e7.(2)修改计算收敛条件时的变色处理(第16行)
原命令为set mech ratio 1e-4,转换后的命令为model mechanical %%ratio%% 1e-4,并有如下报错:;%%-- Specify the RATIO limit in the SOLVE command.意为在solve命令中指定limit ratio。因此老版本命令的set mech ratio 1e-4以及其后的solve应合并为一句:model solve mechanical unbalanced-maximum 1e-4
======分割线======
(3)fish函数转换中的错误(第37行)
%%!! Original command: E_modify;%%-- Command not recognized.解决此类报错很简单,只需要在函数名称E_modify前加一个@即可。这是因为FLAC3D5.0及以上版本调用函数的格式为@function,而FLAC3D3.0调用函数只需在函数end后键入函数名。另外,FLAC3D6.0设定函数变量值的格式为[变量名=value],而老版本设定函数变量值的格式为set 变量名=value,这时转换会报错,提示你的变量名不是一个命令,以set udmax = 30000为例,报错见下图,此处需要我们自行更改为[udmax=30000]。![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598570709_i91xr3.jpg?imageView2/0)
%%-- PLOT commands are not translated.此处报错是因为FLAC3D6.0升级了自身的GUI逻辑,显示结果均可由鼠标操作实现,plot命令变得不常用了。本例中原命令为plot cont prop young,即显示模型的杨氏模量云图,命令流操作为:plot item create zone active on contour property log off name 'young' method average![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598572688_f14r2g.jpg?imageView2/0)
(1)添加新的显示窗口(如果已经有plot,忽略这一步)
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598572215_7iycjc.jpg?imageView2/0)
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598571065_9jtr18.jpg?imageView2/0)
(2)添加显示的项目
![](https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1703598569635_jfeppb.jpg?imageView2/0)
(3)设置显示内容