DAMASK_EICMD/python/damask/solver/abaqus.py

35 lines
1.1 KiB
Python
Raw Normal View History

2019-09-03 22:17:31 +05:30
import subprocess
2014-06-24 21:02:42 +05:30
from .solver import Solver
2016-07-15 20:23:57 +05:30
import damask
2019-09-03 22:17:31 +05:30
2014-06-24 21:02:42 +05:30
class Abaqus(Solver):
2019-09-03 22:17:31 +05:30
"""Wrapper to run DAMASK with Abaqus."""
def __init__(self,version=int(damask.Environment().options['ABAQUS_VERSION'])):
"""
Create a Abaqus solver object.
Parameters
----------
version : integer
Abaqus version
2014-06-24 21:02:42 +05:30
2019-09-03 22:17:31 +05:30
"""
self.solver ='Abaqus'
self.version = int(version)
2014-06-24 21:02:42 +05:30
def return_run_command(self,model):
env=damask.Environment()
try:
cmd='abq'+self.version
subprocess.check_output([cmd,'information=release'])
2014-06-25 14:02:33 +05:30
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)
2019-09-03 22:17:31 +05:30
detectedVersion = int(process.stdout.readlines()[1].split()[1].decode('utf-8'))
2014-06-25 14:02:33 +05:30
if self.version != detectedVersion:
raise Exception('found Abaqus version {}, but requested {}'.format(detectedVersion,self.version))
return '{} -job {} -user {}/src/DAMASK_abaqus interactive'.format(cmd,model,env.rootDir())