2007年5月18日星期五

非线性结构分析软件Diana的文件体系及命令行分析学习备忘

Diana是一个不错的有限元分析软件,不过其前后处理功能并非特别强大。
在学习其中的一些体会。

1)快捷键的设置有点类似以前的Algor Dos版,假如记忆深刻的话,操作速度比较快,不过现在对于批处理命令,我总是写在一个如abc.fgc之类的文件里面,用u->r->b->此文件来调用,否则太长的命令也让人难以记忆
2)有类似ansys的log体系,以记录操作流程,通过整理这个流程,可以重复使用,重现建模过程。不过其缺点在于对变量和参数的设置并不好。比如我定义半径作为变量的时候,建模就无法进行,曾经给其公司发去咨询信,暂时未获回复。
3)混凝土本构模型比较多,但也不是包罗万象。比如普通版本里面Makawa模型就没有,W-W五参数也没有见到,或许是我尚未熟悉?对于约束混凝土的模型只提供了Collins的。虽然有usrmat,但是总归比较麻烦。
4)对于三维体的划分不算太好,其前处理采用的内核并不好,听说与Midas合作,希望可以做出比较喜人的界面,否则总是难以推广。Ansys自身界面虽丑,但是在坚持不变的情况下,仍有workbench来吸引新人。Abaqus显然界面要更好些,不过有些功能也隐藏的太深入了。

暂时不说,为了能更快的进行操作,总结一下学习经验。
1)文件体系
只有明白了这个,才能够在后期的时候,有意识的去保留或者删除某些文件。
前处理阶段
①最基本的文件,.dat文件,这个是前处理得到的结果,内含几何,材料,荷载,边界等内容,相信所有的有限元软件计算前都要生成一个。
.com文件,这个就是其帮助里面常谈的filo文件了,是控制分析和输出的,比如包括步长,收敛准则等。
有了这两个文件,就可以分析了。
图形界面的是dianaw,比较直观,常用。为了学习以后的批量处理,不谈这个。
那么最简单的方法,去到command box,进入这个dat和com所在目录
键入 如diana a.dat a.com的命令,就会开始分析和得到结果。
fgc文件,这个可以是其他后缀名,主要是建模的命令流。
his文件,是记录操作的文件,类似ansys的log
g70文件,是模型的二进制文件。
在计算完之后,会得到几个文件。
①.out文件,是记录分析时候的一些信息
②.tb文件,节点和单元的数据输出文件。搞了许多page出来,让人颇不爽。
m70和v70文件,假如想图形看后处理的话,就会生成这两个文件了。
fvc文件,后处理时候命令流的默认后缀名。
.ff文件,默认叫diana.ff,这个就是模型计算结果的保存文件了,二进制的。数据大的要命,有点类似ansys的db文件。假如结果真的很重要的话,得保存,否则的话,就不保留了,可以保留tb文件就算了,否则硬盘空间就会越来越小,非线性的时候这个文件可不是一般的大。

2)命令行操作程序
①先看看文件的大致内容,比如.com,filos文件,调用程序内部filos模块的一个控制。比如线性分析的,大致如下,看帮助可以得到其不同含义,在dianaw这个界面里可以可视化控制,不过不如直接写来的方便。
;;;-----------------------
*FILOS
INITIA
*INPUT
*LINSTA
BEGIN OUTPUT TABULA
DISPLA
STRESS LOCAL
END OUTPUT
*END
;;;------------------------
在做diana frame line.com之后得到的.out文件大致如下,不修改的话会得到相应文件名+后缀的结果。
.out记录了计算过程中的各种提示
1
/DIANA/AP/IN40 15:52:59 0.13-CPU 0.10-IO 92.-FA BEGIN
/DIANA/AP/LS41 15:52:59 0.15-CPU 0.13-IO 115.-FA BEGIN
ELEM. STIFFNESS STORED.
RHS-VECTORS INITIALIZED: ML= 1 ND= 33 SF.RHSIDE
EXTER. LOAD INITIALIZED: ML= 1 ND= 33 SF.EXTLOD
CONST.DISP. INITIALIZED: ML= 1 ND= 33 SF.DISCON
STRESS LOAD INITIALIZED: ML= 1 ND= 33 SF.SIGLOD
NODAL LOADS TO RHS-VECT: NV= 1 NL= 1 SF.RHSIDE
NODAL LOADS TO EXT.LOAD: NV= 1 NL= 1 SF.EXTLOD
ELEMENTLOAD TO RHS-VECT: NV= 1 SF.RHSIDE
ELEMENTLOAD TO EXT.LOAD: NV= 1 SF.EXTLOD
INC. INITIAL STRAIN/STRESS LOAD ADDED TO RHS-VECT: NV= 1 SF.RHSIDE
诸如此类

而.tb的文件里面有大概这些内容
frame Page 1
Analysis type LINSTA
Load case nr. 1
Result DISPLA TOTAL TRANSL
Axes GLOBAL

Nodnr DtX DtY DtZ
1 0.000E+00 0.000E+00 0.000E+00
2 -1.172E-02 -2.500E-05 0.000E+00
3 -1.953E-02 -5.000E-05 0.000E+00
4 -1.953E-02 -7.500E-05 0.000E+00

假如想在命令行直接得到可视化的后处理呢,可以在这个.com里面加上一段话,主要是FEMVIE这个词。
*FILOS
INITIA
*INPUT
*LINSTA
BEGIN OUTPUT TABULA
DISPLA
STRESS LOCAL
END OUTPUT
BEGIN OUTPUT FEMVIE
DISPLA
STRESS
STRAIN
END OUTPUT
*END
于是结果中会多出一个叫m70和v70的东西来。其实这段话不写一点问题都没有,因为在图形界面的diana中进行调用后处理的话仍然会产生m70和v70文件,不过会多一些提示而已,文件的大小也不一样。
②如何比较快的进行操作。
每次都操作dianaw其实是很无聊的一件事,因此命令行是必要的。但是command box之后还要不断的修改目录,那么可以这么来做。

1.bat (启动diana的运行环境)
set path=f:\progra~1\Diana 9
dialogin.bat
2.bat(直接默认运行)
Diana frame line.com
3.bat(把ff放在其他地方运行-硬盘空间不够,需要把.ff文件设置在其他盘)
set FF=g:\joseph.ff
diana frame line.com
4.bat(把结果改名-在不需要得到后处理图形文件的情况下得到不同的分析结果)
diana result frame.dat line.com

然后在TC里面,按CTRL+G调出dos面板,然后依次运行一下1,2
就可以得到结果了,个人感觉比dianaw要快一些。