如何更改Abaqus求解器可执行文件的名称

时间:2019-01-02 17:16:27

标签: visual-studio-2013 fortran abaqus

我希望将Abaqus模拟的两个并行运行与Fortran编码的umat进行比较。看来我能够选择与每次运行相关的正确的standard.exe,但并不总是那么幸运。这促使我问是否有一种方法可以调用abaqus作业,并将standard.exe的名称更改为standard1.exe之类的名称,以区分运行。我检查了abaqus帮助,但似乎没有通过命令行提供的选项。

1 个答案:

答案 0 :(得分:3)

Abaqus中的作业/分析提交还有很多改进的余地...

无论如何,请随时查看我的GitHub repo。我正在尝试填补工作提交时Abaqus缺少的东西。让我知道您是否有任何疑问。

或者您可以使用此代码来标识正在运行的作业的正确的进程IDentifier(pid)。然后,您可以终止与此ID关联的进程。

import psutil
processesList = psutil.pids()
jobname=''
print('\n\nStart')
for proc in processesList:
    try:
        p = psutil.Process(proc)
        if (p.name()=='standard.exe' or p.name()=='explicit.exe' or p.name()=='pre.exe' or p.name()=='explicit_dp.exe'):
            i=0
            jobCpus='1'
            jobGpus='0'
            sameJob = False
            print('\nPID:         %s'%proc)
            for line in p.cmdline():
                if line == '-job':
                    if jobname==p.cmdline()[i+1]:
                        sameJob = True
                    else:
                        sameJob=False
                    jobname=p.cmdline()[i+1]
                    print('Job Name:    %s'%jobname)
                elif line == '-indir':
                    jobdir=p.cmdline()[i+1]
                    print('Job Dir:     %s'%jobdir)
                elif line == '-cpus':
                    jobCpus=p.cmdline()[i+1]
                    print('Cpus number: %s'%jobCpus)
                elif line == '-gpus':
                    jobGpus=p.cmdline()[i+1]
                    print('Gpus number: %s'%jobGpus)
                i+=1
    except:
        pass
print('\nEnd\n\n')

为了终止进程,可以使用以下命令:

import os, signal
os.kill(int(pid), signal.SIGTERM)