我希望比较 Abaqus 模拟与 Fortran 编码的 umat 的两个并行运行。看来我能够选择与每次运行相关的正确的 standard.exe,但并不总是这么幸运。这促使我询问是否有一种方法可以调用 abaqus 作业并将 standard.exe 的名称更改为类似 standard1.exe 的名称,以区分运行。我检查了abaqus帮助,但似乎没有通过命令行的选项。
最佳答案
Abaqus 中的作业/分析提交还有很大的改进空间...
无论如何,请随意看看我的GitHub repo 。我正在尝试填补 Abaqus 在提交作业时所缺少的内容。如果您有任何疑问,请告诉我。
或者您可以使用此代码来识别您正在运行的作业的正确进程标识符 (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)
关于visual-studio-2013 - 如何更改 Abaqus 求解器可执行文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54010513/