diff --git a/Applications/Utils/ExtractBoundary.py b/Applications/Utils/ExtractBoundary.py index 008b042dc0c94abbcf3bd3911cfa752e9492ea06..8eca8fa049e526904c27d68333bb817719ec181b 100644 --- a/Applications/Utils/ExtractBoundary.py +++ b/Applications/Utils/ExtractBoundary.py @@ -1,12 +1,14 @@ # Usage, e.g.: -# python3 ExtractBoundary.py ./snakemake.yaml +# python3 ExtractBoundary.py ./buildinfo.yaml +# +# buildinfo.yaml contains variables such as Data_BINARY_DIR import os, parsl, sys, yaml from parsl import python_app, bash_app from parsl.data_provider.files import File output_path = "FileIO" -elem_types = ['tri', 'quad'] +elem_types = ["tri", "quad"] parsl.load() @@ -14,7 +16,7 @@ config = dict() with open(sys.argv[1]) as f: config = yaml.safe_load(f) -os.environ["PATH"] += os.pathsep + os.pathsep.join([config['BIN_DIR']]) +os.environ["PATH"] += os.pathsep + os.pathsep.join([config["BIN_DIR"]]) os.chdir(f"{config['Data_BINARY_DIR']}/{output_path}") print(f"{config['Data_BINARY_DIR']}/{output_path}") @@ -22,8 +24,9 @@ print(f"{config['Data_BINARY_DIR']}/{output_path}") # Apps @bash_app -def generate_meshes(elem_type, outputs=[], - stderr=parsl.AUTO_LOGNAME, stdout=parsl.AUTO_LOGNAME): +def generate_meshes( + elem_type, outputs=[], stderr=parsl.AUTO_LOGNAME, stdout=parsl.AUTO_LOGNAME +): return f"""generateStructuredMesh -e {elem_type} \ --lx 1 --ly 1 \ --nx 10 --ny 10 \ @@ -31,17 +34,20 @@ def generate_meshes(elem_type, outputs=[], @bash_app -def extract_boundary(elem_type, inputs=[], outputs=[], - stderr=parsl.AUTO_LOGNAME, stdout=parsl.AUTO_LOGNAME): +def extract_boundary( + elem_type, inputs=[], outputs=[], stderr=parsl.AUTO_LOGNAME, stdout=parsl.AUTO_LOGNAME +): return f"""ExtractBoundary -i {inputs[0].filepath} \ -o square_1x1_{elem_type}_boundary.vtu""" # compares the files in inputs[0] and inputs[1] @bash_app -def vtk_diff(fields, inputs=[], outputs=[], - stderr=parsl.AUTO_LOGNAME, stdout=parsl.AUTO_LOGNAME): +def vtk_diff( + fields, inputs=[], outputs=[], stderr=parsl.AUTO_LOGNAME, stdout=parsl.AUTO_LOGNAME +): import os + script = "" if os.path.exists(outputs[0]): os.remove(outputs[0]) @@ -64,17 +70,22 @@ def vtk_diff(fields, inputs=[], outputs=[], # Workflow for elem_type in elem_types: gm = generate_meshes(elem_type, outputs=[File(f"input_square_1x1_{elem_type}.vtu")]) - eb = extract_boundary(elem_type, inputs=[gm.outputs[0]], outputs=[File(f"square_1x1_{elem_type}_boundary.vtu")]) + eb = extract_boundary( + elem_type, + inputs=[gm.outputs[0]], + outputs=[File(f"square_1x1_{elem_type}_boundary.vtu")], + ) diff = vtk_diff( fields=[ # second field name can be omitted if identical ["bulk_node_ids", 0, 0], ["bulk_element_ids", 0, 0], - ["bulk_face_ids", 0, 0] + ["bulk_face_ids", 0, 0], ], inputs=[ eb.outputs[0], - f"{config['Data_SOURCE_DIR']}/{output_path}/{eb.outputs[0].filename}" + f"{config['Data_SOURCE_DIR']}/{output_path}/{eb.outputs[0].filename}", ], - outputs=[File(f"square_1x1_{elem_type}_boundary_diff.out")]) + outputs=[File(f"square_1x1_{elem_type}_boundary_diff.out")], + ) print(diff.result()) diff --git a/Applications/Utils/ExtractBoundary.smk b/Applications/Utils/ExtractBoundary.smk index 32cf1733990a21e8dea06b6bb25f850495254cc4..3809ec7a22442a450c649bb23e80b6c8142bd146 100644 --- a/Applications/Utils/ExtractBoundary.smk +++ b/Applications/Utils/ExtractBoundary.smk @@ -1,5 +1,8 @@ # Usage, e.g.: -# snakemake -s ExtractBoundary.smk -j 1 --configfile $HOME/code/ogs6/build/Tests/snakemake.yaml +# snakemake -s ExtractBoundary.smk -j 1 --configfile $HOME/code/ogs6/build/buildinfo.yaml +# +# buildinfo.yaml contains variables such as Data_BINARY_DIR + output_path = "FileIO" import os diff --git a/Applications/Utils/Tests.cmake b/Applications/Utils/Tests.cmake index a92b1df6edeebb7ffdee1756ba221bb8d0d6ce79..7ae12f78e11ea7d0206cf5f402eb8bda858dcae3 100644 --- a/Applications/Utils/Tests.cmake +++ b/Applications/Utils/Tests.cmake @@ -310,7 +310,7 @@ if(SNAKEMAKE AND NOT OGS_USE_MPI) add_test(NAME snakemake_ExtractBoundary COMMAND ${SNAKEMAKE} -j 1 - --configfile ${PROJECT_BINARY_DIR}/snakemake.yaml + --configfile ${PROJECT_BINARY_DIR}/buildinfo.yaml -s ${CMAKE_CURRENT_SOURCE_DIR}/ExtractBoundary.smk ) endif() @@ -318,7 +318,7 @@ if(PARSL AND NOT OGS_USE_MPI) add_test(NAME parsl_ExtractBoundary COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/ExtractBoundary.py - ${PROJECT_BINARY_DIR}/snakemake.yaml + ${PROJECT_BINARY_DIR}/buildinfo.yaml ) endif() diff --git a/scripts/cmake/test/Test.cmake b/scripts/cmake/test/Test.cmake index e19a6e6774f2132bc9ab5c57a2d50f0d6ca53a6e..caba1e810e5c400399eb942f05c6da4283454563 100644 --- a/scripts/cmake/test/Test.cmake +++ b/scripts/cmake/test/Test.cmake @@ -95,4 +95,4 @@ set_target_properties(ctest ctest-large ctest-cleanup ctest-large-cleanup add_dependencies(ctest ogs) add_dependencies(ctest-large ogs) -configure_file(${PROJECT_SOURCE_DIR}/scripts/test/snakemake.in.yaml ${PROJECT_BINARY_DIR}/snakemake.yaml) +configure_file(${PROJECT_SOURCE_DIR}/scripts/test/buildinfo.in.yaml ${PROJECT_BINARY_DIR}/buildinfo.yaml) diff --git a/scripts/test/snakemake.in.yaml b/scripts/test/buildinfo.in.yaml similarity index 100% rename from scripts/test/snakemake.in.yaml rename to scripts/test/buildinfo.in.yaml