Abaqus批处理遍历子文件夹下所有INP
Research_Network
2021年09月02日 22:20

上次我们给了个ABAQUS求解器通过拖放文件夹到批处理文件来自动提交其中所有INP​文件的方案,但是不巧的是师姐的计算文件是依托子文件夹结构分布的,所以还是不满意,正好我自己也遇到了需要批量提交联合仿真(co-execution)的问题,从CAE中写INP出来全是一样的文件名,自然也采用文件夹嵌套结构了,于是集中解决一下这个问题。

同样的新建一个文本文档,在其中写入以下内容后保存,修改扩展名为BAT后即可拖放文件夹至其上进行计算。

遍历计算子文件夹中的INP:

代码块
JavaScript
自动换行
复制代码
@echo off
set CurrDir=%~1
for /d %%a in (%CurrDir%\*) do (
pushd %%a
for %%i in (*.inp) do (
cmd/c abaqus job=%%i cpus=6 mp_mode=thread int ask_delete=OFF
)
)
复制成功
  • 拖上来的是文件夹别拖文件,会报错

  • 师姐跑的是General_Static分析步所以这是隐式计算的配置,跑显式计算可以根据上期对计算配置进行些许修改

联合仿真的批量提交:

代码块
JavaScript
自动换行
复制代码
@echo off
set CurrDir=%~1
for /d %%a in (%CurrDir%\*) do (
pushd %%a
cmd/c abaqus cosimulation cosimjob=Co-execution-1 job=Co-execution-1-Assembly_2,Co-execution-1-CSF-2 configure=Co-execution-1_config.xml cpus=6,6 double=both,off int ask_delete=OFF
)
复制成功

我的课题涉及Abaqus/Explicit与Abqsus/CFD联合仿真(co-simulation),也就是流固耦合问题(FSI),INP是CAE中写出的文件名一样,有大量工况要逐一计算,批处理可以帮助我省很多事,下面是这个批处理的注意事项:

  • 采用不同子文件夹文件夹分别放置不同工况的INP,具体在我的计算中这里必须包括一个结构的INP(Co-execution-1-Assembly_2)和一个流体的INP(Co-execution-1-CSF-2),采用逗号分隔,我生成的INP文件名字恒定不变所以直接将文件名写入了批处理

  • 联合仿真涉及跨求解器交互必须提供一个xml格式的配置文件,也就是这里的(Co-execution-1_config.xml),我一般是CAE写INP时自动生成的,里面包含有两个INP的名字,也可以手动修改内容匹配其他计算

  • 联合仿真必须有一个总的计算名称,写在cosimjob=后,这里是(Co-execution-1),计算开始后求解器会自动以这个名字生成一个总计算的INP,里面记载有协同计算的INP和XML配置文件名称,该文件为自动生成无需手动制作

  • CPUS=后为为两个计算分配的cpus资源数,以逗号分隔,由于我涉及显式计算需要控制误差还引入了DOUBLE=参数,同样通过逗号分隔

  • 使用方法是拖动母文件夹到该批处理文件夹上,联合仿真交互数据通过网络端口传递,即使是本地电脑内部通讯也应注意不要被系统防火墙挡住导致计算无法开始,其余内容同上次文章介绍

参考信息:

Abaqus 6.13参考文献:

http://130.149.89.49:2080/v6.13/books/usb/default.htm?startat=pt01ch03s02abx04.html

Abaqus 2017参考文献:

https://abaqus-docs.mit.edu/2017/English/SIMACAEEXCRefMap/simaexc-c-cosimproc.htm