Как изменить имя исполняемого файла Abaqus solver - PullRequest
0 голосов
/ 02 января 2019

Я хочу сравнить два параллельных запуска симуляций Abaqus с umat, закодированным в Fortran.Кажется, что я могу выбрать правильный файл standard.exe, связанный с каждым запуском, но это не всегда так удачно.Это побудило меня спросить, есть ли способ вызвать задание abaqus и изменить имя standard.exe на, возможно, что-то вроде standard1.exe, чтобы провести различие между запусками.Я проверил справку abaqus, но похоже, что в командной строке есть опция.

1 Ответ

0 голосов
/ 03 января 2019

Существует много возможностей для улучшения работы / представления анализов в Abaqus ...

В любом случае, не стесняйтесь взглянуть на мое GitHub репо . Я пытаюсь восполнить то, что не хватает в Abaqus при подаче работы. Дайте мне знать, если у вас есть какие-либо вопросы.

Или вы можете использовать этот код для определения правильного идентификатора процесса (pid) выполняемой вами работы. Затем вы можете завершить процесс, связанный с этим идентификатором.

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)
...