DAMASK_EICMD/python/damask/solver/abaqus.py

29 lines
1.2 KiB
Python
Raw Normal View History

2014-06-24 21:02:42 +05:30
# -*- coding: UTF-8 no BOM -*-
from .solver import Solver
2016-07-15 20:23:57 +05:30
import damask
2017-04-19 18:40:43 +05:30
import subprocess,re
2014-06-24 21:02:42 +05:30
class Abaqus(Solver):
2018-07-06 16:42:16 +05:30
def __init__(self,version=''): # example version string: 2017
2014-06-24 21:02:42 +05:30
self.solver='Abaqus'
if version =='':
2016-07-14 19:42:05 +05:30
version = damask.Environment().options['ABAQUS_VERSION']
2014-06-24 21:02:42 +05:30
else:
self.version = version
def return_run_command(self,model):
env=damask.Environment()
shortVersion = re.sub('[\.,-]', '',self.version)
try:
cmd='abq'+shortVersion
2014-06-25 14:02:33 +05:30
subprocess.check_output(['abq'+shortVersion,'information=release'])
except OSError: # link to abqXXX not existing
2014-06-24 21:02:42 +05:30
cmd='abaqus'
2014-06-25 14:02:33 +05:30
process = subprocess.Popen(['abaqus','information=release'],stdout = subprocess.PIPE,stderr = subprocess.PIPE)
detectedVersion = process.stdout.readlines()[1].split()[1]
if self.version != detectedVersion:
raise Exception('found Abaqus version %s, but requested %s'%(detectedVersion,self.version))
return '%s -job %s -user %s/src/DAMASK_abaqus interactive'%(cmd,model,env.rootDir())