ANSYS|多工况大型模拟分析执行策略

1. 问题描述

科研工作中的ANSYS模拟分析,往往计算量巨大,需要调用大型计算机执行运算。由于文件巨大,往往需要划分诸多子文件,多种工况的计算产生诸多数据文件。文件管理的复杂性较大:

  • 多输入文件
  • 多输出结果
  • 多工况
  • 多次计算

为了高效执行运算,并保证试验数据的标准化管理,从实际经验出发总结本文。

2. 技术背景

2.1 Batch模式

Batch模式即批处理模式,相对于ANSYS普通调试采用的GUI截面,Batch模式直接指定需要运行的文件。运算过程中不出现GUI截面,也不输出中间结果,直接完成所有运算输出指定结果。

ANSYS|多工况大型模拟分析执行策略_第1张图片
image_1b2hkrc2uerb1nu2121221bqfe9.png-79.3kB

一般在个人PC上通过常规调试保证程序的正确性和可行性,然后载入高性能计算机,通过Batch模式批处理计算,直接输出结果。显然,Batch模式的计算效率大大提高。

2.2 求解结果

Batch模式运行之后,会产生一系列的分析结果,如:

ANSYS|多工况大型模拟分析执行策略_第2张图片
image_1b2hl2m1l9fe13fq1bi83db6913.png-49.3kB

常用的结果主要有:

  • 目标输出数据:FILE_S2400_F200_D10_L500_4_250.TXT
  • 模型结果:file.rst,此为二进制文件包含了模型计算的重要结果,需要特定的命令提取;
  • 运行输出报告:file.out
    记录了计算的全部过程,如每一步的计算时间、输入的命令文件、结束时间、运行时长等重要信息,可以看做模拟运算的凭证。
    运行命令的记录:
    ANSYS|多工况大型模拟分析执行策略_第3张图片
    image_1b2hlb087j0khp62q21tfe2ea1g.png-14.1kB

    运行时间记录:
    ANSYS|多工况大型模拟分析执行策略_第4张图片
    image_1b2hlce3n1a0mtp8kbdcgb1nse1t.png-19.2kB
  • 错误记录文件,file.err
    如果计算运行失败,可以在错误文件中查找出错的原因,重新调试程序。

3. 解决方案

高效运行大型计算分析,需要一系列的技术支持。

3.1 子程序分解

代码很长(300行)以上的程序,最好进行模块化分割,将原始程序按照功能划分成若干模块程序,如下示例:

  • 主程序


    ANSYS|多工况大型模拟分析执行策略_第5张图片
    image_1b2hlplpg1n1v1s0vainfbh17l22a.png-46.6kB
  • 子程序


    ANSYS|多工况大型模拟分析执行策略_第6张图片
    image_1b2hlq8tpm86nld56k1944pj2n.png-18.3kB

这样的好处是:

  • 便于分块测试;
  • 提高程序复用性和可读性;

需要注意的是,主程序中调用的子程序文件名与实际文件名必须大小写一致,否则linux系统中无法识别。详细参考笔者文章ANSYS|命令流建模高效调试技术。

3.2 多工况设计

由于ANSYS有限元建模分析的便利性,适合进行参数化试验,即批量测试不同参数的试验结果。参数化试验即对应着多种工况,典型的工况设计如下:

ANSYS|多工况大型模拟分析执行策略_第7张图片
image_1b2hmdetf5f9ea1pfl1n851e503h.png-96.2kB

上图的表格中设计了6种工况,在大型计算分析中,我们希望一次完成6种工况的分析试验。为了便于计算操作,将工况设置的相关代码与主体分析代码分离,分别保存为命令文件。

ANSYS|多工况大型模拟分析执行策略_第8张图片
image_1b2hme33v11nb18rq1fo13c913ng3u.png-38.8kB

工况文件的代码示例如下:

! ---------------------- 控制变量 ------------------------------------------------
FCK = 200                                       ! 信号中心频率,KHZ
DIAMETER_MM = 8.0                               ! 钢筋直径 mm
LEN_BAR_MM = 500                                ! 钢筋长度 mm
N1 = 6                                          ! 径向网格密度,钢筋与PZT一致
LSECT1 = 0.002                                  ! 钢筋纵向划分节段长度
LSECT2 = 0.001                                  ! PZT-纵向划分节段长度

3.3 多次计算集成

在主程序中集成多次工况的计算:

ANSYS|多工况大型模拟分析执行策略_第9张图片
image_1b2hmibbs6qr1q45jlc5f01ev44b.png-25.2kB

3.4 结果文件名设计

多工况参数试验输出很多的数据文件,一种理想的结果文件命名方法是根据参数数值进行命名,这样保证结果文件与工况一一对应:

ANSYS|多工况大型模拟分析执行策略_第10张图片
image_1b2hp20hbmtp1dc1493do71dnf4o.png-12.3kB

以上文件名,以VA12_S1600_F200_D8_L500为例,各参数的意义是:

  • VA12,2个传感器通道;
  • S1600,1600步计算;
  • F200,中心频率200kHz;
  • D8,钢筋直径8 mm;
  • L500,钢筋长度 500 mm;

具体发放详见笔者文章:ANSYS|文件名字符串的构造

3.5 子文件夹设计

ANSYS运行分析之后会产生大量的临时文件,为了避免输入文件、输出文件与临时文件混淆。可以对输入文件和输出文件设置单独的文件夹,使得各类文件分类存储,便于结果的分类提取。

  • 主文件夹


    ANSYS|多工况大型模拟分析执行策略_第11张图片
    image_1b2hphuj41emcombrob6im1ss055.png-9.1kB
  • 子文件夹:INPUT
    ANSYS|多工况大型模拟分析执行策略_第12张图片
    image_1b2hpigin37d18361kr11j1rovf5i.png-43.4kB
  • 子文件夹:OUTPUT
    ANSYS|多工况大型模拟分析执行策略_第13张图片
    image_1b2hpir0s10cjbqgm0610sncs75v.png-42.5kB

提取目录树如下:

E:.
│  REBAR_1126B_A.dat
│  SUB_ANYLYSIS.DAT
│  
├─INPUT
│      SUB_FE01_A1.DAT
│      SUB_FE01_A2.DAT
│      SUB_FE01_A3.DAT
│      SUB_FE01_A4.DAT
│      SUB_FE01_A5.DAT
│      V200K_C1_200US_S1600.TXT
│      
└─OUTPUT
        VA12_S1600_F200_D8_L500.TXT
        VA12_S1600_F200_D9_L500.TXT
        VA12_S1600_F200_D10_L500.TXT
        VA12_S1600_F200_D11_L500.TXT
        VA12_S1600_F200_D12_L500.TXT

在主程序中,需要对输入、输出模块做一定设置。

  • 输出模块
    input命令之后,增加子文件夹相对路径
/INPUT,SUB_FE01_A1,DAT,'.\INPUT\'               ! 工况A1
/INPUT,SUB_ANYLYSIS,DAT
  • 输出模块
    文件名中增加子文件夹位置
OUTNAME = STRCAT('./OUTPUT/',OUTNAME)
*MWRITE,VOLTRES,%OUTNAME%,TXT                       ! 输出信号保存到TXT
(2F22.16)

4. 实施示例

略。

5. 常见问题

上述方法虽然较为繁琐,但对于大量的模拟分析工作来说,做好基础准备,才能事半功倍。
工欲善其事,必先利其器

本文用时60 min。

你可能感兴趣的:(ANSYS|多工况大型模拟分析执行策略)