removed code doubling

This commit is contained in:
Martin Diehl 2015-10-09 05:51:58 +00:00
parent 6d74cbf374
commit 61090c955d
4 changed files with 31 additions and 61 deletions

View File

@ -227,15 +227,8 @@ class Test():
def execute_inCurrentDir(self,cmd,streamIn=None):
initialPath=os.getcwd()
os.chdir(self.dirCurrent())
logging.info(cmd)
process = subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE,stderr = subprocess.PIPE,stdin=subprocess.PIPE)
if streamIn != None:
out,error = process.communicate(streamIn.read())
else:
out,error = process.communicate()
os.chdir(initialPath)
out,error = damask.util.execute(cmd,streamIn,self.dirCurrent())
logging.info(error)
logging.debug(out)

View File

@ -1,9 +1,9 @@
# -*- coding: UTF-8 no BOM -*-
# damask utility functions
import sys,time,random,threading
import sys,time,random,threading,os,subprocess,shlex
import numpy as np
from optparse import OptionParser, Option
from optparse import Option
# -----------------------------
def croak(what,
@ -398,3 +398,20 @@ def curve_fit_bound(f, xdata, ydata, p0=None, sigma=None, bounds=None, **kw):
return popt, pcov, infodict, errmsg, ier
else:
return popt, pcov
def execute(cmd,streamIn=None,wd='./'):
'''
executes a command in given directory and returns stdout and stderr for optional stdin
'''
initialPath=os.getcwd()
os.chdir(wd)
process = subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE,stderr = subprocess.PIPE,stdin=subprocess.PIPE)
if streamIn != None:
out,error = process.communicate(streamIn.read())
else:
out,error = process.communicate()
os.chdir(initialPath)
return out,error

View File

@ -9,7 +9,7 @@ import damask
from damask.util import leastsqBound
scriptID = string.replace('$Id$','\n','\\n')
scriptName = scriptID.split()[1][:-3]
scriptName = os.path.splitext(scriptID.split()[1])[0]
def runFit(exponent, eqStress, dimension, criterion):
global s, threads, myFit
@ -48,21 +48,6 @@ def runFit(exponent, eqStress, dimension, criterion):
threads[i].join()
print fitResidual
def execute(cmd,streamIn=None,wd='./'):
'''
executes a command in given directory and returns stdout and stderr for optional stdin
'''
initialPath=os.getcwd()
os.chdir(wd)
process = subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE,stderr = subprocess.PIPE,stdin=subprocess.PIPE)
if streamIn != None:
out,error = process.communicate(streamIn.read())
else:
out,error = process.communicate()
os.chdir(initialPath)
return out,error
def principalStresses(sigmas):
'''
computes principal stresses (i.e. eigenvalues) for a set of Cauchy stresses.
@ -163,16 +148,6 @@ def sym6to33(sigma6):
sigma33[2,0] = sigma6[5]; sigma33[0,2] = sigma6[5]
return sigma33
def array2tuple(array):
'''transform numpy.array into tuple'''
try:
return tuple(array2tuple(i) for i in array)
except TypeError:
return array
def get_weight(ndim):
#more to do
return np.ones(ndim)
class Criteria(object):
'''
@ -1243,7 +1218,7 @@ def doSim(delay,thread):
if not os.path.isfile('%s_%i.spectralOut'%(options.geometry,loadNo)):
print('starting simulation %s from %s'%(loadNo,thread))
s.release()
execute('DAMASK_spectral -g %s -l %i'%(options.geometry,loadNo))
damask.util.execute('DAMASK_spectral -g %s -l %i'%(options.geometry,loadNo))
else: s.release()
s.acquire()
@ -1251,12 +1226,12 @@ def doSim(delay,thread):
print('starting post processing for sim %i from %s'%(loadNo,thread))
s.release()
try:
execute('postResults --cr f,p --co totalshear %s_%i.spectralOut'%(options.geometry,loadNo))
damask.util.execute('postResults --cr f,p --co totalshear %s_%i.spectralOut'%(options.geometry,loadNo))
except:
execute('postResults --cr f,p %s_%i.spectralOut'%(options.geometry,loadNo))
execute('addCauchy ./postProc/%s_%i.txt'%(options.geometry,loadNo))
execute('addStrainTensors -l -v ./postProc/%s_%i.txt'%(options.geometry,loadNo))
execute('addMises -s Cauchy -e ln(V) ./postProc/%s_%i.txt'%(options.geometry,loadNo))
damask.util.execute('postResults --cr f,p %s_%i.spectralOut'%(options.geometry,loadNo))
damask.util.execute('addCauchy ./postProc/%s_%i.txt'%(options.geometry,loadNo))
damask.util.execute('addStrainTensors -l -v ./postProc/%s_%i.txt'%(options.geometry,loadNo))
damask.util.execute('addMises -s Cauchy -e ln(V) ./postProc/%s_%i.txt'%(options.geometry,loadNo))
else: s.release()
s.acquire()
@ -1264,7 +1239,7 @@ def doSim(delay,thread):
print('reading values for sim %i from %s'%(loadNo,thread))
s.release()
refFile = open('./postProc/%s_%i.txt'%(options.geometry,loadNo))
refFile = './postProc/%s_%i.txt'%(options.geometry,loadNo)
table = damask.ASCIItable(refFile)
table.head_read()
if options.fitting =='equivalentStrain':

