python - 如何在另一个工作结束后运行 abaqus 工作?
问题描述
我编写了一个在 abaqus 中创建多个模型的脚本,然后运行使用简单的 python 循环创建的作业,但是在运行脚本时,程序会同时运行所有作业,并且计算机内存不足,因此它会中止作业. 我想知道如何创建一个脚本,在第一个作业结束后提交下一个作业。
解决方案
这取决于您如何调用 Abaqus。如果您直接创建 Abaqus 进程,则可以将-interactive
参数添加到命令中,这样它就不会在后台进程中运行求解器并立即返回。例如:
abq2018 -j my_job_name -interactive
另一方面,如果您使用 Abaqus API 和Job
对象来创建和运行作业,您可以使用该waitForCompletion
方法等待 aJob
完成。以下是 Abaqus 文档的摘录:
等待完成()
此方法会中断脚本的执行,直到分析结束。如果调用 waitForCompletion 方法并且状态成员既不是 SUBMITTED 也不是 RUNNING,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()
推荐阅读
- regex - Kibana/Elastic Regex 查询不返回任何结果
- html - HTML表格水平滚动
- c - C 语言 & 信号处理程序
- c# - 模型绑定时将 JSON 中的时间戳值反序列化为 DateTime
- amazon-web-services - 使用 Lambda 代理集成在来自 API Gateway 的 5XX 响应上添加 CORS 标头
- javascript - 获取 `md-list-item` 的子项列表
- java - 如何使用 freemarker 拆分哈希图的值?
- xamarin.forms - 如何从 xamarin 表单打开应用程序隐私设置
- firefox - 火狐无头自动高度截图
- javascript - 在javascript中解构嵌套对象(反应)