diff --git a/processing/post/spectral_parseLog.py b/processing/post/spectral_parseLog.py deleted file mode 100755 index 5e7ad970b..000000000 --- a/processing/post/spectral_parseLog.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/env python -# -*- coding: UTF-8 no BOM -*- - -import os,sys,string,re,damask -from optparse import OptionParser, Option - -# ----------------------------- -class extendedOption(Option): -# ----------------------------- -# used for definition of new option parser action 'extend', which enables to take multiple option arguments -# taken from online tutorial http://docs.python.org/library/optparse.html - - ACTIONS = Option.ACTIONS + ("extend",) - STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",) - TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",) - ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + ("extend",) - - def take_action(self, action, dest, opt, value, values, parser): - if action == "extend": - lvalue = value.split(",") - values.ensure_value(dest, []).extend(lvalue) - else: - Option.take_action(self, action, dest, opt, value, values, parser) - - - -# ----------------------- MAIN ------------------------------- - - -parsing = [ \ - ['__CLOCK__', r'^Loadcase \d+ Increment \d+/\d+ @ Iteration \d+/\d+'], - ['increment', r'^Loadcase \d+ Increment (\d+)/\d+ @ Iteration \d+/\d+'], - ['iteration', r'^Loadcase \d+ Increment \d+/\d+ @ Iteration (\d+)/\d+'], - ['error_divergence', r'^error divergence = [ +-eE0123456789.]+ \( ([+-eE0123456789.]+)'], - ['error_stress', r'^error stress = [ +-eE0123456789.]+ \( ([+-eE0123456789.]+)'], - ['crit_divergence', r'^error divergence = ([ +-eE0123456789.]+) \( [+-eE0123456789.]+'], - ['crit_stress', r'^error stress = ([ +-eE0123456789.]+) \( [+-eE0123456789.]+'], - ['max(sym(deltaF))', r'^max symmetrix correction of deformation = ([ +-eE0123456789.]+)'], - ['max(skew(deltaF))', r'^max skew correction of deformation = ([ +-eE0123456789.]+)'], - ['max(sym/skew(avg(deltaF)))', r'^max sym/skew of avg correction = ([ +-eE0123456789.]+)'], - ['det(Fbar)', r'^determinant of new deformation = ([ +-eE0123456789.]+)'], - ['max(det(F))', r'^max determinant of deformation = ([ +-eE0123456789.]+)'], - ['min(det(F))', r'^min determinant of deformation = ([ +-eE0123456789.]+)'], - ['div_FT_max', r'^error divergence FT max = ([ +-eE0123456789.]+)'], - ['div_Real_RMS', r'^error divergence Real RMS = ([ +-eE0123456789.]+)'], - ['div_Real_max', r'^error divergence Real max = ([ +-eE0123456789.]+)'], - ['real(error_FT)', r'^max FT relative error = ([ +-eE0123456789.]+) [ +-eE0123456789.]+'], - ['img(error_FT)', r'^max FT relative error = [ +-eE0123456789.]+ ([ +-eE0123456789.]+)'], - ['real(error_iFT)', r'^max iFT relative error = ([ +-eE0123456789.]+)'], - ['error_postProc', r'^max deviat. from postProc =([ +-eE0123456789.]+)'], - ['loadcase', r'^Loadcase (\d+) Increment \d+/\d+ @ Iteration \d+/\d+'] - ] - -parser = OptionParser(option_class=extendedOption, usage='%prog [options] spectralOut[s]', description = """ -Generate ASCIItable with data per iteration. - -""" + string.replace('$Id$','\n','\\n') -) - -parser.add_option('-p','--prefix', dest='prefix', type='string',\ - help='prefix of output ASCIItable [%default]') -parser.set_defaults(prefix = 'logParsing_') - -(options, filenames) = parser.parse_args() - - -# ------------------------------------------ pre-compile regular expressions --------------------------------------- - -for i,[what,regexp] in enumerate(parsing): - parsing[i][1] = re.compile(regexp) - -# ------------------------------------------ setup file handles --------------------------------------- - -files = [] -if filenames == []: - files.append({'name':'STDIN', 'input':sys.stdin, 'output':sys.stdout}) -else: - for name in filenames: - if os.path.exists(name): - (path,file) = os.path.split(name) - files.append({'name':name, 'input':open(name), - 'output':open(os.path.join(path,options.prefix+os.path.splitext(file)[0]+'.txt'), 'w')}) - -# ------------------------------------------ loop over input files --------------------------------------- - -for file in files: - if file['name'] != 'STDIN': print file['name'] - - table = damask.ASCIItable(fileOut=file['output'],buffered=False) # make unbuffered ASCII_table - table.info_append(string.replace('$Id$','\n','\\n') + \ - '\t' + ' '.join(sys.argv[1:])) - table.labels_append([x[0] for x in parsing[1:]]) # exclude __CLOCK__ - -# ------------------------------------------ assemble header --------------------------------------- - - table.head_write() - -# ------------------------------------------ parse log --------------------------------------- - - for line in file['input']: - for what,regexp in parsing: - m = regexp.search(line) - if m: - if what != '__CLOCK__': table.data_set(m.group(1),what) # unless clock ticking detected... - else: - table.data_write() - table.data_clear() - - if table.data != []: table.data_write() - -# ------------------------------------------ output result --------------------------------------- - - table.output_flush() # just in case of buffered ASCII table - - file['input'].close() # close input ASCII table - if file['name'] != 'STDIN': - file['output'].close # close output ASCII table \ No newline at end of file diff --git a/processing/pre/geom_periodicCopies.py b/processing/pre/geom_periodicCopies.py deleted file mode 100755 index e39fd3cc3..000000000 --- a/processing/pre/geom_periodicCopies.py +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -import os,sys,math,string,re,numpy, damask -from optparse import OptionParser, OptionGroup, Option, SUPPRESS_HELP - - -# ----------------------------- -class extendedOption(Option): -# ----------------------------- -# used for definition of new option parser action 'extend', which enables to take multiple option arguments -# taken from online tutorial http://docs.python.org/library/optparse.html - - ACTIONS = Option.ACTIONS + ("extend",) - STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",) - TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",) - ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + ("extend",) - - def take_action(self, action, dest, opt, value, values, parser): - if action == "extend": - lvalue = value.split(",") - values.ensure_value(dest, []).extend(lvalue) - else: - Option.take_action(self, action, dest, opt, value, values, parser) - - -# -------------------------------------------------------------------- -# MAIN -# -------------------------------------------------------------------- -identifiers = { - 'resolution': ['a','b','c'], - 'dimension': ['x','y','z'], - 'origin': ['x','y','z'], - } -mappings = { - 'grains': lambda x: int(x), - 'resolution': lambda x: int(x), - 'origin': lambda x: float(x), - 'dimension': lambda x: float(x), - 'homogenization': lambda x: int(x), - } - -parser = OptionParser(option_class=extendedOption, usage='%prog options [file[s]]', description = """ -Generate geometry description and material configuration by standard Voronoi tessellation of given seeds file. -""" + string.replace('$Id$','\n','\\n') -) - -parser.add_option('-2', '--twodimensional', dest='twoD', action='store_true', \ - help='output geom file with two-dimensional data arrangement') - -parser.set_defaults(twoD = False) - -(options,filenames) = parser.parse_args() - - -# ------------------------------------------ setup file handles --------------------------------------- - -files = [] -if filenames == []: - files.append({'name':'STDIN', - 'input':sys.stdin, - 'output':sys.stdout, - 'croak':sys.stderr, - }) -else: - for name in filenames: - if os.path.exists(name): - files.append({'name':name, - 'input':open(name), - 'output':open(name+'_tmp','w'), - 'croak':sys.stdout, - }) - - -# ------------------------------------------ loop over input files --------------------------------------- - -for file in files: - if file['name'] != 'STDIN': file['croak'].write(file['name']+'\n') - - firstline = file['input'].readline() - m = re.search('(\d+)\s*head', firstline.lower()) - if m: - headerlines = int(m.group(1)) - headers = [firstline]+[file['input'].readline() for i in range(headerlines)] - else: - headerlines = 1 - headers = firstline - - - info = {'grains': 0, - 'resolution': numpy.array([0,0,0]), - 'dimension': numpy.array([1.0,1.0,1.0]), - 'origin': numpy.array([0.0,0.0,0.0]), - 'homogenization': 1, - } - - new_header = [] - for header in headers: - headitems = map(str.lower,header.split()) - if headitems[0] in mappings.keys(): - if headitems[0] in identifiers.keys(): - for i in xrange(len(identifiers[headitems[0]])): - info[headitems[0]][i] = \ - mappings[headitems[0]](headitems[headitems.index(identifiers[headitems[0]][i])+1]) - else: - info[headitems[0]] = mappings[headitems[0]](headitems[1]) - - content = [] - for line in file['input']: - for word in line.split(): content.append(word) - file['input'].close() - content=numpy.reshape(numpy.tile(numpy.reshape(content,info['resolution']),(1,1,1,3,3,3)), - info['resolution'].prod()*27) - - info['grains'] = max(numpy.array(content,'i')) - file['croak'].write('grains: %i\n'%info['grains'] + \ - 'resolution: %s\n'%(' x '.join(map(str,info['resolution']))) + \ - 'dimension: %s\n'%(' x '.join(map(str,info['dimension']))) + \ - 'origin: %s\n'%(' : '.join(map(str,info['origin']))) + \ - 'homogenization: %i\n'%info['homogenization']) - - new_header.append("grains\t%i\n"%( info['grains'])) - new_header.append("resolution\ta %i\tb %i\tc %i\n"%( - info['resolution'][0]*3, - info['resolution'][1]*3, - info['resolution'][2]*3,)) - new_header.append("dimension\tx %f\ty %f\tz %f\n"%( - info['dimension'][0], - info['dimension'][1], - info['dimension'][2],)) - new_header.append("origin\tx %f\ty %f\tz %f\n"%( - info['origin'][0], - info['origin'][1], - info['origin'][2],)) - new_header.append("homogenization\t%i\n"%info['homogenization']) - -# -------------------------------------- write data to file ---------------------------------- - - formatwidth = 1+int(math.log10(info['grains'])) - file['output'].write('%i\theader\n'%(len(new_header)) + ''.join(new_header)) - - for n in xrange(info['resolution'][1:3].prod()*9): - file['output'].write({ True: ' ', - False:'\n'}[options.twoD].\ - join(map(lambda x: str(x).rjust(formatwidth),\ - content[n*3*info['resolution'][0]:(n+1)*3*info['resolution'][0]]))+'\n') - -# ------------------------------------------ output finalization --------------------------------------- - - if file['name'] != 'STDIN': - file['output'].close() - os.rename(file['name']+'_tmp',os.path.splitext(file['name'])[0]+'_27periodicCopies.geom') diff --git a/processing/setup/symLink_Processing.py b/processing/setup/symLink_Processing.py index 8167ae00c..6503f3937 100755 --- a/processing/setup/symLink_Processing.py +++ b/processing/setup/symLink_Processing.py @@ -26,7 +26,6 @@ bin_link = { \ 'geom_check.py', 'geom_rescale.py', 'geom_pack.py', - 'geom_periodicCopies.py', 'geom_unpack.py', 'geom_translate.py', 'geom_vicinityOffset.py', @@ -61,7 +60,6 @@ bin_link = { \ 'perceptualUniformColorMap.py', 'postResults.py', 'showTable.py', - 'spectral_parseLog.py', 'table2ang', 'tagLabel.py', ],