View File

@ -14,21 +14,6 @@ scriptName = os.path.splitext(scriptID.split()[1])[0]
mismatch = None
currentSeedsName = None
def execute(cmd,streamIn=None,dir='./'):
'''
executes a command in given directory and returns stdout and stderr for optional stdin
'''
initialPath=os.getcwd()
os.chdir(dir)
process = subprocess.Popen(shlex.split(cmd),stdout=subprocess.PIPE,stderr = subprocess.PIPE,stdin=subprocess.PIPE)
if streamIn != None:
out,error = process.communicate(streamIn.read())
else:
out,error = process.communicate()
os.chdir(initialPath)
return out,error
#---------------------------------------------------------------------------------------------------
class myThread (threading.Thread):
#---------------------------------------------------------------------------------------------------
@ -113,7 +98,7 @@ class myThread (threading.Thread):
perturbedGeomVFile.close()
perturbedGeomVFile = StringIO()
perturbedSeedsVFile.reset()
perturbedGeomVFile.write(execute('geom_fromVoronoiTessellation '+
perturbedGeomVFile.write(damask.util.execute('geom_fromVoronoiTessellation '+
' -g '+' '.join(map(str, options.grid)),streamIn=perturbedSeedsVFile)[0])
perturbedGeomVFile.reset()
@ -257,7 +242,7 @@ if os.path.isfile(os.path.splitext(options.seedFile)[0]+'.seeds'):
with open(os.path.splitext(options.seedFile)[0]+'.seeds') as initialSeedFile:
for line in initialSeedFile: bestSeedsVFile.write(line)
else:
bestSeedsVFile.write(execute('seeds_fromRandom'+\
bestSeedsVFile.write(damask.util.execute('seeds_fromRandom'+\
' -g '+' '.join(map(str, options.grid))+\
' -r %i'%options.randomSeed+\
' -N '+str(nMicrostructures))[0])
@ -266,7 +251,7 @@ bestSeedsUpdate = time.time()
# ----------- tessellate initial seed file to get and evaluate geom file
bestSeedsVFile.reset()
initialGeomVFile = StringIO()
initialGeomVFile.write(execute('geom_fromVoronoiTessellation '+
initialGeomVFile.write(damask.util.execute('geom_fromVoronoiTessellation '+
' -g '+' '.join(map(str, options.grid)),bestSeedsVFile)[0])
initialGeomVFile.reset()
initialGeomTable = damask.ASCIItable(initialGeomVFile,None,labeled=False,readonly=True)