1. 问题描述
工欲善其事,必先利其器。
ANSYS有限元建模分析是工程领域重要的工作。命令流模式的ANSYS建模,需要大量的调试工作,一个友好高效的编辑器+高效的工作方法,可以使这项工作事半功倍。
ANSYS本身不提供调试编辑器,不具备断点调试功能。需要逐段运行才能不断完善命令流,修改程序。如果在常规的记事本中进行这一操作,效率极低,而经过配置的NotePad++编辑器使得这一过程及其高效。文末提供了已经配置好的NotePad++下载链接。
2.技术背景
Notepad++是一款windows下的高效的文本编辑器,以下简称为NPP。软件本身小巧高效,支持多种编程语言的代码处理。经过配置之后,可以高亮ANSYS代码,并提供很多有助于调试工作的高级功能:
- 语法高亮;
- 分屏显示;
- 行号定位;
- 文件筛选;
- 大小写转换;
3. 解决方案
要实现ANSYS命令流模式的快速建模调试,一种可行的方案是模块化建模方法。
3.1 文件命名约定
后缀名约定
- 程序代码统一
.dat
; - 数据文件统一
.txt
;
统一后缀的好处在于,便于文件筛选。
名称约定
-
main.dat
,主程序; -
test.dat
,调试程序; -
sub_node.dat
,分析子程序,以sub_
开头; -
kp_beam.dat
,几何建模代码,以kp_
开头(key points);
3.2 程序分块
一般的ANSYS命令流,往往会把成百上千行的代码写在一个文本文件中。这种方式虽然在一个文件中集成了所有的信息,问题是:
- 代码过长
难以阅读检查,因而成果难以继承; - 逻辑层次不清晰
不能清楚看到每一段代码的功能; - 运行调试不便
程序总会出错,很长的代码一旦出现,很难判断问题出在哪里;
针对以上问题,笔者从编程思维出发,提出了模块化的命令流组织模式。简而言之,
- 将一个巨大的命令流文件安装功能分块;
- 分成若干功能独立的小型程序(
sub_node.dat
); - 通过一个主程序(
main.dat
)集成子程序的功能;
例如一个典型的斜拉桥建模程序,可以分解为:几何数据、荷载数据读取,节点、单元建模、加载,求解,后处理等过程。典型的分解如下:
说明:
-
test.dat
是调试程序,用于存放代码片段,逐段运行调试; - 主程序对子程序的集成通过
/INPUT,SUB_NODE,DAT
命令实现;
4. 实施示例
有了以上的技术背景,下面可以演示一个斜拉桥的ANSYS建模调试过程。
4.1 工作文件准备
- 设置工作路径为
C:\test
; -
ANSYS laucher设置
4.2 NPP打开程序
- NotePad++将工作路径切换到
C:\test
; - 筛选
.dat
代码文件; - 打开主程序
main.dat
和调试程序test.dat
; - 分屏显示;
通过模块化的分解,原来上千行的程序,只呈现出十几行的功能汇总性代码,逻辑层次及其清晰。同时代码中的不同元素,以不同的颜色高亮显示。如何实现这样的效果将在下一节详述。
4.3 逐步调试程序
ANSYS的程序调试是一个逐步测试的过程:
- 逐步执行命令流;
- 观察建模是否正确;
- 执行下一步;
先通过逐步测试,保证程序正确性,最后再执行大型运算。实现步骤如下:
- 将左侧
main.dat
的代码片段拷贝至右侧test.dat
; - 保存
test.dat
; - ANSYS命令窗口执行
/input,test.dat
;
-
如果需要调试子程序,同样的方式即可局部调试;
-
调试成功后,建立正确的模型,即可开展大型运算;
需要注意的是,ANSYS的诸多输入输出相关命令,不能在命令窗口直接输入执行。只能以运行代码文件的形式。故采用test.dat
作为专用的调试文件,操作方式更有通用性,况且每次在ANSYS运行的命令一致/input,test.dat
。输入一次之后,只需用上下键翻查即可选定执行。
4.4 文件管理
NPP对与ANSYS建模工作发挥了强大的文件管理功能。
- 代码修改
ANSYS代码调试过程中,一般会做很多改动。如果直接在源文件改动,很可能将原来正确的代码修改错误。NPP可以同时打开多个窗口,尤其是双屏功能。在这样的环境下,可以先在test.dat
中修改代码,完全调试通过后,再将修改更新到源代码。 - 文件筛选
建模过程不仅要处理代码文件,也要处理数据文件(输入数据+计算结果数据)。
通过设定文件后缀名,可以轻松地区分两类文件,分别输入*.dat
、*.txt
即可。
5. 常见问题
要想实现上文所述的功能,需要安装NPP,并进行诸多配置。一种更加简便的方法是,直接拷贝使用一个已经配置好的程序,如下:
- Notepad++(APDL):http://pan.baidu.com/s/1hrQZLqO
更多的相文章详见:
- 博客ANSYS专题
- 结构建模参数查询
- 大型Linux计算机ANSYS运算要点
- ANSYS|临时文件清理方法
- ANSYS|结构分析内力图绘制
- ANSYS|输出文件名的构造
- ANSYS|数据格式化读写技术总结
- Notepad++中的APDL语法高亮设置
附录1. NPP其他功能示例
这里介绍上文中,各种功能在NPP中如何实现。
A. 语法高亮
语法高亮,实质上配置了ANSYS建模语言APDL的语法参数的结果。详细的配置过程见Notepad++中的APDL语法高亮设置,实际只需按照已经配置好的NPP软件,即可实现,而不需手动配置。
当前的设定下,4种后缀的文件被识别为ANSYS代码文件,显示高亮:
- DAT
- INP
- MAC
- ANS
windows下,后缀名不区分大小写。
B. 分屏显示
分屏功能实际上是,创建一个新的视图窗口。
- 右键点击当前文件的选项卡;
-
移动到另一视图
或复制到另一视图
;
C. 行号定位
NPP可以显示代码行号,重要的代码处,可以打点标记。按F2
键来回跳转。尤其适合调试修改关键代码。
D. 大小写转换
ANSYS代码不区分大小写,但为了代码美观、易读,统一设置大写或者小写最好。
- 全选代码;
- 大写转换,
Ctrl+Shift+U
; - 小写转换,
Ctrl+U
;
需要注意的是,linux系统下,文件名区分大小写,如采用linux系统计算,需注意代码大小写和文件名一致。详见大型Linux计算机ANSYS运算要点
本文用时:3 h。