diff --git a/examples/gwk_compressor/Snakefile b/examples/gwk_compressor/Snakefile index d205352e649964183fe63cfebe22ecc70a0f4dd7..865469ecc2499b4606cc5848367b6382b1c48a06 100644 --- a/examples/gwk_compressor/Snakefile +++ b/examples/gwk_compressor/Snakefile @@ -1,6 +1,6 @@ from snakemake.utils import validate -from ntrfc.utils.filehandling.read_datafiles import yaml_dict_read -from ntrfc.utils.filehandling.read_mesh import load_mesh +from ntrfc.utils.filehandling.datafiles import yaml_dict_read +from ntrfc.utils.filehandling.mesh import load_mesh import numpy as np #todo move this snakepipe to according dir in sourcecode @@ -20,39 +20,65 @@ rule profile_from_pointcloud: generate_profile_pointcloud_geometry(config["blade"],basedir) """ + +""" +rule dumdidum: + + #snakemake Wasd1193.csv + #1193 --> step für das Erzeugen von parameter (float, etc.) + + output: + "Wasd{parameter_x}.csv" + run: + print(wildcards.parameter_x) """ + rule create_2d_domain: input: - "01_profile/sortedPoints.txt", "01_profile/psPoly.vtk", "01_profile/ssPoly.vtk", "01_profile/midsPoly.vtk", "01_profile/geometry_paras.yml" +# sortedPoints_fpath="01_profile/sortedPoints.txt", + psPoly_fpath="01_profile/psPoly.vtk", + ssPoly_fpath="01_profile/ssPoly.vtk", + midsPoly_fpath="01_profile/midsPoly.vtk", + geometry_paras_fpath="01_profile/geometry_paras.yml" output: - "02_boundaries/inlet_2d.vtk","02_boundaries/outlet_2d.vtk","02_boundaries/y_upper_2d.vtk","02_boundaries/y_lower_2d.vtk", - "02_boundaries/domain.pdf" + "02_domainboundaries/inlet_2d.vtk","02_domainboundaries/outlet_2d.vtk", + "02_domainboundaries/y_upper_2d.vtk","02_domainboundaries/y_lower_2d.vtk", + "02_domainboundaries/domain.pdf" + params: + geometry=config["geometry"] run: from ntrfc.preprocessing.mesh_creation.domain_creation import create_2d_domain - sortedPoints_fpath = input[0] - psPoly_fpath = input[1] - ssPoly_fpath = input[2] - midsPoly_fpath = input[3] - geometry_paras_fpath = input[4] + #todo: dateieinlesen nicht im rule, sondern in der funktion + psPoly = load_mesh(input.psPoly_fpath) + ssPoly = load_mesh(input.ssPoly_fpath) + midsPoly = load_mesh(input.midsPoly_fpath) + geometry_paras = yaml_dict_read(input.geometry_paras_fpath) - psPoly = load_mesh(psPoly_fpath) - ssPoly = load_mesh(ssPoly_fpath) - midsPoly = load_mesh(midsPoly_fpath) - geometry_paras = yaml_dict_read(geometry_paras_fpath) + create_2d_domain(params["geometry"],basedir,midsPoly,ssPoly,psPoly,geometry_paras) - create_2d_domain(config["geometry"],basedir,midsPoly,ssPoly,psPoly,geometry_paras) """ +rule create_cascademesh: + input: + output: + run: +""" + rule create_blockboundaries: input: "01_profile/sortedPoints.txt", "01_profile/psPoly.vtk", "01_profile/ssPoly.vtk", - "01_profile/geometry_paras.yml" ,"01_profile/midsPoly.vtk" ,"02_boundaries/inlet_2d.vtk", - "02_boundaries/outlet_2d.vtk", "02_boundaries/y_upper_2d.vtk", "02_boundaries/y_lower_2d.vtk" + "01_profile/geometry_paras.yml" ,"01_profile/midsPoly.vtk" ,"02_domainboundaries/inlet_2d.vtk", + "02_domainboundaries/outlet_2d.vtk", "02_domainboundaries/y_upper_2d.vtk", "02_domainboundaries/y_lower_2d.vtk" output: - "02_domain/ogridline_2d.vtk" + "03_meshgeometry/blocks.geom", + "03_meshgeometry/domain.geom", + "03_meshgeometry/blocklines.pdf" + run: from ntrfc.preprocessing.mesh_creation.domain_creation import create_2d_blocklines + + #todo: params einpflegen, files in funktion laden sortedPoints_fpath = input[0] psPoly_fpath = input[1] ssPoly_fpath = input[2] @@ -75,6 +101,22 @@ rule create_blockboundaries: create_2d_blocklines(config["blade"],basedir,sortedPoints,psPoly,ssPoly,geometry_paras,midsPoly,inlet,outlet,y_upper,y_lower) +""" +rule run_igg_cascademesh: + input: + "02_domainboundaries/inlet_2d.vtk", "02_domainboundaries/outlet_2d.vtk", + "02_domainboundaries/y_upper_2d.vtk", "02_domainboundaries/y_lower_2d.vtk", + "03_blockboundaries/ogridline_2d.vtk","03_blockboundaries/ogrid_oulet.vtk", + "03_blockboundaries/ogrid_inlet.vtk","03_blockboundaries/te_ogrid.vtk","03_blockboundaries/le_ogrid.vtk", + "03_blockboundaries/yupper_ogrid_x1.vtk","03_blockboundaries/ylower_ogrid_x1.vtk","03_blockboundaries/yupper_ogrid_x0.vtk", + "03_blockboundaries/ylower_ogrid_x0.vtk","03_blockboundaries/ss_x1_ogrid_line.vtk","03_blockboundaries/ss_x0_ogrid_line.vtk", + "03_blockboundaries/ps_x1_ogrid_line.vtk", "03_blockboundaries/ps_x0_ogrid_line.vtk" + output: + "04_meshgeometry/blocks.geom", + "04_meshgeometry/domain.geom" + run: + from ntrf.preprocessing.mesh_creation.domain_creation import create_igg_geometry +""" """ rule profile_from_naca: # input: diff --git a/examples/gwk_compressor/casesettings.yaml b/examples/gwk_compressor/casesettings.yaml index ba34d6ca9fdf2f0bc6e110967cd016299351cc6c..204ebb9d3cb936ba6a6fa97845e13fc10b196042 100644 --- a/examples/gwk_compressor/casesettings.yaml +++ b/examples/gwk_compressor/casesettings.yaml @@ -8,4 +8,4 @@ geometry : pitch : 0.0765 #Pitch [m] x_inlet : -0.13 #Shift Inlet along x [m] x_outlet : 0.26 #Shift Outlet along x [m] - blade_shift : 0.015 #Shift Domain to have probes inside domain [m] + blade_shift : 0.005 #Shift Domain to have probes inside domain [m] diff --git a/ntrfc/preprocessing/mesh_creation/domain_creation.py b/ntrfc/preprocessing/mesh_creation/domain_creation.py index 8a44f44d95c60c37b25142dc2b8ccb2b1d48eb5c..a1f267418fff919480cdf31f346a0ad1c690a932 100644 --- a/ntrfc/preprocessing/mesh_creation/domain_creation.py +++ b/ntrfc/preprocessing/mesh_creation/domain_creation.py @@ -1,6 +1,7 @@ from ntrfc.utils.geometry.pointcloud_methods import calcMidPassageStreamLine from ntrfc.utils.pyvista_utils.line import lines_from_points -from ntrfc.utils.math.vectorcalc import closest_node_index, vecAbs +from ntrfc.utils.math.vectorcalc import closest_node_index, vecAbs, vecDir +from ntrfc.utils.filehandling.tecplot import writeTecplot1DFile import numpy as np import pyvista as pv import os @@ -44,7 +45,7 @@ def create_2d_domain(geosettings, basedir, midsPoly, ssPoly, psPoly, geometry_pa outletPoly = pv.Line(*outlet_pts) - domain_dir = os.path.join(basedir, "02_boundaries") + domain_dir = os.path.join(basedir, "02_domainboundaries") inletPoly.save(os.path.join(domain_dir, "inlet_2d.vtk"), False) outletPoly.save(os.path.join(domain_dir, "outlet_2d.vtk"), False) per_y_upper.save(os.path.join(domain_dir, "y_upper_2d.vtk"), False) @@ -83,7 +84,8 @@ def create_2d_blocklines(geo_settings, basedir, sortedPoints, psPoly, ssPoly, ge ogridhelpersurface.points += ogrid_size * ogridhelpersurface.point_normals ogridline = ogridhelpersurface.slice(normal="z") ogridline.points[:, 2] = 0 - ogridline.save(os.path.join(basedir, "ogridline_2d.vtk")) + domain_dir = os.path.join(basedir,"03_meshgeometry") + blademids = midsPoly.copy() # blademids.points += pitch/2 @@ -120,25 +122,79 @@ def create_2d_blocklines(geo_settings, basedir, sortedPoints, psPoly, ssPoly, ge geometry_paras["beta_meta_02"], inlet.bounds[0],outlet.bounds[0],0) - mspPoly = pv.PolyData(np.stack([msp_xx,msp_yy,np.zeros(len(msp_yy))]).T) - p = pv.Plotter() - p.add_mesh(inlet) - p.add_mesh(inlet) - p.add_mesh(y_upper) - p.add_mesh(y_lower) - p.add_mesh(bladeline) - - p.add_mesh(blademids) - - p.add_mesh(mspPoly) - p.add_mesh(ogridline) - p.add_mesh(ps_x0_ogrid_line) - p.add_mesh(ps_x1_ogrid_line) - p.add_mesh(ss_x0_ogrid_line) - p.add_mesh(ss_x1_ogrid_line) - p.add_mesh(ylower_ogrid_x0) - p.add_mesh(yupper_ogrid_x0) - p.add_mesh(ylower_ogrid_x1) - p.add_mesh(yupper_ogrid_x1) - p.show(cpos=[0, 0, 1]) + mspPoly = lines_from_points(np.stack([msp_xx,msp_yy,np.zeros(len(msp_yy))]).T) + + le_ogrid = pv.Line(midsPoly.points[0],midsPoly.points[0]-vecDir(midsPoly.points[1]-midsPoly.points[0])*ogrid_size) + te_ogrid = pv.Line(midsPoly.points[-1],midsPoly.points[-1]-vecDir(midsPoly.points[-2]-midsPoly.points[-1])*ogrid_size) + ogrid_inlet_dist = vecAbs(mspPoly.points[0]-le_ogrid.points[-1]) + ogrid_outlet_dist = vecAbs(mspPoly.points[-1]-te_ogrid.points[-1]) + ogrid_inlet = pv.Line(le_ogrid.points[-1],le_ogrid.points[-1]-vecDir(midsPoly.points[1]-midsPoly.points[0])*ogrid_inlet_dist) + ogrid_oulet = pv.Line(te_ogrid.points[-1],te_ogrid.points[-1]-vecDir(midsPoly.points[-2]-midsPoly.points[-1])*ogrid_outlet_dist) + """ + ogridline.save(os.path.join(domain_dir, "ogridline_2d.vtk")) + + + ogrid_oulet.save(os.path.join(domain_dir, "ogrid_oulet.vtk")) + ogrid_inlet.save(os.path.join(domain_dir, "ogrid_inlet.vtk")) + te_ogrid.save(os.path.join(domain_dir, "te_ogrid.vtk")) + le_ogrid.save(os.path.join(domain_dir, "le_ogrid.vtk")) + yupper_ogrid_x1.save(os.path.join(domain_dir, "yupper_ogrid_x1.vtk")) + ylower_ogrid_x1.save(os.path.join(domain_dir, "ylower_ogrid_x1.vtk")) + yupper_ogrid_x0.save(os.path.join(domain_dir, "yupper_ogrid_x0.vtk")) + ylower_ogrid_x0.save(os.path.join(domain_dir, "ylower_ogrid_x0.vtk")) + ss_x1_ogrid_line.save(os.path.join(domain_dir, "ss_x1_ogrid_line.vtk")) + ss_x0_ogrid_line.save(os.path.join(domain_dir, "ss_x0_ogrid_line.vtk")) + ps_x1_ogrid_line.save(os.path.join(domain_dir, "ps_x1_ogrid_line.vtk")) + ps_x0_ogrid_line.save(os.path.join(domain_dir, "ps_x0_ogrid_line.vtk")) + """ + plt.figure() + plt.plot(inlet.points[::, 0], inlet.points[::, 1], color="#6c3376") + plt.plot(outlet.points[::, 0], outlet.points[::, 1], color="#FF2211") + plt.plot(y_upper.points[::, 0], y_upper.points[::, 1], color="#FF22CC") + plt.plot(y_lower.points[::, 0], y_lower.points[::, 1], color="#FF22CC") + plt.plot(bladeline.points[::, 0], bladeline.points[::, 1], color="#6c3376") + plt.plot(le_ogrid.points[::, 0], le_ogrid.points[::, 1], color="#FF2211") + plt.plot(te_ogrid.points[::, 0], te_ogrid.points[::, 1], color="#FF22CC") + plt.plot(ogrid_inlet.points[::, 0], ogrid_inlet.points[::, 1], color="#FF22CC") + plt.plot(ogrid_oulet.points[::, 0], ogrid_oulet.points[::, 1], color="#6c3376") + plt.plot(ogridline.points[::, 0], ogridline.points[::, 1], color="#FF2211") + plt.plot(ps_x0_ogrid_line.points[::, 0], ps_x0_ogrid_line.points[::, 1], color="#FF22CC") + plt.plot(ps_x1_ogrid_line.points[::, 0], ps_x1_ogrid_line.points[::, 1], color="#FF22CC") + plt.plot(ss_x0_ogrid_line.points[::, 0], ss_x0_ogrid_line.points[::, 1], color="#FF22CC") + plt.plot(ss_x1_ogrid_line.points[::, 0], ss_x1_ogrid_line.points[::, 1], color="#FF22CC") + plt.plot(ylower_ogrid_x0.points[::, 0], ylower_ogrid_x0.points[::, 1], color="#FF22CC") + plt.plot(yupper_ogrid_x0.points[::, 0], yupper_ogrid_x0.points[::, 1], color="#FF22CC") + plt.plot(ylower_ogrid_x1.points[::, 0], ylower_ogrid_x1.points[::, 1], color="#FF22CC") + plt.plot(yupper_ogrid_x1.points[::, 0], yupper_ogrid_x1.points[::, 1], color="#FF22CC") + plt.xlabel('x') + plt.ylabel('y') + plt.savefig(os.path.join(domain_dir, 'blocklines.pdf')) + + + writeTecplot1DFile(os.path.join(domain_dir,"domain.geom"),['x', 'z'], + ["inlet", "outlet", "y_upper", "y_lower", "psPoly", "ssPoly"], + [[inlet.points[::,0],inlet.points[::,1]],[outlet.points[::,0],outlet.points[::,1]], + [y_upper.points[::,0],y_upper.points[::,1]],[y_lower.points[::,0],y_lower.points[::,1]], + [psPoly.points[::,0],psPoly.points[::,1]],[ssPoly.points[::,0],ssPoly.points[::,1]]], + "domainboundaries") + + writeTecplot1DFile(os.path.join(domain_dir,"blocks.geom"),['x', 'z'], + ["le_ogrid","te_ogrid","ogrid_inlet","ogrid_oulet","ogridline", + "ps_x0_ogrid_line","ps_x1_ogrid_line","ss_x0_ogrid_line","ss_x1_ogrid_line", + "ylower_ogrid_x0","yupper_ogrid_x0","ylower_ogrid_x1","yupper_ogrid_x1"], + [[le_ogrid.points[::,0],le_ogrid.points[::,1]], + [te_ogrid.points[::,0],te_ogrid.points[::,1]], + [ogrid_inlet.points[::,0],ogrid_inlet.points[::,1]], + [ogrid_oulet.points[::,0],ogrid_oulet.points[::,1]], + [ogridline.points[::,0],ogridline.points[::,1]], + [ps_x0_ogrid_line.points[::,0],ps_x0_ogrid_line.points[::,1]], + [ps_x1_ogrid_line.points[::,0],ps_x1_ogrid_line.points[::,1]], + [ss_x0_ogrid_line.points[::,0],ss_x0_ogrid_line.points[::,1]], + [ss_x1_ogrid_line.points[::,0],ss_x1_ogrid_line.points[::,1]], + [ylower_ogrid_x0.points[::,0],ylower_ogrid_x0.points[::,1]], + [yupper_ogrid_x0.points[::,0],yupper_ogrid_x0.points[::,1]], + [ylower_ogrid_x1.points[::,0],ylower_ogrid_x1.points[::,1]]], + "blockboundaries") + + return 0 diff --git a/ntrfc/utils/filehandling/read_datafiles.py b/ntrfc/utils/filehandling/datafiles.py similarity index 100% rename from ntrfc/utils/filehandling/read_datafiles.py rename to ntrfc/utils/filehandling/datafiles.py diff --git a/ntrfc/utils/filehandling/read_mesh.py b/ntrfc/utils/filehandling/mesh.py similarity index 100% rename from ntrfc/utils/filehandling/read_mesh.py rename to ntrfc/utils/filehandling/mesh.py diff --git a/ntrfc/utils/filehandling/tecplot.py b/ntrfc/utils/filehandling/tecplot.py new file mode 100644 index 0000000000000000000000000000000000000000..92873f0cfcf86bcc1dbc23fb090ecd0ad25c07bf --- /dev/null +++ b/ntrfc/utils/filehandling/tecplot.py @@ -0,0 +1,151 @@ +import os + + +def writeTecplot1DFile(output_path, var_string, zone_string, values, title): + # var_string: namen der variablen als liste ['U','p'] + # zone_string: namen der zonen als liste ['saugseute','druckseite'] + # values: erster index der liste steht fuer zone, dann folgen die listen der eigentlichen variablen + # Beispiel: [[[10,11,10],[10000,11000,12000]],[[10,11,10],[10000,11000,12000]]] + data = open(os.path.join(output_path), 'w') + data.write('TITLE ="' + title + '"\n') + var = 'VARIABLES = ' + for i in range(len(var_string)): + if i < len(var_string) - 1: + var = var + '"' + var_string[i] + '", ' + else: + var = var + '"' + var_string[i] + '"\n' + + data.write(var) + + for i in range(len(values)): + data.write('ZONE T="' + zone_string[i] + '",I=' + str(len(values[i][0])) + '\n') + + # data.write('ZONE T= "'+zone_string[i]+'"\n') + for j in range(len(values[i][0])): + line_string = '' + for k in range(len(values[i])): + if k < len(values[i]) - 1: + line_string = line_string + str(values[i][k][j]) + '\t' + else: + line_string = line_string + str(values[i][k][j]) + '\n' + data.write(line_string) + + data.close() + + +def writeTecplot2D3DFile(filename, X, Y, Z, vars): + def pad(s, width): + s2 = s + while len(s2) < width: + s2 = ' ' + s2 + if s2[0] != ' ': + s2 = ' ' + s2 + if len(s2) > width: + s2 = s2[:width] + return s2 + + def varline(vars, id, fw): + s = "" + for v in vars: + s = s + pad(str(v[1][id]), fw) + s = s + '\n' + return s + + fw = 10 # field width + + f = open(filename, "wt") + + f.write('Variables="X","Y"') + if len(Z) > 0: + f.write(',"Z"') + for v in vars: + f.write(',"%s"' % v[0]) + f.write('\n\n') + + f.write('Zone I=' + pad(str(len(X)), 6) + ',J=' + pad(str(len(Y)), 6)) + if len(Z) > 0: + f.write(',K=' + pad(str(len(Z)), 6)) + f.write(', F=POINT\n') + + if len(Z) > 0: + id = 0 + for k in range(len(Z)): + for j in range(len(Y)): + for i in range(len(X)): + f.write(pad(str(X[i]), fw) + pad(str(Y[j]), fw) + pad(str(Z[k]), fw)) + f.write(varline(vars, id, fw)) + id = id + 1 + else: + id = 0 + for j in range(len(Y)): + for i in range(len(X)): + f.write(pad(str(X[i]), fw) + pad(str(Y[j]), fw)) + f.write(varline(vars, id, fw)) + id = id + 1 + + f.close() + + +def openTecplotFile(path): + + values = [] + var = [] + zones = [] + + zone_bool = -1 + with open(path, 'r') as f: + for line in f: + if line.startswith('VARIABLES'): + line_string = line.replace('\n', '').split('=')[-1].split(',') + for string in line_string: + var.append(string.replace('"', '')) + + if line.startswith('ZONE'): + + zone_bool = zone_bool + 1 + + zones.append(line.replace('\n', '').split('=')[-1].replace('"', '')) + list_01 = [] + for i in range(len(var)): + list_01.append([]) + + values.append(list_01) + + if line.startswith('ZONE') or line.startswith('VARIABLES') or line.startswith('TITLE'): + pass + + else: + line_values = line.split() + for i in range(len(line_values)): + values[zone_bool][i].append(float(line_values[i])) + + return values + + +def getTecplotFileVarNames(path): + var = [] + + with open(path, 'r') as f: + for line in f: + if line.startswith('VARIABLES'): + line = line.replace(' ', '') + line_string = line.replace('\n', '').split('=')[-1].split(',') + + for string in line_string: + var.append(string.replace('"', '')) + + return var + + +def getTecplotFileZoneNames(path): + var = [] + + with open(path, 'r') as f: + for line in f: + if line.startswith('ZONE') or line.startswith('Zone') or line.startswith('zone'): + line = line.replace(' ', '') + line_string = line.replace('\n', '').split('"')[1] + + var.append(line_string) + + return var diff --git a/tests/test_ntrfc.py b/tests/test_ntrfc.py index af0fd93df4c5a4ba98657b136e2535e0902dd193..b79e2b65bb5c5ac88e524b015cf9502f9c0fedc9 100644 --- a/tests/test_ntrfc.py +++ b/tests/test_ntrfc.py @@ -21,7 +21,7 @@ def test_yamlDictRead(tmpdir): """ tests if yaml is returning a known dictionary """ - from ntrfc.utils.filehandling.read_datafiles import yaml_dict_read + from ntrfc.utils.filehandling.datafiles import yaml_dict_read test_file = tmpdir / "test.yaml" with open(test_file, "w") as handle: @@ -33,7 +33,7 @@ def test_yamlDictWrite(tmpdir): """ tests if yaml is writing and returning a known dictionary """ - from ntrfc.utils.filehandling.read_datafiles import yaml_dict_read, write_yaml_dict + from ntrfc.utils.filehandling.datafiles import yaml_dict_read, write_yaml_dict test_file = tmpdir / "test.yaml" test_dict = {"test_key": True} @@ -62,7 +62,7 @@ def test_loadmesh_vtk(tmpdir): """ tests if a vtk mesh can be read and Density is translated to rho """ - from ntrfc.utils.filehandling.read_mesh import load_mesh + from ntrfc.utils.filehandling.mesh import load_mesh test_file = tmpdir / "tmp.vtk" mesh = pv.Box() @@ -84,28 +84,28 @@ def test_surface_distance(): def test_cgnsReader(): - from ntrfc.utils.filehandling.read_mesh import cgnsReader + from ntrfc.utils.filehandling.mesh import cgnsReader # todo fill a = cgnsReader return 0 def test_vtkUnstructuredGridReader(): - from ntrfc.utils.filehandling.read_mesh import vtkUnstructuredGridReader + from ntrfc.utils.filehandling.mesh import vtkUnstructuredGridReader # todo fill a = vtkUnstructuredGridReader return 0 def test_vtkFLUENTReader(): - from ntrfc.utils.filehandling.read_mesh import vtkFLUENTReader + from ntrfc.utils.filehandling.mesh import vtkFLUENTReader # todo fill a = vtkFLUENTReader return 0 def test_pickle_operations(tmpdir): - from ntrfc.utils.filehandling.read_datafiles import write_pickle, read_pickle, write_pickle_protocolzero + from ntrfc.utils.filehandling.datafiles import write_pickle, read_pickle, write_pickle_protocolzero fname = tmpdir / "test.pkl" dict = {"test": 1} diff --git a/snakepipes/01_profile_creation/Snakefile b/workflow/01_profile_creation/Snakefile similarity index 100% rename from snakepipes/01_profile_creation/Snakefile rename to workflow/01_profile_creation/Snakefile diff --git a/snakepipes/animationcase_creation/Snakefile b/workflow/animationcase_creation/Snakefile similarity index 100% rename from snakepipes/animationcase_creation/Snakefile rename to workflow/animationcase_creation/Snakefile diff --git a/snakepipes/case_creation/Snakefile b/workflow/case_creation/Snakefile similarity index 100% rename from snakepipes/case_creation/Snakefile rename to workflow/case_creation/Snakefile diff --git a/snakepipes/mesh_creation/Snakefile b/workflow/mesh_creation/Snakefile similarity index 100% rename from snakepipes/mesh_creation/Snakefile rename to workflow/mesh_creation/Snakefile diff --git a/snakepipes/postprocessing/Snakefile b/workflow/postprocessing/Snakefile similarity index 100% rename from snakepipes/postprocessing/Snakefile rename to workflow/postprocessing/Snakefile