Skip to content
Snippets Groups Projects
Verified Commit 3290b9bc authored by Lars Bilke's avatar Lars Bilke
Browse files

[workflow] Renamed snakemake.yaml to buildinfo.yaml.

parent 76ef7fcd
No related branches found
No related tags found
No related merge requests found
# 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())
# 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
......
......@@ -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()
......
......@@ -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)
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment