另一个工作结束后,如何运行一项abaqus工作?

时间:2018-10-26 23:49:41

标签: python abaqus

我写了一个脚本来在abaqus中创建多个模型,然后运行使用简单的python循环创建的作业,但是运行脚本时,程序会同时运行所有作业,并且计算机内存不足,因此中止工作。我想知道如何创建一个大纲,以便在第一个作业结束后立即提交下一个作业。

2 个答案:

答案 0 :(得分:0)

这取决于您如何调用Abaqus。如果直接创建Abaqus流程,则可以在命令中添加-interactive参数,这样它就不会在后台进程中运行求解器并立即返回。例如:

abq2018 -j my_job_name -interactive

另一方面,如果您使用Abaqus API和Job对象创建和运行作业,则可以使用waitForCompletion方法等待Job完成。这是Abaqus文档的摘录:

  

waitForCompletion()

此方法中断执行   脚本,直到分析结束。如果您致电   waitForCompletion方法,并且状态成员均未提交   既不运行,Abaqus假定分析已完成或   中止并立即返回。

这是一个简短的示例,说明如何创建Job对象并使用waitForCompletion方法:

from abaqus import *

# Create a Job from a Model definition
j1 = mdb.Job(name='my_job_name', model=mdb.models['my_model_name'])

# or create a Job from an existing input file
j2 = mdb.JobFromInputFile(name='my_job_name', inputFileName='my_job_name.inp')

# Submit the first job - this returns immediately
j1.submit()

# Now wait for the first job - this will block until the job completes
j1.waitForCompletion()

# Same process for the second Job
j2.submit()
j2.waitForCompletion()

答案 1 :(得分:0)

我开发了图形用户界面来改善Abaqus分析的排队过程。 可以在GitHub here上使用。

安装:
1.从GitHub下载或克隆该软件包。
2.找到core.py文件,并根据您的机器和配置编辑第31、36、37和38行。
3.运行它。

如果在使用时遇到任何问题,请在GitHub存储库上提交它们。