在UDEC的生成网格的 generate 命令中,除了可以让程序自动划分网格还提供了一项自定义网格的关键字,具体的我在《UDEC中网格划分 gen edge 与 gen quad 的区别》一文中有说明。但是对于复杂块体,程序自动划分的网格实在是惨不忍睹,而且不能像ABAQUS中那样设置部分部位的网格疏密,于是我就想在ABAQUS中划分网格再利用命令导入。万万没想到,UDEC居然对读取字符的总长度有限制??

为了先进行测试,我准备将原来在ABAQUS中做过的一个简单的模型网格导入UDEC试试,结果死活都不成功,我还以为是格式错了,我又在ABAQUS建了个更简单的模型,就是下图的这个,然后转化成UDEC可识别的格式进行导入测试。

结果UDEC确实是可以识别的:

确认转换格式没问题后,我就又将最开始的那个测试模型导入进行测试

生成的UDEC网格文件格式如下

gen man & 
grid &
  0.42426407    0.42426407  &
  0.00000000    0.60000002  &
 -0.42426407    0.42426407  &
 -0.60000002    0.00000000  &
 -0.42426407   -0.42426407  &
  0.00000000   -0.60000002  &
......
zone &
  114   115   163 &
   62   114   113 &
  125   126   176 &
   85   171   103 &
  100   101   145 &
   98    99   143 &
   13    60    21 &
......

结果导入读取还是不成功,一直弹出警告 Too many input characters (max.=2000)

在Console窗口中我发现call的这个网格文件根本都读完,应该是到达它所说的字符上限了。

我又在帮助文档中讲命令语法那里找到这么几句话: An ampersand (&) at the end of a line denotes that the next line is a continuation of keywords or numeric input. The maximum length of a single command, including all continuations, is 5000 characters. A maximum of 1000 input parameters are allowed in one command.

既然这是对单个命令的字符限制,那能不能将 generate 命令分多次写呢?命令里又写了这么一句话:Care must be taken, when using manual zoning, to ensure that zoning completely fills the block,大意就是说自定义的网格必须填满块体,这就没办法了。

这个ABAQUS测试模型一个才193个节点,330个单元,就达到所说的字符上限了,而且警告里说的最大字符是2000个,命令语法里又说最多可以达到5000个,搞不懂,就算是5000个字符也不够用啊。那更复杂模型的网格数据岂不是更加超过所谓的字符上限了?那这个命令的意义又何在呢?

不知道我对这个命令的理解有没有错误,如果我的理解有误或者说还有其他的命令、方法能将外部网格数据导入UDEC的话还请告诉我一声。


长风破浪会有时,直挂云帆济沧海。