diff --git a/PRIVATE b/PRIVATE index 27da4d07d..63bc14bfd 160000 --- a/PRIVATE +++ b/PRIVATE @@ -1 +1 @@ -Subproject commit 27da4d07d1f2f07a525a2d1dda51a46a3711a458 +Subproject commit 63bc14bfd7dee73978615cfd939bad69c50cca3a diff --git a/processing/legacy/gmsh_identifySurfaces.py b/processing/legacy/gmsh_identifySurfaces.py deleted file mode 100755 index 9dbb81fbf..000000000 --- a/processing/legacy/gmsh_identifySurfaces.py +++ /dev/null @@ -1,198 +0,0 @@ -#!/usr/bin/env python3 - -import os -import re -from optparse import OptionParser - -import damask - -scriptName = os.path.splitext(os.path.basename(__file__))[0] -scriptID = ' '.join([scriptName,damask.version]) - -def all_same(items,a): - return all(x == a for x in items) - - -def func(seq): - for x in seq: - try: - yield float(x) - except ValueError: - yield x - - -#-------------------------------------------------------------------------------------------------- -# MAIN -#-------------------------------------------------------------------------------------------------- -parser = OptionParser(option_class=damask.extendableOption, usage='%prog options [file[s]]', - description =' Recognize bounding surfaces and append them as physical sufaces in the geo file.', - version = scriptID) - - -parser.add_option('-n','--numvol', dest = 'N', type='int', metavar='int', - help='number of physical volumes' ) -parser.add_option('-f','--faces', dest = 'surfaces', action = 'extend', type = 'string', metavar = '', - help = 'surfaces to tag {x, y, z}') -parser.add_option('-s','--size', dest = 'size', type='float', metavar='float', - help='mesh size [%default]' ) -parser.add_option('-d','--dim', dest = 'dimension', type='int', metavar='int', - help='dimension of geometry [%default]' ) - -(options, filename) = parser.parse_args() -parser.set_defaults(size = 0.1, - dimension = 3) - -my_geofile = filename[0] -numVol = options.N - -PointCount = 0 -LineCount = 0 -LineLoopCount = 0 -point = [] -line = [] -lineloop = [] - -f = open(my_geofile,'r') -lines = f.readlines() -f.close() -for eachline in lines: - if eachline.startswith('Point', 0, 5): - PointCount += 1 - r = re.compile('{(.*?)}') - m = r.search(eachline) - if m: - a = m.group(1) - point.append(list(func(a.split(",")))) - - elif eachline.startswith('Line (', 0, 6): - LineCount += 1 - r = re.compile('{(.*?)}') - m = r.search(eachline) - if m: - a = m.group(1) - line.append(list(func(a.split(",")))) - - elif eachline.startswith('Line Loop', 0, 9): - LineLoopCount += 1 - r = re.compile('{(.*?)}') - m = r.search(eachline) - if m: - a = m.group(1) - lineloop.append(list(func(a.split(",")))) - -x_coord = []; y_coord = []; z_coord = [] -xp = []; xm = [] -yp = []; ym = [] -zp = []; zm = [] -xmin = min([x[0] for x in point]); xmax = max([x[0] for x in point]) -ymin = min([x[1] for x in point]); ymax = max([x[1] for x in point]) -zmin = min([x[2] for x in point]); zmax = max([x[2] for x in point]) - - -if (options.dimension == 3): - for i,l in enumerate(lineloop): - for lines in l: - for pts in line[int(abs(lines)-1)]: - x_coord.append(point[int(pts)-1][0]) - y_coord.append(point[int(pts)-1][1]) - z_coord.append(point[int(pts)-1][2]) - if all_same(x_coord,xmax) and any([surface == 'x' for surface in options.surfaces]): - xp.append(int(i+1)) - elif all_same(x_coord,xmin) and any([surface == 'x' for surface in options.surfaces]): - xm.append(int(i+1)) - elif all_same(y_coord,ymax) and any([surface == 'y' for surface in options.surfaces]): - yp.append(int(i+1)) - elif all_same(y_coord,ymin) and any([surface == 'y' for surface in options.surfaces]): - ym.append(int(i+1)) - elif all_same(z_coord,zmax) and any([surface == 'z' for surface in options.surfaces]): - zp.append(int(i+1)) - elif all_same(z_coord,zmin) and any([surface == 'z' for surface in options.surfaces]): - zm.append(int(i+1)) - x_coord = [] - y_coord = [] - z_coord = [] - - with open(my_geofile,'a') as f: - f.write('Delete Physicals; \n') - if any([surface == 'x' for surface in options.surfaces]): - f.write('%s%s%s\n' %('Physical Surface(1) = {',','.join(map(str, xp)),'};')) - f.write('%s%s%s\n' %('Physical Surface(2) = {',','.join(map(str, xm)),'};')) - - if any([surface == 'y' for surface in options.surfaces]): - f.write('%s%s%s\n' %('Physical Surface(3) = {',','.join(map(str, yp)),'};')) - f.write('%s%s%s\n' %('Physical Surface(4) = {',','.join(map(str, ym)),'};')) - - if any([surface == 'z' for surface in options.surfaces]): - f.write('%s%s%s\n' %('Physical Surface(5) = {',','.join(map(str, zp)),'};')) - f.write('%s%s%s\n' %('Physical Surface(6) = {',','.join(map(str, zm)),'};')) - - for i in range(numVol): - f.write('%s%d%s%d%s\n' %('Physical Volume (', i+1,') = {',i+1,'};')) - - f.write('Field[1] = Box;\n') - f.write('%s%f%s\n' %('Field[1].VIn = ', options.size,';')) - f.write('%s%f%s\n' %('Field[1].VOut = ',options.size,';')) - f.write('%s%f%s\n' %('Field[1].XMin = ',xmin,';')) - f.write('%s%f%s\n' %('Field[1].XMax = ',xmax,';')) - f.write('%s%f%s\n' %('Field[1].YMin = ',ymin,';')) - f.write('%s%f%s\n' %('Field[1].YMax = ',ymax,';')) - f.write('%s%f%s\n' %('Field[1].ZMin = ',zmin,';')) - f.write('%s%f%s\n' %('Field[1].ZMax = ',zmax,';')) - f.write('Background Field = 1;\n') - - f.close() - -elif (options.dimension == 2): - for i,l in enumerate(line): - # for pts in line[int(abs(lines)-1)]: - for pts in l: - x_coord.append(point[int(pts)-1][0]) - y_coord.append(point[int(pts)-1][1]) - z_coord.append(point[int(pts)-1][2]) - - if all_same(x_coord,xmax) and any([surface == 'x' for surface in options.surfaces]): - xp.append(int(i+1)) - elif all_same(x_coord,xmin) and any([surface == 'x' for surface in options.surfaces]): - xm.append(int(i+1)) - elif all_same(y_coord,ymax) and any([surface == 'y' for surface in options.surfaces]): - yp.append(int(i+1)) - elif all_same(y_coord,ymin) and any([surface == 'y' for surface in options.surfaces]): - ym.append(int(i+1)) - elif all_same(z_coord,zmax) and any([surface == 'z' for surface in options.surfaces]): - zp.append(int(i+1)) - elif all_same(z_coord,zmin) and any([surface == 'z' for surface in options.surfaces]): - zm.append(int(i+1)) - x_coord = [] - y_coord = [] - z_coord = [] - - - with open(my_geofile,'a') as f: - f.write('Delete Physicals; \n') - if any([surface == 'x' for surface in options.surfaces]): - f.write('%s%s%s\n' %('Physical Line(1) = {',','.join(map(str, xp)),'};')) - f.write('%s%s%s\n' %('Physical Line(2) = {',','.join(map(str, xm)),'};')) - - if any([surface == 'y' for surface in options.surfaces]): - f.write('%s%s%s\n' %('Physical Line(3) = {',','.join(map(str, yp)),'};')) - f.write('%s%s%s\n' %('Physical Line(4) = {',','.join(map(str, ym)),'};')) - - if any([surface == 'z' for surface in options.surfaces]): - f.write('%s%s%s\n' %('Physical Line(5) = {',','.join(map(str, zp)),'};')) - f.write('%s%s%s\n' %('Physical Line(6) = {',','.join(map(str, zm)),'};')) - - for i in range(numVol): - f.write('%s%d%s%d%s\n' %('Physical Surface (', i+1,') = {',i+1,'};')) - - f.write('Field[1] = Box;\n') - f.write('%s%f%s\n' %('Field[1].VIn = ', options.size,';')) - f.write('%s%f%s\n' %('Field[1].VOut = ',options.size,';')) - f.write('%s%f%s\n' %('Field[1].XMin = ',xmin,';')) - f.write('%s%f%s\n' %('Field[1].XMax = ',xmax,';')) - f.write('%s%f%s\n' %('Field[1].YMin = ',ymin,';')) - f.write('%s%f%s\n' %('Field[1].YMax = ',ymax,';')) - f.write('%s%f%s\n' %('Field[1].ZMin = ',zmin,';')) - f.write('%s%f%s\n' %('Field[1].ZMax = ',zmax,';')) - f.write('Background Field = 1;\n') - - f.close()