diff --git a/lib/msc_tools.py b/lib/msc_tools.py index 6fb515b8a..b50802dce 100644 --- a/lib/msc_tools.py +++ b/lib/msc_tools.py @@ -1,40 +1,83 @@ class MSC_TOOLS(): - import os,string + import os,string - releases = { \ - '2010.2':['linux64',''], - '2010': ['linux64',''], - '2008r1':[''], - '2007r1':[''], - '2005r3':[''], - } + releases = { \ + '2010.2':['linux64',''], + '2010': ['linux64',''], + '2008r1':[''], + '2007r1':[''], + '2005r3':[''], + } - def library_paths(self,callerPath='',libRelation=''): - import os +#-------------------------- + def version(self,callerPath='',rootRelation=''): +#-------------------------- + import os - if os.getenv('DAMASK_ROOT'): DamaskRoot = os.getenv('DAMASK_ROOT') - else: DamaskRoot = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(callerPath)),libRelation)) + if os.getenv('DAMASK_ROOT'): DamaskRoot = os.getenv('DAMASK_ROOT') + else: DamaskRoot = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(callerPath)),rootRelation)) - thePath = '' - try: # check for MSC.Mentat installation location - file = open(os.path.join(DamaskRoot,'lib/pathinfo')) - for line in file.readlines(): - if line.split()[0].lower() == 'msc': MSCpath = os.path.normpath(line.split()[1]) - file.close() - except: - MSCpath = '/msc' - - for release,subdirs in sorted(self.releases.items(),reverse=True): - for subdir in subdirs: - libPath = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir) - if os.path.exists(libPath): - thePath = libPath - return thePath - else: - continue + try: # check for MSC.Mentat installation location + file = open(os.path.join(DamaskRoot,'lib/pathinfo')) + for line in file.readlines(): + if line.split()[0].lower() == 'msc': MSCpath = os.path.normpath(line.split()[1]) + file.close() + except: + MSCpath = '/msc' + + for release,subdirs in sorted(self.releases.items(),reverse=True): + for subdir in subdirs: + libPath = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir) + if os.path.exists(libPath): return release + else: continue + + return '' - def submit_job(self, +#-------------------------- + def libraryPath(self,callerPath='',rootRelation=''): +#-------------------------- + import os + + if os.getenv('DAMASK_ROOT'): DamaskRoot = os.getenv('DAMASK_ROOT') + else: DamaskRoot = os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(callerPath)),rootRelation)) + + try: # check for MSC.Mentat installation location + file = open(os.path.join(DamaskRoot,'lib/pathinfo')) + for line in file.readlines(): + if line.split()[0].lower() == 'msc': MSCpath = os.path.normpath(line.split()[1]) + file.close() + except: + MSCpath = '/msc' + + for release,subdirs in sorted(self.releases.items(),reverse=True): + for subdir in subdirs: + libPath = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir) + if os.path.exists(libPath): return libPath + else: continue + + return '' + + +#-------------------------- + def geometry_create (self,inputFile): +#-------------------------- + ''' + Build nodal coordinates and element connectivity from MSC.Marc input file. + ''' + + +#-------------------------- + def geometry_deform (self,vtkFile,ASCIItable,displacementHeader): +#-------------------------- + ''' + Alter nodal coordinates in existing VTK file by displacements given in ASCIItable. + ''' + + +#-------------------------- + def submit_job(self, +#-------------------------- run_marc_path='/msc/marc2010/tools/', subroutine_dir=None, subroutine_name='DAMASK_marc2010', @@ -45,45 +88,47 @@ class MSC_TOOLS(): #IOdir='', host=[] ): - import os - import subprocess, shlex - import shutil - - if subroutine_dir is None: - subroutine_dir=os.getenv('DAMASK_ROOT')+'/code/' - # Define all options [see Marc Installation and Operation Guide, pp 23] - run_marc=run_marc_path+'run_marc' - jid=' -jid '+modelname+'_'+jobname - compilation=' -u '+subroutine_dir+subroutine_name+'.f90'+' -save y' - options=' -nprocd 1 -autorst 0 -ci n -cr n -dcoup 0 -b no -v no' - cmd=run_marc+jid+options - - if compile: - cmd=cmd+compilation - print 'Job submission with compilation.' - else: - shutil.copy2(subroutine_dir+subroutine_name+'.f90','./'+subroutine_name+'.f90') - shutil.copy2(compiled_dir+subroutine_name+'.marc','./'+subroutine_name+'.marc') - prog=' -prog '+subroutine_name - cmd=cmd+prog - print 'Job submission without compilation, using %s'%prog - out=open('out.log','w') - print(cmd) - #print shlex.split(cmd) - self.p=subprocess.Popen(shlex.split(cmd),stdout=out,stderr=subprocess.STDOUT) - self.p.wait() - out.close() + import os + import subprocess, shlex + import shutil + + if subroutine_dir is None: + subroutine_dir=os.getenv('DAMASK_ROOT')+'/code/' + # Define all options [see Marc Installation and Operation Guide, pp 23] + run_marc=run_marc_path+'run_marc' + jid=' -jid '+modelname+'_'+jobname + compilation=' -u '+subroutine_dir+subroutine_name+'.f90'+' -save y' + options=' -nprocd 1 -autorst 0 -ci n -cr n -dcoup 0 -b no -v no' + cmd=run_marc+jid+options + + if compile: + cmd=cmd+compilation + print 'Job submission with compilation.' + else: + shutil.copy2(subroutine_dir+subroutine_name+'.f90','./'+subroutine_name+'.f90') + shutil.copy2(compiled_dir+subroutine_name+'.marc','./'+subroutine_name+'.marc') + prog=' -prog '+subroutine_name + cmd=cmd+prog + print 'Job submission without compilation, using %s'%prog + out=open('out.log','w') + print(cmd) + #print shlex.split(cmd) + self.p=subprocess.Popen(shlex.split(cmd),stdout=out,stderr=subprocess.STDOUT) + self.p.wait() + out.close() - def exit_number_from_outFile(self,outFile=None): - import string - fid_out=open(outFile,'r') - for ln in fid_out: - if (string.find(ln,'tress iteration') is not -1): - print ln - elif (string.find(ln,'Exit number') is not -1): - substr=ln[string.find(ln,'Exit number'):len(ln)] - exitnumber=substr[12:16] - fid_out.close() - return int(exitnumber) - fid_out.close() - return -1 +#-------------------------- + def exit_number_from_outFile(self,outFile=None): +#-------------------------- + import string + fid_out=open(outFile,'r') + for ln in fid_out: + if (string.find(ln,'tress iteration') is not -1): + print ln + elif (string.find(ln,'Exit number') is not -1): + substr=ln[string.find(ln,'Exit number'):len(ln)] + exitnumber=substr[12:16] + fid_out.close() + return int(exitnumber) + fid_out.close() + return -1 diff --git a/processing/post/mentat_colorMap.py b/processing/post/mentat_colorMap.py index c597303b5..184ae75f6 100755 --- a/processing/post/mentat_colorMap.py +++ b/processing/post/mentat_colorMap.py @@ -4,7 +4,7 @@ import sys, os, msc_tools, string from colorsys import * from optparse import OptionParser -sys.path.append(msc_tools.MSC_TOOLS().library_paths(sys.argv[0],'../../')) +sys.path.append(msc_tools.MSC_TOOLS().libraryPath(sys.argv[0],'../../')) try: from py_mentat import * diff --git a/processing/pre/mentat_pbcOnBoxMesh.py b/processing/pre/mentat_pbcOnBoxMesh.py index b0cb81221..fb329a5bc 100755 --- a/processing/pre/mentat_pbcOnBoxMesh.py +++ b/processing/pre/mentat_pbcOnBoxMesh.py @@ -3,7 +3,7 @@ import sys,os,pwd,math,re,string,msc_tools from optparse import OptionParser -sys.path.append(msc_tools.MSC_TOOLS().library_paths(sys.argv[0],'../../')) +sys.path.append(msc_tools.MSC_TOOLS().libraryPath(sys.argv[0],'../../')) try: from py_mentat import * diff --git a/processing/pre/mentat_spectralBox.py b/processing/pre/mentat_spectralBox.py index 6e087aaa6..821420800 100755 --- a/processing/pre/mentat_spectralBox.py +++ b/processing/pre/mentat_spectralBox.py @@ -251,7 +251,7 @@ parser.set_defaults(homogenization = 1) (options, args) = parser.parse_args() -sys.path.append(msc_tools.MSC_TOOLS().library_paths(sys.argv[0],'../../')) +sys.path.append(msc_tools.MSC_TOOLS().libraryPath(sys.argv[0],'../../')) try: from py_mentat import * diff --git a/processing/pre/patchFromReconstructedBoundaries.py b/processing/pre/patchFromReconstructedBoundaries.py index be8ad09f1..a0131539d 100755 --- a/processing/pre/patchFromReconstructedBoundaries.py +++ b/processing/pre/patchFromReconstructedBoundaries.py @@ -10,7 +10,7 @@ try: # check for Python Image Lib except: ImageCapability = False -sys.path.append(msc_tools.MSC_TOOLS().library_paths(sys.argv[0],'../../')) +sys.path.append(msc_tools.MSC_TOOLS().libraryPath(sys.argv[0],'../../')) try: # check for MSC.Mentat Python interface from py_mentat import *