使用Python批量提交Abaqus任务:超简单方法!

第一种:不同inp文件放置在同一文件夹下 

(1)  无子程序的任务

例如:需要计算的三个任务( Job-1.inp、Job-2.inp、Job-3.inp)存放在"D:\\test"。

则批量提交任务的的Python代码为:

#导入abaqus内置模块
from abaqus import *
from abaqusConstants import *
from caeModules import *
import os
#Inp存放的文件夹,根据实际情况修改
Inp_File = "D:\\test"
#Inp文件名,根据实际情况修改
JobNameSet=['Job-1','Job-2','Job-3']
#计算所需的cpu个数,根据实际情况修改
CpuNumber = 4
##################################
os.chdir(Inp_File)
for i in range(len(JobNameSet)):
    JobName = JobNameSet[i]
    mdb.JobFromInputFile(name=JobName,
        inputFileName=Inp_File+'\\'+JobName,
        type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None,
        memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
        explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE,
        scratch='', resultsFormat=ODB, numThreadsPerMpiProcess=1,
        multiprocessingMode=DEFAULT,
        numCpus=CpuNumber, numDomains=CpuNumber, numGPUs=0)
    mdb.jobs[JobName].submit(consistencyChecking=OFF)
    mdb.jobs[JobName].waitForCompletion()
    del mdb.jobs[JobName]

(2)  有子程序的任务

例如:需要计算的三个任务( Job-1.inp、Job-2.inp、Job-3.inp)及三个任务分别对应的子程序(Job-1-umat.for、Job-2-umat.for、Job-2-umat.for)存放在"D:\\test"。

则批量提交任务的的Python代码为:

#导入abaqus内置模块
from abaqus import *
from abaqusConstants import *
from caeModules import *
import os
#Inp存放的文件夹,根据实际情况修改
Inp_File = "D:\\test"
#Inp文件名,根据实际情况修改
JobNameSet=['Job-1','Job-2','Job-3']
#子程序文件名,根据实际情况修改
UserSubroutineSet=['Job-1-umat.for','Job-2-umat.for','Job-3-umat.for']
#计算所需的cpu个数,根据实际情况修改
CpuNumber = 4
##################################
os.chdir(Inp_File)
for i in range(len(JobNameSet)):
    JobName = JobNameSet[i]
    UserSubroutineName = UserSubroutineSet[i]
    mdb.JobFromInputFile(name=JobName,
        inputFileName=Inp_File+'\\'+JobName,
        type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None,
        memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
        explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE,
        userSubroutine=UserSubroutineName,
        scratch='', resultsFormat=ODB, numThreadsPerMpiProcess=1,
        multiprocessingMode=DEFAULT,
        numCpus=CpuNumber, numDomains=CpuNumber, numGPUs=0)
    mdb.jobs[JobName].submit(consistencyChecking=OFF)
    mdb.jobs[JobName].waitForCompletion()
    del mdb.jobs[JobName]

第二种:不同inp文件位放置在不同文件夹下

(1)  无子程序的任务

例如:需要计算的三个任务( Job-1.inp、Job-2.inp、Job-3.inp)分别存放在三个文件夹(D:\\test1、D:\\test2、D:\\test3)中。

则批量提交任务的的Python代码为:

#导入abaqus内置模块
from abaqus import *
from abaqusConstants import *
from caeModules import *
import os
#Inp存放的文件夹,根据实际情况修改
Inp_File_Set = ['D:\\test1','D:\\test2','D:\\test3']
#Inp文件名,根据实际情况修改
JobNameSet=['Job-1','Job-2','Job-3']
#计算所需的cpu个数,根据实际情况修改
CpuNumber = 4
##################################
for i in range(len(JobNameSet)):
    Inp_File = Inp_File_Set[i]
    os.chdir(Inp_File)
    JobName = JobNameSet[i]
    mdb.JobFromInputFile(name=JobName,
        inputFileName=Inp_File+'\\'+JobName,
        type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None,
        memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
        explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE,
        scratch='', resultsFormat=ODB, numThreadsPerMpiProcess=1,
        multiprocessingMode=DEFAULT,
        numCpus=CpuNumber, numDomains=CpuNumber, numGPUs=0)
    mdb.jobs[JobName].submit(consistencyChecking=OFF)
    mdb.jobs[JobName].waitForCompletion()
    del mdb.jobs[JobName]

(2)  有子程序的任务

例如:需要计算的三个任务( Job-1.inp、Job-2.inp、Job-3.inp)及三个任务分别对应的子程序(Job-1-umat.for、Job-2-umat.for、Job-2-umat.for)分别存放在三个文件夹(D:\\test1、D:\\test2、D:\\test3)中。

则批量提交任务的的Python代码为:

#导入abaqus内置模块
from abaqus import *
from abaqusConstants import *
from caeModules import *
import os
#Inp存放的文件夹,根据实际情况修改
Inp_File_Set = ['D:\\test1','D:\\test2','D:\\test3']
#Inp文件名,根据实际情况修改
JobNameSet=['Job-1','Job-2','Job-3']
#子程序文件名,根据实际情况修改
UserSubroutineSet=['Job-1-umat.for','Job-2-umat.for','Job-3-umat.for']
#计算所需的cpu个数,根据实际情况修改
CpuNumber = 4
##################################
for i in range(len(JobNameSet)):
    Inp_File = Inp_File_Set[i]
    os.chdir(Inp_File)
    JobName = JobNameSet[i]
    UserSubroutineName = UserSubroutineSet[i]
    mdb.JobFromInputFile(name=JobName,
        inputFileName=Inp_File+'\\'+JobName,
        type=ANALYSIS, atTime=None, waitMinutes=0, waitHours=0, queue=None,
        memory=90, memoryUnits=PERCENTAGE, getMemoryFromAnalysis=True,
        explicitPrecision=SINGLE, nodalOutputPrecision=SINGLE,
        userSubroutine=UserSubroutineName,
        scratch='', resultsFormat=ODB, numThreadsPerMpiProcess=1,
        multiprocessingMode=DEFAULT,
        numCpus=CpuNumber, numDomains=CpuNumber, numGPUs=0)
    mdb.jobs[JobName].submit(consistencyChecking=OFF)
    mdb.jobs[JobName].waitForCompletion()
    del mdb.jobs[JobName]

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空