首页/文章/ 详情

使用Python运行Abaqus输入文件

11月前浏览2132

1. 引言

Abaqus作业管理器出现错误 (Job Manager)】所述,不知道什么原因导致在CAE环境内不能正常使用作业管理器(Job Manager),直接影响着数据检查(Data Check)和作业递交(Submit),只能在命令行中运行。这个操作虽然很简单,但来回切换还需要手动输入命令,于是想使用Pyhton代替这个操作。


工作原理其实非常简单,只需调用subprocess即可,麻烦在于2023版以前的Abaqus内置的Python版本是2.7,不明白为什么这么多年不使用Python 3,2024版使用了Python 3.10,不过目前还没有使用2024版,因此下面的代码仍然使用的是Python 2.7的语法。

2. 代码

下面的代码实现了上述想法,在File>Run Script...中运行这个代码即可完成计算任务。不过,有一个问题是当修改完inp文件后再次运行这个代码,会执行不下去,原因是上次执行时的结果还驻留在内存中,一个自动的方法可能是加几行代码,首先删除上次产生的结果文件,然后再运行计算,目前仅使用手工删除方法。

















import subprocessdef run_abq_inp_with_processors(inp_file, num_processors):    abaqus_command = "abaqus job={0} cpus={1}".format(inp_file, num_processors)    abaqus_command = "C:/SIMULIA/Commands/abaqus job={0} cpus={1}".format(inp_file, num_processors)    try:        return_code = subprocess.call(abaqus_command, shell=True, stderr=subprocess.STDOUT)        if return_code == 0:            print("Job {0} completed successfully with {1} processors.".format(inp_file, num_processors))        else:            print("Error running job {0} with {1} processors.".format(inp_file, num_processors))    except subprocess.CalledProcessError as e:        print("Error running job {0} with {1} processors.".format(inp_file, num_processors))        print(e.output)inp_file_name = "inp file"num_processors = 8run_abq_inp_with_processors(inp_file_name, num_processors)


来源:计算岩土力学
AbaquspythonUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-12-18
最近编辑:11月前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 147粉丝 1068文章 1782课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