diff --git a/aiida_nfdi.ipynb b/aiida_nfdi.ipynb index 2929589..8579f72 100644 --- a/aiida_nfdi.ipynb +++ b/aiida_nfdi.ipynb @@ -1 +1 @@ -{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"106ded66-d202-46ac-82b0-2755ca309bdd","cell_type":"markdown","source":"# Aiida\n\nhttps://github.com/BAMresearch/NFDI4IngScientificWorkflowRequirements","metadata":{}},{"id":"11e09b78-cb72-465f-9c8b-5b77f0aa729c","cell_type":"markdown","source":"## Define workflow with aiida","metadata":{}},{"id":"89c02460-b543-442c-a27e-f1757dc2262e","cell_type":"code","source":"from python_workflow_definition.aiida import write_workflow_json\n\nfrom aiida_workgraph import WorkGraph, task\nfrom aiida import orm, load_profile\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":1,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":1},{"id":"a76e6c0a-98f2-4436-af10-8097da183341","cell_type":"code","source":"from nfdi_ing_workflow import (\n generate_mesh,\n convert_to_xdmf as _convert_to_xdmf,\n poisson as _poisson,\n plot_over_line,\n substitute_macros,\n compile_paper,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"549ecf27-88ef-4e77-8bd4-b616cfdda2e4","cell_type":"code","source":"convert_to_xdmf = task(outputs=[\"xdmf_file\", \"h5_file\"])(_convert_to_xdmf)\npoisson = task(outputs=[\"numdofs\", \"pvd_file\", \"vtu_file\"])(_poisson)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"8d911f98-3b80-457f-a0f4-3cb37ebf1691","cell_type":"code","source":"domain_size = orm.Float(2.0)","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"1e7e14ba-c4a7-485f-9bd8-44625830cca0","cell_type":"code","source":"wg = WorkGraph(\"wg-nfdi\")","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"71d411b6-cbec-489e-99e3-ba71680bcb5b","cell_type":"code","source":"gmsh_output_file = wg.add_task(\n generate_mesh,\n name=\"generate_mesh\",\n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":6},{"id":"1d0d9804-f250-48b3-a5d0-a546d520f79b","cell_type":"code","source":"meshio_output_dict = wg.add_task(\n convert_to_xdmf,\n name=\"convert_to_xdmf\",\n gmsh_output_file=gmsh_output_file.outputs.result,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":7},{"id":"7b69bcff-e2b1-4d4a-b62c-6a1c86eeb590","cell_type":"code","source":"poisson_dict = wg.add_task(\n poisson,\n name=\"poisson\",\n meshio_output_xdmf=meshio_output_dict.outputs.xdmf_file, \n meshio_output_h5=meshio_output_dict.outputs.h5_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":8},{"id":"3c4a29b0-eb1e-490a-8be0-e03cfff15e0a","cell_type":"code","source":"pvbatch_output_file = wg.add_task(\n plot_over_line,\n name=\"plot_over_line\",\n poisson_output_pvd_file=poisson_dict.outputs.pvd_file, \n poisson_output_vtu_file=poisson_dict.outputs.vtu_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":9},{"id":"a0a4c233-322d-4723-9627-62ca2487bfa9","cell_type":"code","source":"macros_tex_file = wg.add_task(\n substitute_macros,\n name=\"substitute_macros\",\n pvbatch_output_file=pvbatch_output_file.outputs.result, \n ndofs=poisson_dict.outputs.numdofs, \n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":10},{"id":"c281408f-e63d-4380-a7e6-c595d49fbb8f","cell_type":"code","source":"paper_output = wg.add_task(\n compile_paper,\n name=\"compile_paper\",\n macros_tex=macros_tex_file.outputs.result, \n plot_file=pvbatch_output_file.outputs.result,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"a384d70a-8ef5-4fdd-880c-56ac7eaf87b9","cell_type":"code","source":"wg","metadata":{"trusted":true},"outputs":[{"execution_count":12,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'wg-nfdi…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"8b6fceeb0d674532b2a181e2ed0503e8"}},"metadata":{}}],"execution_count":12},{"id":"fb23ad9c-76fd-4c0b-b546-e305d6c49796","cell_type":"code","source":"workflow_json_filename = \"aiida_nfdi.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"4139547a-9717-4708-b1a5-8202a0382d77","cell_type":"code","source":"write_workflow_json(wg=wg, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"{'nodes': {'0': 'nfdi_ing_workflow.generate_mesh',\n '1': 'nfdi_ing_workflow.convert_to_xdmf',\n '2': 'nfdi_ing_workflow.poisson',\n '3': 'nfdi_ing_workflow.plot_over_line',\n '4': 'nfdi_ing_workflow.substitute_macros',\n '5': 'nfdi_ing_workflow.compile_paper',\n '6': 2.0},\n 'edges': [{'tn': 1, 'th': 'gmsh_output_file', 'sn': 0, 'sh': None},\n {'tn': 2, 'th': 'meshio_output_xdmf', 'sn': 1, 'sh': 'xdmf_file'},\n {'tn': 2, 'th': 'meshio_output_h5', 'sn': 1, 'sh': 'h5_file'},\n {'tn': 3, 'th': 'poisson_output_pvd_file', 'sn': 2, 'sh': 'pvd_file'},\n {'tn': 3, 'th': 'poisson_output_vtu_file', 'sn': 2, 'sh': 'vtu_file'},\n {'tn': 4, 'th': 'pvbatch_output_file', 'sn': 3, 'sh': None},\n {'tn': 4, 'th': 'ndofs', 'sn': 2, 'sh': 'numdofs'},\n {'tn': 5, 'th': 'macros_tex', 'sn': 4, 'sh': None},\n {'tn': 5, 'th': 'plot_file', 'sn': 3, 'sh': None},\n {'tn': 0, 'th': 'domain_size', 'sn': 6, 'sh': None},\n {'tn': 4, 'th': 'domain_size', 'sn': 6, 'sh': None}]}"},"metadata":{}}],"execution_count":14},{"id":"490df6a3-e402-4620-acf2-dbcfa0c5d537","cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\n \"nodes\": {\n \"0\": \"nfdi_ing_workflow.generate_mesh\",\n \"1\": \"nfdi_ing_workflow.convert_to_xdmf\",\n \"2\": \"nfdi_ing_workflow.poisson\",\n \"3\": \"nfdi_ing_workflow.plot_over_line\",\n \"4\": \"nfdi_ing_workflow.substitute_macros\",\n \"5\": \"nfdi_ing_workflow.compile_paper\",\n \"6\": 2.0\n },\n \"edges\": [\n {\n \"tn\": 1,\n \"th\": \"gmsh_output_file\",\n \"sn\": 0,\n \"sh\": null\n },\n {\n \"tn\": 2,\n \"th\": \"meshio_output_xdmf\",\n \"sn\": 1,\n \"sh\": \"xdmf_file\"\n },\n {\n \"tn\": 2,\n \"th\": \"meshio_output_h5\",\n \"sn\": 1,\n \"sh\": \"h5_file\"\n },\n {\n \"tn\": 3,\n \"th\": \"poisson_output_pvd_file\",\n \"sn\": 2,\n \"sh\": \"pvd_file\"\n },\n {\n \"tn\": 3,\n \"th\": \"poisson_output_vtu_file\",\n \"sn\": 2,\n \"sh\": \"vtu_file\"\n },\n {\n \"tn\": 4,\n \"th\": \"pvbatch_output_file\",\n \"sn\": 3,\n \"sh\": null\n },\n {\n \"tn\": 4,\n \"th\": \"ndofs\",\n \"sn\": 2,\n \"sh\": \"numdofs\"\n },\n {\n \"tn\": 5,\n \"th\": \"macros_tex\",\n \"sn\": 4,\n \"sh\": null\n },\n {\n \"tn\": 5,\n \"th\": \"plot_file\",\n \"sn\": 3,\n \"sh\": null\n },\n {\n \"tn\": 0,\n \"th\": \"domain_size\",\n \"sn\": 6,\n \"sh\": null\n },\n {\n \"tn\": 4,\n \"th\": \"domain_size\",\n \"sn\": 6,\n \"sh\": null\n }\n ]\n}"}],"execution_count":15},{"id":"11a829e2-face-469f-b343-2c95763b1f13","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"4f3acabe-55df-479a-af4d-a23a80c4660d","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":16},{"id":"b6ba9444-a2c8-451b-b74c-19b0f69ba369","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":17},{"id":"c3528d55-6bf7-47ed-a110-65c47446ba92","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"id":"5ef48778-4209-425f-8c6b-85a4cd2f92ec","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-04 14:43:43,907 INFO Started executing jobs locally\n2025-04-04 14:43:44,345 INFO Starting job - generate_mesh (d2959a22-7c6f-491e-8fa3-5e0b7bf851dd)\n2025-04-04 14:43:46,611 INFO Finished job - generate_mesh (d2959a22-7c6f-491e-8fa3-5e0b7bf851dd)\n2025-04-04 14:43:46,612 INFO Starting job - convert_to_xdmf (b6098203-f960-4c0f-a5f9-71fbbbfe226f)\n2025-04-04 14:43:48,420 INFO Finished job - convert_to_xdmf (b6098203-f960-4c0f-a5f9-71fbbbfe226f)\n2025-04-04 14:43:48,421 INFO Starting job - poisson (2daa1735-a65c-4b5b-aaf9-1141887b6fd6)\n2025-04-04 14:44:00,271 INFO Finished job - poisson (2daa1735-a65c-4b5b-aaf9-1141887b6fd6)\n2025-04-04 14:44:00,272 INFO Starting job - plot_over_line (b2126306-07e8-4f14-93ce-f7be95ee8f55)\n2025-04-04 14:44:02,997 INFO Finished job - plot_over_line (b2126306-07e8-4f14-93ce-f7be95ee8f55)\n2025-04-04 14:44:02,998 INFO Starting job - substitute_macros (09633e03-dcc8-4274-aa83-8151cd35878c)\n2025-04-04 14:44:04,212 INFO Finished job - substitute_macros (09633e03-dcc8-4274-aa83-8151cd35878c)\n2025-04-04 14:44:04,213 INFO Starting job - compile_paper (485212e5-2539-4c3e-a2e4-edab7ed585e2)\n2025-04-04 14:45:03,591 INFO Finished job - compile_paper (485212e5-2539-4c3e-a2e4-edab7ed585e2)\n2025-04-04 14:45:03,592 INFO Finished executing jobs locally\n"},{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"{'d2959a22-7c6f-491e-8fa3-5e0b7bf851dd': {1: Response(output='/home/jovyan/preprocessing/square.msh', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b6098203-f960-4c0f-a5f9-71fbbbfe226f': {1: Response(output={'xdmf_file': '/home/jovyan/preprocessing/square.xdmf', 'h5_file': '/home/jovyan/preprocessing/square.h5'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '2daa1735-a65c-4b5b-aaf9-1141887b6fd6': {1: Response(output={'numdofs': 357, 'pvd_file': '/home/jovyan/processing/poisson.pvd', 'vtu_file': '/home/jovyan/processing/poisson000000.vtu'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b2126306-07e8-4f14-93ce-f7be95ee8f55': {1: Response(output='/home/jovyan/postprocessing/plotoverline.csv', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '09633e03-dcc8-4274-aa83-8151cd35878c': {1: Response(output='/home/jovyan/postprocessing/macros.tex', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '485212e5-2539-4c3e-a2e4-edab7ed585e2': {1: Response(output='/home/jovyan/postprocessing/paper.pdf', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":19},{"id":"397b16a2-e1ec-4eec-8562-1c84f585c347","cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"id":"fdde6b82-b51d-434a-a9a8-5a8c31bbb429","cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":20},{"id":"be4d5d93-e9f6-4072-a6be-0ee5dc93590f","cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"id":"4db75587-5f4c-416d-a1f6-c949077fa2ca","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"6ffdbe942015451b8082ff068711ba20"}},"metadata":{}}],"execution_count":22},{"id":"4452a648-d4c3-4f5f-8678-ffb54bef17dc","cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_ad78d751885eaefc2605f3dceb2cb1aa\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7a27935de600>\n\n\n\nmacros_tex_76816516c28d282cb376f4d1af23a98d\n\nmacros_tex=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d3866f0>\n\n\n\nmacros_tex_76816516c28d282cb376f4d1af23a98d->create_function_job_ad78d751885eaefc2605f3dceb2cb1aa\n\n\n\n\n\npvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\npvbatch_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d3863c0>\n\n\n\npvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644->macros_tex_76816516c28d282cb376f4d1af23a98d\n\n\n\n\n\npoisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2\n\npoisson_output_pvd_file=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d386060>\n\n\n\npoisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2->pvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\nplot_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\nplot_file=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d3863c0>\n\n\n\npoisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2->plot_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\nplot_file_0a1a8a5db5a6aedba38e6ab3d334b644->create_function_job_ad78d751885eaefc2605f3dceb2cb1aa\n\n\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a\n\nmeshio_output_xdmf=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d361e20>\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a->poisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2\n\n\n\n\n\npoisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93\n\npoisson_output_vtu_file=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d386030>\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a->poisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93\n\n\n\n\n\nndofs_c8554a1b671d87672c81c508324bd11c\n\nndofs=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d386450>\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a->ndofs_c8554a1b671d87672c81c508324bd11c\n\n\n\n\n\npoisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93->pvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\npoisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93->plot_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\nndofs_c8554a1b671d87672c81c508324bd11c->macros_tex_76816516c28d282cb376f4d1af23a98d\n\n\n\n\n\ngmsh_output_file_78213b177bb355e1585daee03d735c19\n\ngmsh_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d385a60>\n\n\n\ngmsh_output_file_78213b177bb355e1585daee03d735c19->meshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281\n\nmeshio_output_h5=<pyiron_base.project.delayed.DelayedObject object at 0x7a291d385c40>\n\n\n\ngmsh_output_file_78213b177bb355e1585daee03d735c19->meshio_output_h5_efac48e79bcba581ea1c6da5811cd281\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281->poisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281->poisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281->ndofs_c8554a1b671d87672c81c508324bd11c\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20\n\ndomain_size=2.0\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->macros_tex_76816516c28d282cb376f4d1af23a98d\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->gmsh_output_file_78213b177bb355e1585daee03d735c19\n\n\n\n\n"},"metadata":{}}],"execution_count":23},{"id":"1c2760b6-96b4-4f44-ac49-a229d4a0cf67","cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job generate_mesh_0b48cf5155cd6802c17d20bb58104132 was saved and received the ID: 1\nThe job convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 was saved and received the ID: 2\nThe job poisson_a0224b23ceb2119d105a5d98ef37f93e was saved and received the ID: 3\nThe job plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b was saved and received the ID: 4\nThe job substitute_macros_874fc185ecec04b4cb9537c58b7efb7b was saved and received the ID: 5\nThe job compile_paper_3cee534ffe692833d37faf1fd2170cb6 was saved and received the ID: 6\n"},{"execution_count":24,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":24},{"id":"b3bba27e-ece9-4c02-834c-53e69844b140","cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":25,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n2 3 finished None \n3 4 finished None \n4 5 finished None \n5 6 finished None \n\n job \\\n0 generate_mesh_0b48cf5155cd6802c17d20bb58104132 \n1 convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 \n2 poisson_a0224b23ceb2119d105a5d98ef37f93e \n3 plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b \n4 substitute_macros_874fc185ecec04b4cb9537c58b7efb7b \n5 compile_paper_3cee534ffe692833d37faf1fd2170cb6 \n\n subjob projectpath \\\n0 /generate_mesh_0b48cf5155cd6802c17d20bb58104132 None \n1 /convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 None \n2 /poisson_a0224b23ceb2119d105a5d98ef37f93e None \n3 /plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b None \n4 /substitute_macros_874fc185ecec04b4cb9537c58b7efb7b None \n5 /compile_paper_3cee534ffe692833d37faf1fd2170cb6 None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-04 14:45:04.379468 None None \n1 /home/jovyan/test/ 2025-04-04 14:45:06.117232 None None \n2 /home/jovyan/test/ 2025-04-04 14:45:08.009236 None None \n3 /home/jovyan/test/ 2025-04-04 14:45:11.395481 None None \n4 /home/jovyan/test/ 2025-04-04 14:45:13.545508 None None \n5 /home/jovyan/test/ 2025-04-04 14:45:14.745805 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n2 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n3 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n4 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n5 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None \n2 PythonFunctionContainerJob 0.4 None None \n3 PythonFunctionContainerJob 0.4 None None \n4 PythonFunctionContainerJob 0.4 None None \n5 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNonegenerate_mesh_0b48cf5155cd6802c17d20bb58104132/generate_mesh_0b48cf5155cd6802c17d20bb58104132None/home/jovyan/test/2025-04-04 14:45:04.379468NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneconvert_to_xdmf_29ad6ec6927268429dc9aef8166fde43/convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43None/home/jovyan/test/2025-04-04 14:45:06.117232NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
23finishedNonepoisson_a0224b23ceb2119d105a5d98ef37f93e/poisson_a0224b23ceb2119d105a5d98ef37f93eNone/home/jovyan/test/2025-04-04 14:45:08.009236NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
34finishedNoneplot_over_line_82b37a42e0747f11d9a7f6318f63ac6b/plot_over_line_82b37a42e0747f11d9a7f6318f63ac6bNone/home/jovyan/test/2025-04-04 14:45:11.395481NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
45finishedNonesubstitute_macros_874fc185ecec04b4cb9537c58b7efb7b/substitute_macros_874fc185ecec04b4cb9537c58b7efb7bNone/home/jovyan/test/2025-04-04 14:45:13.545508NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
56finishedNonecompile_paper_3cee534ffe692833d37faf1fd2170cb6/compile_paper_3cee534ffe692833d37faf1fd2170cb6None/home/jovyan/test/2025-04-04 14:45:14.745805NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":25}]} \ No newline at end of file +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"106ded66-d202-46ac-82b0-2755ca309bdd","cell_type":"markdown","source":"# Aiida\n\nhttps://github.com/BAMresearch/NFDI4IngScientificWorkflowRequirements","metadata":{}},{"id":"11e09b78-cb72-465f-9c8b-5b77f0aa729c","cell_type":"markdown","source":"## Define workflow with aiida","metadata":{}},{"id":"89c02460-b543-442c-a27e-f1757dc2262e","cell_type":"code","source":"from python_workflow_definition.aiida import write_workflow_json\n\nfrom aiida_workgraph import WorkGraph, task\nfrom aiida import orm, load_profile\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":1,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":1},{"id":"a76e6c0a-98f2-4436-af10-8097da183341","cell_type":"code","source":"from nfdi_ing_workflow import (\n generate_mesh,\n convert_to_xdmf as _convert_to_xdmf,\n poisson as _poisson,\n plot_over_line,\n substitute_macros,\n compile_paper,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"549ecf27-88ef-4e77-8bd4-b616cfdda2e4","cell_type":"code","source":"convert_to_xdmf = task(outputs=[\"xdmf_file\", \"h5_file\"])(_convert_to_xdmf)\npoisson = task(outputs=[\"numdofs\", \"pvd_file\", \"vtu_file\"])(_poisson)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"8d911f98-3b80-457f-a0f4-3cb37ebf1691","cell_type":"code","source":"domain_size = orm.Float(2.0)","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"1e7e14ba-c4a7-485f-9bd8-44625830cca0","cell_type":"code","source":"wg = WorkGraph(\"wg-nfdi\")","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"71d411b6-cbec-489e-99e3-ba71680bcb5b","cell_type":"code","source":"gmsh_output_file = wg.add_task(\n generate_mesh,\n name=\"generate_mesh\",\n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":6},{"id":"1d0d9804-f250-48b3-a5d0-a546d520f79b","cell_type":"code","source":"meshio_output_dict = wg.add_task(\n convert_to_xdmf,\n name=\"convert_to_xdmf\",\n gmsh_output_file=gmsh_output_file.outputs.result,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":7},{"id":"7b69bcff-e2b1-4d4a-b62c-6a1c86eeb590","cell_type":"code","source":"poisson_dict = wg.add_task(\n poisson,\n name=\"poisson\",\n meshio_output_xdmf=meshio_output_dict.outputs.xdmf_file, \n meshio_output_h5=meshio_output_dict.outputs.h5_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":8},{"id":"3c4a29b0-eb1e-490a-8be0-e03cfff15e0a","cell_type":"code","source":"pvbatch_output_file = wg.add_task(\n plot_over_line,\n name=\"plot_over_line\",\n poisson_output_pvd_file=poisson_dict.outputs.pvd_file, \n poisson_output_vtu_file=poisson_dict.outputs.vtu_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":9},{"id":"a0a4c233-322d-4723-9627-62ca2487bfa9","cell_type":"code","source":"macros_tex_file = wg.add_task(\n substitute_macros,\n name=\"substitute_macros\",\n pvbatch_output_file=pvbatch_output_file.outputs.result, \n ndofs=poisson_dict.outputs.numdofs, \n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":10},{"id":"c281408f-e63d-4380-a7e6-c595d49fbb8f","cell_type":"code","source":"paper_output = wg.add_task(\n compile_paper,\n name=\"compile_paper\",\n macros_tex=macros_tex_file.outputs.result, \n plot_file=pvbatch_output_file.outputs.result,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"a384d70a-8ef5-4fdd-880c-56ac7eaf87b9","cell_type":"code","source":"wg","metadata":{"trusted":true},"outputs":[{"execution_count":12,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'wg-nfdi…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"cd788d15752445cea12b48f05d6f7ed9"}},"metadata":{}}],"execution_count":12},{"id":"fb23ad9c-76fd-4c0b-b546-e305d6c49796","cell_type":"code","source":"workflow_json_filename = \"aiida_nfdi.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"4139547a-9717-4708-b1a5-8202a0382d77","cell_type":"code","source":"write_workflow_json(wg=wg, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"{'nodes': [{'id': 0, 'function': 'nfdi_ing_workflow.generate_mesh'},\n {'id': 1, 'function': 'nfdi_ing_workflow.convert_to_xdmf'},\n {'id': 2, 'function': 'nfdi_ing_workflow.poisson'},\n {'id': 3, 'function': 'nfdi_ing_workflow.plot_over_line'},\n {'id': 4, 'function': 'nfdi_ing_workflow.substitute_macros'},\n {'id': 5, 'function': 'nfdi_ing_workflow.compile_paper'},\n {'id': 6, 'value': 2.0}],\n 'edges': [{'target': 1,\n 'targetPort': 'gmsh_output_file',\n 'source': 0,\n 'sourcePort': None},\n {'target': 2,\n 'targetPort': 'meshio_output_xdmf',\n 'source': 1,\n 'sourcePort': 'xdmf_file'},\n {'target': 2,\n 'targetPort': 'meshio_output_h5',\n 'source': 1,\n 'sourcePort': 'h5_file'},\n {'target': 3,\n 'targetPort': 'poisson_output_pvd_file',\n 'source': 2,\n 'sourcePort': 'pvd_file'},\n {'target': 3,\n 'targetPort': 'poisson_output_vtu_file',\n 'source': 2,\n 'sourcePort': 'vtu_file'},\n {'target': 4,\n 'targetPort': 'pvbatch_output_file',\n 'source': 3,\n 'sourcePort': None},\n {'target': 4, 'targetPort': 'ndofs', 'source': 2, 'sourcePort': 'numdofs'},\n {'target': 5, 'targetPort': 'macros_tex', 'source': 4, 'sourcePort': None},\n {'target': 5, 'targetPort': 'plot_file', 'source': 3, 'sourcePort': None},\n {'target': 0, 'targetPort': 'domain_size', 'source': 6, 'sourcePort': None},\n {'target': 4, 'targetPort': 'domain_size', 'source': 6, 'sourcePort': None}]}"},"metadata":{}}],"execution_count":14},{"id":"490df6a3-e402-4620-acf2-dbcfa0c5d537","cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\n \"nodes\": [\n {\n \"id\": 0,\n \"function\": \"nfdi_ing_workflow.generate_mesh\"\n },\n {\n \"id\": 1,\n \"function\": \"nfdi_ing_workflow.convert_to_xdmf\"\n },\n {\n \"id\": 2,\n \"function\": \"nfdi_ing_workflow.poisson\"\n },\n {\n \"id\": 3,\n \"function\": \"nfdi_ing_workflow.plot_over_line\"\n },\n {\n \"id\": 4,\n \"function\": \"nfdi_ing_workflow.substitute_macros\"\n },\n {\n \"id\": 5,\n \"function\": \"nfdi_ing_workflow.compile_paper\"\n },\n {\n \"id\": 6,\n \"value\": 2.0\n }\n ],\n \"edges\": [\n {\n \"target\": 1,\n \"targetPort\": \"gmsh_output_file\",\n \"source\": 0,\n \"sourcePort\": null\n },\n {\n \"target\": 2,\n \"targetPort\": \"meshio_output_xdmf\",\n \"source\": 1,\n \"sourcePort\": \"xdmf_file\"\n },\n {\n \"target\": 2,\n \"targetPort\": \"meshio_output_h5\",\n \"source\": 1,\n \"sourcePort\": \"h5_file\"\n },\n {\n \"target\": 3,\n \"targetPort\": \"poisson_output_pvd_file\",\n \"source\": 2,\n \"sourcePort\": \"pvd_file\"\n },\n {\n \"target\": 3,\n \"targetPort\": \"poisson_output_vtu_file\",\n \"source\": 2,\n \"sourcePort\": \"vtu_file\"\n },\n {\n \"target\": 4,\n \"targetPort\": \"pvbatch_output_file\",\n \"source\": 3,\n \"sourcePort\": null\n },\n {\n \"target\": 4,\n \"targetPort\": \"ndofs\",\n \"source\": 2,\n \"sourcePort\": \"numdofs\"\n },\n {\n \"target\": 5,\n \"targetPort\": \"macros_tex\",\n \"source\": 4,\n \"sourcePort\": null\n },\n {\n \"target\": 5,\n \"targetPort\": \"plot_file\",\n \"source\": 3,\n \"sourcePort\": null\n },\n {\n \"target\": 0,\n \"targetPort\": \"domain_size\",\n \"source\": 6,\n \"sourcePort\": null\n },\n {\n \"target\": 4,\n \"targetPort\": \"domain_size\",\n \"source\": 6,\n \"sourcePort\": null\n }\n ]\n}"}],"execution_count":15},{"id":"11a829e2-face-469f-b343-2c95763b1f13","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"4f3acabe-55df-479a-af4d-a23a80c4660d","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":16},{"id":"b6ba9444-a2c8-451b-b74c-19b0f69ba369","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":17},{"id":"c3528d55-6bf7-47ed-a110-65c47446ba92","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"id":"5ef48778-4209-425f-8c6b-85a4cd2f92ec","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 11:30:36,604 INFO Started executing jobs locally\n2025-04-12 11:30:37,162 INFO Starting job - generate_mesh (5709b90c-3e6a-43bb-9deb-b11fc240bfe0)\n2025-04-12 11:30:42,424 INFO Finished job - generate_mesh (5709b90c-3e6a-43bb-9deb-b11fc240bfe0)\n2025-04-12 11:30:42,428 INFO Starting job - convert_to_xdmf (b7865f27-520b-4a07-9d84-4e7973137eaa)\n2025-04-12 11:30:45,227 INFO Finished job - convert_to_xdmf (b7865f27-520b-4a07-9d84-4e7973137eaa)\n2025-04-12 11:30:45,228 INFO Starting job - poisson (01ddf0e3-cba6-4781-bc8c-ea7223612cc2)\n2025-04-12 11:31:04,150 INFO Finished job - poisson (01ddf0e3-cba6-4781-bc8c-ea7223612cc2)\n2025-04-12 11:31:04,152 INFO Starting job - plot_over_line (47a7c359-2e25-4321-8f28-63cd70cd0e77)\n2025-04-12 11:31:08,074 INFO Finished job - plot_over_line (47a7c359-2e25-4321-8f28-63cd70cd0e77)\n2025-04-12 11:31:08,076 INFO Starting job - substitute_macros (6c382cd4-9bea-493a-91e1-6bc556e6e91e)\n2025-04-12 11:31:09,846 INFO Finished job - substitute_macros (6c382cd4-9bea-493a-91e1-6bc556e6e91e)\n2025-04-12 11:31:09,848 INFO Starting job - compile_paper (1dfee41f-501c-42f5-b905-ef9557078623)\n2025-04-12 11:32:17,825 INFO Finished job - compile_paper (1dfee41f-501c-42f5-b905-ef9557078623)\n2025-04-12 11:32:17,827 INFO Finished executing jobs locally\n"},{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"{'5709b90c-3e6a-43bb-9deb-b11fc240bfe0': {1: Response(output='/home/jovyan/preprocessing/square.msh', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b7865f27-520b-4a07-9d84-4e7973137eaa': {1: Response(output={'xdmf_file': '/home/jovyan/preprocessing/square.xdmf', 'h5_file': '/home/jovyan/preprocessing/square.h5'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '01ddf0e3-cba6-4781-bc8c-ea7223612cc2': {1: Response(output={'numdofs': 357, 'pvd_file': '/home/jovyan/processing/poisson.pvd', 'vtu_file': '/home/jovyan/processing/poisson000000.vtu'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '47a7c359-2e25-4321-8f28-63cd70cd0e77': {1: Response(output='/home/jovyan/postprocessing/plotoverline.csv', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '6c382cd4-9bea-493a-91e1-6bc556e6e91e': {1: Response(output='/home/jovyan/postprocessing/macros.tex', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '1dfee41f-501c-42f5-b905-ef9557078623': {1: Response(output='/home/jovyan/postprocessing/paper.pdf', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":19},{"id":"397b16a2-e1ec-4eec-8562-1c84f585c347","cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"id":"fdde6b82-b51d-434a-a9a8-5a8c31bbb429","cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":20},{"id":"be4d5d93-e9f6-4072-a6be-0ee5dc93590f","cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"id":"4db75587-5f4c-416d-a1f6-c949077fa2ca","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"744782e84c574359874689c2242fb2d8"}},"metadata":{}}],"execution_count":22},{"id":"4452a648-d4c3-4f5f-8678-ffb54bef17dc","cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c6220d10>\n\n\n\nmacros_tex_d7e91609122a5793f44a95d7162f82c5\n\nmacros_tex=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c6220920>\n\n\n\nmacros_tex_d7e91609122a5793f44a95d7162f82c5->create_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\n\n\n\n\npvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\npvbatch_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c61df260>\n\n\n\npvbatch_output_file_f6679ca13153e695cd36070d492d8182->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\npoisson_output_pvd_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c62208f0>\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006->pvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nplot_file_f6679ca13153e695cd36070d492d8182\n\nplot_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c61df260>\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006->plot_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nplot_file_f6679ca13153e695cd36070d492d8182->create_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\n\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c\n\nmeshio_output_xdmf=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c6220500>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->poisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\npoisson_output_vtu_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c62208c0>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->poisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\n\n\n\n\nndofs_c902b1da86c67e7079cdd6e960396773\n\nndofs=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c61df2f0>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->ndofs_c902b1da86c67e7079cdd6e960396773\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512->pvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512->plot_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nndofs_c902b1da86c67e7079cdd6e960396773->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3\n\ngmsh_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c62202f0>\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3->meshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe\n\nmeshio_output_h5=<pyiron_base.project.delayed.DelayedObject object at 0x7f81c62204d0>\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3->meshio_output_h5_70513360c325554f1fb9101a93e5febe\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->poisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->poisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->ndofs_c902b1da86c67e7079cdd6e960396773\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20\n\ndomain_size=2.0\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->gmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3\n\n\n\n\n"},"metadata":{}}],"execution_count":23},{"id":"1c2760b6-96b4-4f44-ac49-a229d4a0cf67","cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job generate_mesh_0b48cf5155cd6802c17d20bb58104132 was saved and received the ID: 1\nThe job convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 was saved and received the ID: 2\nThe job poisson_a0224b23ceb2119d105a5d98ef37f93e was saved and received the ID: 3\nThe job plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b was saved and received the ID: 4\nThe job substitute_macros_874fc185ecec04b4cb9537c58b7efb7b was saved and received the ID: 5\nThe job compile_paper_3cee534ffe692833d37faf1fd2170cb6 was saved and received the ID: 6\n"},{"execution_count":24,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":24},{"id":"b3bba27e-ece9-4c02-834c-53e69844b140","cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":25,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n2 3 finished None \n3 4 finished None \n4 5 finished None \n5 6 finished None \n\n job \\\n0 generate_mesh_0b48cf5155cd6802c17d20bb58104132 \n1 convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 \n2 poisson_a0224b23ceb2119d105a5d98ef37f93e \n3 plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b \n4 substitute_macros_874fc185ecec04b4cb9537c58b7efb7b \n5 compile_paper_3cee534ffe692833d37faf1fd2170cb6 \n\n subjob projectpath \\\n0 /generate_mesh_0b48cf5155cd6802c17d20bb58104132 None \n1 /convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 None \n2 /poisson_a0224b23ceb2119d105a5d98ef37f93e None \n3 /plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b None \n4 /substitute_macros_874fc185ecec04b4cb9537c58b7efb7b None \n5 /compile_paper_3cee534ffe692833d37faf1fd2170cb6 None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-12 11:32:18.725836 None None \n1 /home/jovyan/test/ 2025-04-12 11:32:21.567671 None None \n2 /home/jovyan/test/ 2025-04-12 11:32:24.772144 None None \n3 /home/jovyan/test/ 2025-04-12 11:32:30.023925 None None \n4 /home/jovyan/test/ 2025-04-12 11:32:34.237777 None None \n5 /home/jovyan/test/ 2025-04-12 11:32:36.156992 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n2 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n3 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n4 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n5 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None \n2 PythonFunctionContainerJob 0.4 None None \n3 PythonFunctionContainerJob 0.4 None None \n4 PythonFunctionContainerJob 0.4 None None \n5 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNonegenerate_mesh_0b48cf5155cd6802c17d20bb58104132/generate_mesh_0b48cf5155cd6802c17d20bb58104132None/home/jovyan/test/2025-04-12 11:32:18.725836NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneconvert_to_xdmf_29ad6ec6927268429dc9aef8166fde43/convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43None/home/jovyan/test/2025-04-12 11:32:21.567671NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
23finishedNonepoisson_a0224b23ceb2119d105a5d98ef37f93e/poisson_a0224b23ceb2119d105a5d98ef37f93eNone/home/jovyan/test/2025-04-12 11:32:24.772144NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
34finishedNoneplot_over_line_82b37a42e0747f11d9a7f6318f63ac6b/plot_over_line_82b37a42e0747f11d9a7f6318f63ac6bNone/home/jovyan/test/2025-04-12 11:32:30.023925NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
45finishedNonesubstitute_macros_874fc185ecec04b4cb9537c58b7efb7b/substitute_macros_874fc185ecec04b4cb9537c58b7efb7bNone/home/jovyan/test/2025-04-12 11:32:34.237777NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
56finishedNonecompile_paper_3cee534ffe692833d37faf1fd2170cb6/compile_paper_3cee534ffe692833d37faf1fd2170cb6None/home/jovyan/test/2025-04-12 11:32:36.156992NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":25}]} \ No newline at end of file diff --git a/aiida_qe.ipynb b/aiida_qe.ipynb index 60658f9..77cdc5e 100644 --- a/aiida_qe.ipynb +++ b/aiida_qe.ipynb @@ -1 +1 @@ -{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Aiida","metadata":{}},{"cell_type":"markdown","source":"## Define workflow with aiida","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.aiida import write_workflow_json\nfrom python_workflow_definition.shared import get_dict, get_list\n\nfrom aiida import load_profile, orm\n\nload_profile()\n\nworkflow_json_filename = \"aiida_qe.json\"","metadata":{"trusted":false},"outputs":[],"execution_count":1},{"cell_type":"code","source":"from aiida_workgraph import task, WorkGraph","metadata":{"trusted":false},"outputs":[],"execution_count":2},{"cell_type":"code","source":"from quantum_espresso_workflow import generate_structures\nfrom quantum_espresso_workflow import get_bulk_structure\nfrom quantum_espresso_workflow import calculate_qe as _calculate_qe\nfrom quantum_espresso_workflow import plot_energy_volume_curve","metadata":{"trusted":false},"outputs":[],"execution_count":3},{"cell_type":"code","source":"calculate_qe = task(outputs=[\"energy\", \"volume\", \"structure\"])(_calculate_qe)","metadata":{"trusted":false},"outputs":[],"execution_count":4},{"cell_type":"code","source":"wg = WorkGraph(\"wg-qe\")","metadata":{"trusted":false},"outputs":[],"execution_count":5},{"cell_type":"markdown","source":"### Prepare the inputs","metadata":{}},{"cell_type":"code","source":"element = orm.Str(\"Al\")\na = orm.Float(4.05)\ncubic = orm.Bool(True)\nrelax_workdir = orm.Str(\"mini\")\npseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\nkpts = orm.List([3, 3, 3])\ncalc_type_relax = orm.Str(\"vc-relax\")\ncalc_type_scf = orm.Str(\"scf\")\nsmearing = orm.Float(0.02)\nstrain_lst = orm.List([0.9, 0.95, 1.0, 1.05, 1.1])","metadata":{"trusted":false},"outputs":[],"execution_count":6},{"cell_type":"markdown","source":"### Actual tasks to construct the EOS workflow","metadata":{}},{"cell_type":"code","source":"get_bulk_structure_task = wg.add_task(\n get_bulk_structure,\n name=\"get_bulk_structure\",\n element=element,\n a=a,\n cubic=cubic,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":7},{"cell_type":"code","source":"relax_prepare_input_dict_task = wg.add_task(\n get_dict,\n name=\"relax_get_dict\",\n structure=get_bulk_structure_task.outputs.result,\n calculation=calc_type_relax,\n kpts=kpts,\n pseudopotentials=pseudopotentials,\n smearing=smearing,\n)\n\nrelax_task = wg.add_task(\n calculate_qe,\n name=\"mini\",\n input_dict=relax_prepare_input_dict_task.outputs.result,\n working_directory=relax_workdir,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":8},{"cell_type":"code","source":"generate_structures_task = wg.add_task(\n generate_structures,\n name=\"generate_structures\",\n structure=relax_task.outputs.structure,\n strain_lst=strain_lst,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":9},{"cell_type":"code","source":"get_volumes_task = wg.add_task(get_list, name=\"get_volumes\")","metadata":{"trusted":false},"outputs":[],"execution_count":10},{"cell_type":"code","source":"get_energies_task = wg.add_task(get_list, name=\"get_energies\")","metadata":{"trusted":false},"outputs":[],"execution_count":11},{"cell_type":"code","source":"strain_dir_tasks, scf_qe_tasks, scf_get_dict_tasks = [], [], []\n\nfor i, strain in enumerate(strain_lst):\n\n structure_key = f\"s_{i}\"\n strain_dir = orm.Str(f\"strain_{i}\")\n generate_structures_task.add_output(\"workgraph.any\", structure_key)\n\n scf_prepare_input_dict_task = wg.add_task(\n get_dict,\n name=f\"get_dict_{i}\",\n structure=generate_structures_task.outputs[structure_key],\n calculation=calc_type_scf,\n kpts=kpts,\n pseudopotentials=pseudopotentials,\n smearing=smearing,\n )\n\n scf_qe_task = wg.add_task(\n calculate_qe,\n name=f\"qe_{i}\",\n input_dict=scf_prepare_input_dict_task.outputs.result,\n working_directory=strain_dir,\n )\n\n # collect energy and volume\n get_energies_task.set({f\"{i}\": scf_qe_task.outputs.energy})\n get_volumes_task.set({f\"{i}\": scf_qe_task.outputs.volume})","metadata":{"trusted":false},"outputs":[],"execution_count":12},{"cell_type":"code","source":"plot_energy_volume_curve_task = wg.add_task(\n plot_energy_volume_curve,\n name=\"plot_energy_volume_curve\",\n volume_lst=get_volumes_task.outputs.result,\n energy_lst=get_energies_task.outputs.result,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":13},{"cell_type":"code","source":"wg","metadata":{"trusted":false},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"dcec02cd916542798a729a20a32242dd","version_major":2,"version_minor":1},"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'wg-qe',…"},"execution_count":14,"metadata":{},"output_type":"execute_result"}],"execution_count":14},{"cell_type":"code","source":"_ = write_workflow_json(wg=wg, file_name=workflow_json_filename)\n","metadata":{"trusted":false},"outputs":[],"execution_count":15},{"cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"{\n \"nodes\": {\n \"0\": \"quantum_espresso_workflow.get_bulk_structure\",\n \"1\": \"python_workflow_definition.shared.get_dict\",\n \"2\": \"quantum_espresso_workflow.calculate_qe\",\n \"3\": \"quantum_espresso_workflow.generate_structures\",\n \"4\": \"python_workflow_definition.shared.get_list\",\n \"5\": \"python_workflow_definition.shared.get_list\",\n \"6\": \"python_workflow_definition.shared.get_dict\",\n \"7\": \"quantum_espresso_workflow.calculate_qe\",\n \"8\": \"python_workflow_definition.shared.get_dict\",\n \"9\": \"quantum_espresso_workflow.calculate_qe\",\n \"10\": \"python_workflow_definition.shared.get_dict\",\n \"11\": \"quantum_espresso_workflow.calculate_qe\",\n \"12\": \"python_workflow_definition.shared.get_dict\",\n \"13\": \"quantum_espresso_workflow.calculate_qe\",\n \"14\": \"python_workflow_definition.shared.get_dict\",\n \"15\": \"quantum_espresso_workflow.calculate_qe\",\n \"16\": \"quantum_espresso_workflow.plot_energy_volume_curve\",\n \"17\": \"Al\",\n \"18\": 4.05,\n \"19\": true,\n \"20\": \"vc-relax\",\n \"21\": [\n 3,\n 3,\n 3\n ],\n \"22\": {\n \"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"\n },\n \"23\": 0.02,\n \"24\": \"mini\",\n \"25\": [\n 0.9,\n 0.95,\n 1.0,\n 1.05,\n 1.1\n ],\n \"26\": \"scf\",\n \"27\": \"strain_0\",\n \"28\": \"strain_1\",\n \"29\": \"strain_2\",\n \"30\": \"strain_3\",\n \"31\": \"strain_4\"\n },\n \"edges\": [\n {\n \"tn\": 1,\n \"th\": \"structure\",\n \"sn\": 0,\n \"sh\": null\n },\n {\n \"tn\": 2,\n \"th\": \"input_dict\",\n \"sn\": 1,\n \"sh\": null\n },\n {\n \"tn\": 3,\n \"th\": \"structure\",\n \"sn\": 2,\n \"sh\": \"structure\"\n },\n {\n \"tn\": 6,\n \"th\": \"structure\",\n \"sn\": 3,\n \"sh\": \"s_0\"\n },\n {\n \"tn\": 7,\n \"th\": \"input_dict\",\n \"sn\": 6,\n \"sh\": null\n },\n {\n \"tn\": 5,\n \"th\": \"0\",\n \"sn\": 7,\n \"sh\": \"energy\"\n },\n {\n \"tn\": 4,\n \"th\": \"0\",\n \"sn\": 7,\n \"sh\": \"volume\"\n },\n {\n \"tn\": 8,\n \"th\": \"structure\",\n \"sn\": 3,\n \"sh\": \"s_1\"\n },\n {\n \"tn\": 9,\n \"th\": \"input_dict\",\n \"sn\": 8,\n \"sh\": null\n },\n {\n \"tn\": 5,\n \"th\": \"1\",\n \"sn\": 9,\n \"sh\": \"energy\"\n },\n {\n \"tn\": 4,\n \"th\": \"1\",\n \"sn\": 9,\n \"sh\": \"volume\"\n },\n {\n \"tn\": 10,\n \"th\": \"structure\",\n \"sn\": 3,\n \"sh\": \"s_2\"\n },\n {\n \"tn\": 11,\n \"th\": \"input_dict\",\n \"sn\": 10,\n \"sh\": null\n },\n {\n \"tn\": 5,\n \"th\": \"2\",\n \"sn\": 11,\n \"sh\": \"energy\"\n },\n {\n \"tn\": 4,\n \"th\": \"2\",\n \"sn\": 11,\n \"sh\": \"volume\"\n },\n {\n \"tn\": 12,\n \"th\": \"structure\",\n \"sn\": 3,\n \"sh\": \"s_3\"\n },\n {\n \"tn\": 13,\n \"th\": \"input_dict\",\n \"sn\": 12,\n \"sh\": null\n },\n {\n \"tn\": 5,\n \"th\": \"3\",\n \"sn\": 13,\n \"sh\": \"energy\"\n },\n {\n \"tn\": 4,\n \"th\": \"3\",\n \"sn\": 13,\n \"sh\": \"volume\"\n },\n {\n \"tn\": 14,\n \"th\": \"structure\",\n \"sn\": 3,\n \"sh\": \"s_4\"\n },\n {\n \"tn\": 15,\n \"th\": \"input_dict\",\n \"sn\": 14,\n \"sh\": null\n },\n {\n \"tn\": 5,\n \"th\": \"4\",\n \"sn\": 15,\n \"sh\": \"energy\"\n },\n {\n \"tn\": 4,\n \"th\": \"4\",\n \"sn\": 15,\n \"sh\": \"volume\"\n },\n {\n \"tn\": 16,\n \"th\": \"volume_lst\",\n \"sn\": 4,\n \"sh\": null\n },\n {\n \"tn\": 16,\n \"th\": \"energy_lst\",\n \"sn\": 5,\n \"sh\": null\n },\n {\n \"tn\": 0,\n \"th\": \"element\",\n \"sn\": 17,\n \"sh\": null\n },\n {\n \"tn\": 0,\n \"th\": \"a\",\n \"sn\": 18,\n \"sh\": null\n },\n {\n \"tn\": 0,\n \"th\": \"cubic\",\n \"sn\": 19,\n \"sh\": null\n },\n {\n \"tn\": 1,\n \"th\": \"calculation\",\n \"sn\": 20,\n \"sh\": null\n },\n {\n \"tn\": 1,\n \"th\": \"kpts\",\n \"sn\": 21,\n \"sh\": null\n },\n {\n \"tn\": 1,\n \"th\": \"pseudopotentials\",\n \"sn\": 22,\n \"sh\": null\n },\n {\n \"tn\": 1,\n \"th\": \"smearing\",\n \"sn\": 23,\n \"sh\": null\n },\n {\n \"tn\": 2,\n \"th\": \"working_directory\",\n \"sn\": 24,\n \"sh\": null\n },\n {\n \"tn\": 3,\n \"th\": \"strain_lst\",\n \"sn\": 25,\n \"sh\": null\n },\n {\n \"tn\": 6,\n \"th\": \"calculation\",\n \"sn\": 26,\n \"sh\": null\n },\n {\n \"tn\": 6,\n \"th\": \"kpts\",\n \"sn\": 21,\n \"sh\": null\n },\n {\n \"tn\": 6,\n \"th\": \"pseudopotentials\",\n \"sn\": 22,\n \"sh\": null\n },\n {\n \"tn\": 6,\n \"th\": \"smearing\",\n \"sn\": 23,\n \"sh\": null\n },\n {\n \"tn\": 7,\n \"th\": \"working_directory\",\n \"sn\": 27,\n \"sh\": null\n },\n {\n \"tn\": 8,\n \"th\": \"calculation\",\n \"sn\": 26,\n \"sh\": null\n },\n {\n \"tn\": 8,\n \"th\": \"kpts\",\n \"sn\": 21,\n \"sh\": null\n },\n {\n \"tn\": 8,\n \"th\": \"pseudopotentials\",\n \"sn\": 22,\n \"sh\": null\n },\n {\n \"tn\": 8,\n \"th\": \"smearing\",\n \"sn\": 23,\n \"sh\": null\n },\n {\n \"tn\": 9,\n \"th\": \"working_directory\",\n \"sn\": 28,\n \"sh\": null\n },\n {\n \"tn\": 10,\n \"th\": \"calculation\",\n \"sn\": 26,\n \"sh\": null\n },\n {\n \"tn\": 10,\n \"th\": \"kpts\",\n \"sn\": 21,\n \"sh\": null\n },\n {\n \"tn\": 10,\n \"th\": \"pseudopotentials\",\n \"sn\": 22,\n \"sh\": null\n },\n {\n \"tn\": 10,\n \"th\": \"smearing\",\n \"sn\": 23,\n \"sh\": null\n },\n {\n \"tn\": 11,\n \"th\": \"working_directory\",\n \"sn\": 29,\n \"sh\": null\n },\n {\n \"tn\": 12,\n \"th\": \"calculation\",\n \"sn\": 26,\n \"sh\": null\n },\n {\n \"tn\": 12,\n \"th\": \"kpts\",\n \"sn\": 21,\n \"sh\": null\n },\n {\n \"tn\": 12,\n \"th\": \"pseudopotentials\",\n \"sn\": 22,\n \"sh\": null\n },\n {\n \"tn\": 12,\n \"th\": \"smearing\",\n \"sn\": 23,\n \"sh\": null\n },\n {\n \"tn\": 13,\n \"th\": \"working_directory\",\n \"sn\": 30,\n \"sh\": null\n },\n {\n \"tn\": 14,\n \"th\": \"calculation\",\n \"sn\": 26,\n \"sh\": null\n },\n {\n \"tn\": 14,\n \"th\": \"kpts\",\n \"sn\": 21,\n \"sh\": null\n },\n {\n \"tn\": 14,\n \"th\": \"pseudopotentials\",\n \"sn\": 22,\n \"sh\": null\n },\n {\n \"tn\": 14,\n \"th\": \"smearing\",\n \"sn\": 23,\n \"sh\": null\n },\n {\n \"tn\": 15,\n \"th\": \"working_directory\",\n \"sn\": 31,\n \"sh\": null\n }\n ]\n}"}],"execution_count":16},{"cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":17},{"cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":false},"outputs":[],"execution_count":18},{"cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":false},"outputs":[],"execution_count":19},{"cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-01 10:50:22,650 INFO Started executing jobs locally\n2025-04-01 10:50:22,916 INFO Starting job - get_bulk_structure (cbd7d9e1-e367-4d7c-94f0-310b1a4f9c8f)\n2025-04-01 10:50:22,919 INFO Finished job - get_bulk_structure (cbd7d9e1-e367-4d7c-94f0-310b1a4f9c8f)\n2025-04-01 10:50:22,920 INFO Starting job - get_dict (5c7d171f-7910-4ce6-9eef-9a4d9a7529a8)\n2025-04-01 10:50:22,924 INFO Finished job - get_dict (5c7d171f-7910-4ce6-9eef-9a4d9a7529a8)\n2025-04-01 10:50:22,925 INFO Starting job - calculate_qe (8267d4c7-23ef-4ed3-9440-841790f572b7)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:50:41,470 INFO Finished job - calculate_qe (8267d4c7-23ef-4ed3-9440-841790f572b7)\n2025-04-01 10:50:41,471 INFO Starting job - generate_structures (381bd971-0704-48e7-9305-d01622a6847a)\n2025-04-01 10:50:41,476 INFO Finished job - generate_structures (381bd971-0704-48e7-9305-d01622a6847a)\n2025-04-01 10:50:41,477 INFO Starting job - get_dict (665d2bfd-ff33-4850-a685-935415c3a437)\n2025-04-01 10:50:41,479 INFO Finished job - get_dict (665d2bfd-ff33-4850-a685-935415c3a437)\n2025-04-01 10:50:41,479 INFO Starting job - get_dict (93373609-fa51-4b84-87ec-bf2bda04050e)\n2025-04-01 10:50:41,481 INFO Finished job - get_dict (93373609-fa51-4b84-87ec-bf2bda04050e)\n2025-04-01 10:50:41,481 INFO Starting job - get_dict (cd7bcaf9-8078-4f88-b006-e97607f75198)\n2025-04-01 10:50:41,483 INFO Finished job - get_dict (cd7bcaf9-8078-4f88-b006-e97607f75198)\n2025-04-01 10:50:41,483 INFO Starting job - get_dict (f9f7264c-9233-4f81-8d28-35309b2a030e)\n2025-04-01 10:50:41,485 INFO Finished job - get_dict (f9f7264c-9233-4f81-8d28-35309b2a030e)\n2025-04-01 10:50:41,485 INFO Starting job - get_dict (c4742465-a606-4c3e-8f9c-c5211c57c095)\n2025-04-01 10:50:41,487 INFO Finished job - get_dict (c4742465-a606-4c3e-8f9c-c5211c57c095)\n2025-04-01 10:50:41,488 INFO Starting job - calculate_qe (da2eec2b-cf50-42a3-9b3f-530ab34f6031)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:50:45,129 INFO Finished job - calculate_qe (da2eec2b-cf50-42a3-9b3f-530ab34f6031)\n2025-04-01 10:50:45,130 INFO Starting job - calculate_qe (b1f556b4-d4f1-4c0a-9247-4ec834948138)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:50:49,010 INFO Finished job - calculate_qe (b1f556b4-d4f1-4c0a-9247-4ec834948138)\n2025-04-01 10:50:49,011 INFO Starting job - calculate_qe (427e6966-a3c3-4fb9-8233-2635a5208a3b)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:50:52,957 INFO Finished job - calculate_qe (427e6966-a3c3-4fb9-8233-2635a5208a3b)\n2025-04-01 10:50:52,958 INFO Starting job - calculate_qe (63c1de35-c238-4dcc-8722-3a033abf8cbf)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:50:57,520 INFO Finished job - calculate_qe (63c1de35-c238-4dcc-8722-3a033abf8cbf)\n2025-04-01 10:50:57,521 INFO Starting job - calculate_qe (dee8151b-84fd-473a-8542-d49069bc5981)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:51:02,340 INFO Finished job - calculate_qe (dee8151b-84fd-473a-8542-d49069bc5981)\n2025-04-01 10:51:02,341 INFO Starting job - get_list (19c28499-2069-42a8-8e50-545118a4ecbf)\n2025-04-01 10:51:02,345 INFO Finished job - get_list (19c28499-2069-42a8-8e50-545118a4ecbf)\n2025-04-01 10:51:02,346 INFO Starting job - get_list (ecbe69ad-c617-41b3-87c8-a25b8b475e10)\n2025-04-01 10:51:02,349 INFO Finished job - get_list (ecbe69ad-c617-41b3-87c8-a25b8b475e10)\n2025-04-01 10:51:02,349 INFO Starting job - plot_energy_volume_curve (5d6df916-37bb-4dad-aab2-fc9d3733924d)\n2025-04-01 10:51:02,420 INFO Finished job - plot_energy_volume_curve (5d6df916-37bb-4dad-aab2-fc9d3733924d)\n2025-04-01 10:51:02,421 INFO Finished executing jobs locally\n"},{"data":{"text/plain":"{'cbd7d9e1-e367-4d7c-94f0-310b1a4f9c8f': {1: Response(output='{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '5c7d171f-7910-4ce6-9eef-9a4d9a7529a8': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'vc-relax', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '8267d4c7-23ef-4ed3-9440-841790f572b7': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648501, 0.0, 0.0], [0.0, 4.045637407648501, 0.0], [0.0, 0.0, 4.045637407648501]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.02281870382425, 2.02281870382425], [2.02281870382425, 0.0, 2.02281870382425], [2.02281870382425, 2.02281870382425, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365698416843, 'volume': 66.21568389520992}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '381bd971-0704-48e7-9305-d01622a6847a': {1: Response(output={'s_0': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.906019971048066, 0.0, 0.0], [0.0, 3.906019971048066, 0.0], [0.0, 0.0, 3.906019971048066]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099855240326, 1.9530099855240326], [1.9530099855240326, 0.0, 1.9530099855240326], [1.9530099855240326, 1.9530099855240326, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_1': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770540327699004, 0.0, 0.0], [0.0, 3.9770540327699004, 0.0], [0.0, 0.0, 3.9770540327699004]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885270163849498, 1.9885270163849498], [1.9885270163849498, 0.0, 1.9885270163849498], [1.9885270163849498, 1.9885270163849498, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_2': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648501, 0.0, 0.0], [0.0, 4.045637407648501, 0.0], [0.0, 0.0, 4.045637407648501]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.02281870382425, 2.02281870382425], [2.02281870382425, 0.0, 2.02281870382425], [2.02281870382425, 2.02281870382425, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_3': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971122127825, 0.0, 0.0], [0.0, 4.111971122127825, 0.0], [0.0, 0.0, 4.111971122127825]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985561063912, 2.055985561063912], [2.055985561063912, 0.0, 2.055985561063912], [2.055985561063912, 2.055985561063912, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_4': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231050261992, 0.0, 0.0], [0.0, 4.176231050261992, 0.0], [0.0, 0.0, 4.176231050261992]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881155251309957, 2.0881155251309957], [2.0881155251309957, 0.0, 2.0881155251309957], [2.0881155251309957, 2.0881155251309957, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '665d2bfd-ff33-4850-a685-935415c3a437': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.906019971048066, 0.0, 0.0], [0.0, 3.906019971048066, 0.0], [0.0, 0.0, 3.906019971048066]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099855240326, 1.9530099855240326], [1.9530099855240326, 0.0, 1.9530099855240326], [1.9530099855240326, 1.9530099855240326, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '93373609-fa51-4b84-87ec-bf2bda04050e': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770540327699004, 0.0, 0.0], [0.0, 3.9770540327699004, 0.0], [0.0, 0.0, 3.9770540327699004]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885270163849498, 1.9885270163849498], [1.9885270163849498, 0.0, 1.9885270163849498], [1.9885270163849498, 1.9885270163849498, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'cd7bcaf9-8078-4f88-b006-e97607f75198': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648501, 0.0, 0.0], [0.0, 4.045637407648501, 0.0], [0.0, 0.0, 4.045637407648501]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.02281870382425, 2.02281870382425], [2.02281870382425, 0.0, 2.02281870382425], [2.02281870382425, 2.02281870382425, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'f9f7264c-9233-4f81-8d28-35309b2a030e': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971122127825, 0.0, 0.0], [0.0, 4.111971122127825, 0.0], [0.0, 0.0, 4.111971122127825]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985561063912, 2.055985561063912], [2.055985561063912, 0.0, 2.055985561063912], [2.055985561063912, 2.055985561063912, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'c4742465-a606-4c3e-8f9c-c5211c57c095': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231050261992, 0.0, 0.0], [0.0, 4.176231050261992, 0.0], [0.0, 0.0, 4.176231050261992]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881155251309957, 2.0881155251309957], [2.0881155251309957, 0.0, 2.0881155251309957], [2.0881155251309957, 2.0881155251309957, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'da2eec2b-cf50-42a3-9b3f-530ab34f6031': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060199539751044, 0.0, 0.0], [0.0, 3.9060199539751044, 0.0], [0.0, 0.0, 3.9060199539751044]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099769635174, 1.9530099769635174], [1.9530099769635174, 0.0, 1.9530099769635174], [1.9530099769635174, 1.9530099769635174, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.845781112245, 'volume': 59.59411472424278}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'b1f556b4-d4f1-4c0a-9247-4ec834948138': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977054015386449, 0.0, 0.0], [0.0, 3.977054015386449, 0.0], [0.0, 0.0, 3.977054015386449]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885270077082742, 1.9885270077082742], [1.9885270077082742, 0.0, 1.9885270077082742], [1.9885270077082742, 1.9885270077082742, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9161853618145, 'volume': 62.90489887558943}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '427e6966-a3c3-4fb9-8233-2635a5208a3b': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637389965275, 0.0, 0.0], [0.0, 4.045637389965275, 0.0], [0.0, 0.0, 4.045637389965275]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186949583877, 2.0228186949583877], [2.0228186949583877, 0.0, 2.0228186949583877], [2.0228186949583877, 2.0228186949583877, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.936567876358, 'volume': 66.21568302693622}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '63c1de35-c238-4dcc-8722-3a033abf8cbf': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971104154655, 0.0, 0.0], [0.0, 4.111971104154655, 0.0], [0.0, 0.0, 4.111971104154655]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985552113417, 2.055985552113417], [2.055985552113417, 0.0, 2.055985552113417], [2.055985552113417, 2.055985552113417, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9193225358792, 'volume': 69.52646717828286}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'dee8151b-84fd-473a-8542-d49069bc5981': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231032007949, 0.0, 0.0], [0.0, 4.176231032007949, 0.0], [0.0, 0.0, 4.176231032007949]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115515972979, 2.088115515972979], [2.088115515972979, 0.0, 2.088115515972979], [2.088115515972979, 2.088115515972979, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8738270284018, 'volume': 72.83725132962977}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '19c28499-2069-42a8-8e50-545118a4ecbf': {1: Response(output=[59.59411472424278, 62.90489887558943, 66.21568302693622, 69.52646717828286, 72.83725132962977], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'ecbe69ad-c617-41b3-87c8-a25b8b475e10': {1: Response(output=[-1074.845781112245, -1074.9161853618145, -1074.936567876358, -1074.9193225358792, -1074.8738270284018], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '5d6df916-37bb-4dad-aab2-fc9d3733924d': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))}}"},"execution_count":20,"metadata":{},"output_type":"execute_result"},{"data":{"image/png":"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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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","text/plain":"
"},"metadata":{},"output_type":"display_data"}],"execution_count":20},{"cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":false},"outputs":[],"execution_count":21},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":22},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":false},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"c33d6e1c56214809be64df7e49bd7b87","version_major":2,"version_minor":0},"text/plain":" 0%| | 0/17 [00:00\n\n\n\n\ncreate_function_job_8ceb3031e9d0fd46bd383df696f06138\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a88810>\n\n\n\nvolume_lst_105e463ce9fc4dadfb68786635ea6c9f\n\nvolume_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6f690>\n\n\n\nvolume_lst_105e463ce9fc4dadfb68786635ea6c9f->create_function_job_8ceb3031e9d0fd46bd383df696f06138\n\n\n\n\n\n0_c67ca853ba2351e69f89f037ea41b0b9\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6e950>\n\n\n\n0_c67ca853ba2351e69f89f037ea41b0b9->volume_lst_105e463ce9fc4dadfb68786635ea6c9f\n\n\n\n\n\ninput_dict_b79b9897515efc8480fbae676047ff18\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f843f990>\n\n\n\ninput_dict_b79b9897515efc8480fbae676047ff18->0_c67ca853ba2351e69f89f037ea41b0b9\n\n\n\n\n\n0_38914fa97ea86fd0f2a736e0906d8d46\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7f55fb6b3490>\n\n\n\ninput_dict_b79b9897515efc8480fbae676047ff18->0_38914fa97ea86fd0f2a736e0906d8d46\n\n\n\n\n\nenergy_lst_1e7a3d9fd1e11762af4b962d83b084c4\n\nenergy_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6f390>\n\n\n\n0_38914fa97ea86fd0f2a736e0906d8d46->energy_lst_1e7a3d9fd1e11762af4b962d83b084c4\n\n\n\n\n\nstructure_d7ca004e3708134e7a300a68f4025259\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a7a610>\n\n\n\nstructure_d7ca004e3708134e7a300a68f4025259->input_dict_b79b9897515efc8480fbae676047ff18\n\n\n\n\n\nstructure_04c4f17a3d0cb1d2763d446a6995cdc1\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a842d0>\n\n\n\nstructure_04c4f17a3d0cb1d2763d446a6995cdc1->structure_d7ca004e3708134e7a300a68f4025259\n\n\n\n\n\nstructure_512e4d45120ddba0cc1f8ad006094ae3\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a7b090>\n\n\n\nstructure_04c4f17a3d0cb1d2763d446a6995cdc1->structure_512e4d45120ddba0cc1f8ad006094ae3\n\n\n\n\n\nstructure_e32b45d06adef4e6c12b7b39f96b32c5\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a7b350>\n\n\n\nstructure_04c4f17a3d0cb1d2763d446a6995cdc1->structure_e32b45d06adef4e6c12b7b39f96b32c5\n\n\n\n\n\nstructure_5a33de3b4baeba31cb9059f2ebde7093\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a7bc90>\n\n\n\nstructure_04c4f17a3d0cb1d2763d446a6995cdc1->structure_5a33de3b4baeba31cb9059f2ebde7093\n\n\n\n\n\nstructure_e166ec187b983faaf9f6c4a8f4f9d6c1\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a848d0>\n\n\n\nstructure_04c4f17a3d0cb1d2763d446a6995cdc1->structure_e166ec187b983faaf9f6c4a8f4f9d6c1\n\n\n\n\n\ninput_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a78110>\n\n\n\nstructure_512e4d45120ddba0cc1f8ad006094ae3->input_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4\n\n\n\n\n\ninput_dict_028b50f8a655d5559b3b9530a319816d\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a79690>\n\n\n\nstructure_e32b45d06adef4e6c12b7b39f96b32c5->input_dict_028b50f8a655d5559b3b9530a319816d\n\n\n\n\n\ninput_dict_6b0354c0ae3f2aec5766bb7b6511e13d\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a793d0>\n\n\n\nstructure_5a33de3b4baeba31cb9059f2ebde7093->input_dict_6b0354c0ae3f2aec5766bb7b6511e13d\n\n\n\n\n\ninput_dict_ca5e34b9c72317406762f3747541a3e4\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a79cd0>\n\n\n\nstructure_e166ec187b983faaf9f6c4a8f4f9d6c1->input_dict_ca5e34b9c72317406762f3747541a3e4\n\n\n\n\n\ninput_dict_1aae906a29f4a48f3eddf8e6b8ad45da\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a84dd0>\n\n\n\ninput_dict_1aae906a29f4a48f3eddf8e6b8ad45da->structure_04c4f17a3d0cb1d2763d446a6995cdc1\n\n\n\n\n\nstructure_f4511b90f1d10b2338ab6a9d2263a4f7\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55fb438790>\n\n\n\nstructure_f4511b90f1d10b2338ab6a9d2263a4f7->input_dict_1aae906a29f4a48f3eddf8e6b8ad45da\n\n\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0\n\nelement=Al\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n\n\n\n\n\na_aea0574e321c6f75f923c059730e9537\n\na=4.05\n\n\n\na_aea0574e321c6f75f923c059730e9537->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n\n\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a\n\ncubic=True\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n\n\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34\n\ncalculation=vc-relax\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34->input_dict_1aae906a29f4a48f3eddf8e6b8ad45da\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa\n\nkpts=[3, 3, 3]\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_b79b9897515efc8480fbae676047ff18\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_1aae906a29f4a48f3eddf8e6b8ad45da\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_028b50f8a655d5559b3b9530a319816d\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_6b0354c0ae3f2aec5766bb7b6511e13d\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_ca5e34b9c72317406762f3747541a3e4\n\n\n\n\n\n1_5f04a7c65b988a18c77d5ae8cc16ae29\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6c850>\n\n\n\ninput_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4->1_5f04a7c65b988a18c77d5ae8cc16ae29\n\n\n\n\n\n1_849b669eabd7fbb18fabf046a1615dc9\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f8510250>\n\n\n\ninput_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4->1_849b669eabd7fbb18fabf046a1615dc9\n\n\n\n\n\n2_71845adb6150d68b3fbf57e3ca4908cf\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6f710>\n\n\n\ninput_dict_028b50f8a655d5559b3b9530a319816d->2_71845adb6150d68b3fbf57e3ca4908cf\n\n\n\n\n\n2_421cb9cfc0e7fe91df40b043a069b4cb\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6f910>\n\n\n\ninput_dict_028b50f8a655d5559b3b9530a319816d->2_421cb9cfc0e7fe91df40b043a069b4cb\n\n\n\n\n\n3_6adfa852c86d5f38b6bd784c1fef94b3\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6d6d0>\n\n\n\ninput_dict_6b0354c0ae3f2aec5766bb7b6511e13d->3_6adfa852c86d5f38b6bd784c1fef94b3\n\n\n\n\n\n3_e4b6baaf825e550ca7b8eec4b80d1c20\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6e7d0>\n\n\n\ninput_dict_6b0354c0ae3f2aec5766bb7b6511e13d->3_e4b6baaf825e550ca7b8eec4b80d1c20\n\n\n\n\n\n4_87d9553d8556fcd3992214b39494e075\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6ca90>\n\n\n\ninput_dict_ca5e34b9c72317406762f3747541a3e4->4_87d9553d8556fcd3992214b39494e075\n\n\n\n\n\n4_6febd2215a686d37f0246e36e9a33336\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7f55f7a6cdd0>\n\n\n\ninput_dict_ca5e34b9c72317406762f3747541a3e4->4_6febd2215a686d37f0246e36e9a33336\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10\n\npseudopotentials={'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_b79b9897515efc8480fbae676047ff18\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_1aae906a29f4a48f3eddf8e6b8ad45da\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_028b50f8a655d5559b3b9530a319816d\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_6b0354c0ae3f2aec5766bb7b6511e13d\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_ca5e34b9c72317406762f3747541a3e4\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9\n\nsmearing=0.02\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_b79b9897515efc8480fbae676047ff18\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_1aae906a29f4a48f3eddf8e6b8ad45da\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_028b50f8a655d5559b3b9530a319816d\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_6b0354c0ae3f2aec5766bb7b6511e13d\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_ca5e34b9c72317406762f3747541a3e4\n\n\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7\n\nworking_directory=mini\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7->structure_04c4f17a3d0cb1d2763d446a6995cdc1\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781\n\nstrain_lst=[0.9, 0.95, 1.0, 1.05, 1.1]\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_d7ca004e3708134e7a300a68f4025259\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_512e4d45120ddba0cc1f8ad006094ae3\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_e32b45d06adef4e6c12b7b39f96b32c5\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_5a33de3b4baeba31cb9059f2ebde7093\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_e166ec187b983faaf9f6c4a8f4f9d6c1\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83\n\ncalculation=scf\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_b79b9897515efc8480fbae676047ff18\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_56a57a93dc2c1f00ccd1b44d38dfe7d4\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_028b50f8a655d5559b3b9530a319816d\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_6b0354c0ae3f2aec5766bb7b6511e13d\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_ca5e34b9c72317406762f3747541a3e4\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add\n\nworking_directory=strain_0\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_c67ca853ba2351e69f89f037ea41b0b9\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_38914fa97ea86fd0f2a736e0906d8d46\n\n\n\n\n\n1_5f04a7c65b988a18c77d5ae8cc16ae29->volume_lst_105e463ce9fc4dadfb68786635ea6c9f\n\n\n\n\n\n1_849b669eabd7fbb18fabf046a1615dc9->energy_lst_1e7a3d9fd1e11762af4b962d83b084c4\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd\n\nworking_directory=strain_1\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_5f04a7c65b988a18c77d5ae8cc16ae29\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_849b669eabd7fbb18fabf046a1615dc9\n\n\n\n\n\n2_71845adb6150d68b3fbf57e3ca4908cf->volume_lst_105e463ce9fc4dadfb68786635ea6c9f\n\n\n\n\n\n2_421cb9cfc0e7fe91df40b043a069b4cb->energy_lst_1e7a3d9fd1e11762af4b962d83b084c4\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992\n\nworking_directory=strain_2\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_71845adb6150d68b3fbf57e3ca4908cf\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_421cb9cfc0e7fe91df40b043a069b4cb\n\n\n\n\n\n3_6adfa852c86d5f38b6bd784c1fef94b3->volume_lst_105e463ce9fc4dadfb68786635ea6c9f\n\n\n\n\n\n3_e4b6baaf825e550ca7b8eec4b80d1c20->energy_lst_1e7a3d9fd1e11762af4b962d83b084c4\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f\n\nworking_directory=strain_3\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_6adfa852c86d5f38b6bd784c1fef94b3\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_e4b6baaf825e550ca7b8eec4b80d1c20\n\n\n\n\n\n4_87d9553d8556fcd3992214b39494e075->volume_lst_105e463ce9fc4dadfb68786635ea6c9f\n\n\n\n\n\n4_6febd2215a686d37f0246e36e9a33336->energy_lst_1e7a3d9fd1e11762af4b962d83b084c4\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7\n\nworking_directory=strain_4\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_87d9553d8556fcd3992214b39494e075\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_6febd2215a686d37f0246e36e9a33336\n\n\n\n\n\nenergy_lst_1e7a3d9fd1e11762af4b962d83b084c4->create_function_job_8ceb3031e9d0fd46bd383df696f06138\n\n\n\n\n","text/plain":""},"metadata":{},"output_type":"display_data"}],"execution_count":24},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f was saved and received the ID: 4\nThe job get_dict_8c1e72002054a7529280a3e11ba005b5 was saved and received the ID: 5\nThe job calculate_qe_5e2d55d40f947e1c6791f89f7d93cd7c was saved and received the ID: 6\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job generate_structures_3d675d4377e56d5ea0701d9bc6ca2537 was saved and received the ID: 7\nThe job get_dict_7395f450ba5bbeb8b3b5f7f04cd1aec9 was saved and received the ID: 8\nThe job calculate_qe_9b97908b38e6b32fec79d75a790d84c8 was saved and received the ID: 9\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_7dad0bf1f915918f5b44eec63656d045 was saved and received the ID: 10\nThe job calculate_qe_654811b39aaefd7f278e1e4d074d8e8a was saved and received the ID: 11\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_dc6498824bbcffe1870502beda1e99ce was saved and received the ID: 12\nThe job calculate_qe_0bc9039e5d46cf41c8a5f8bddf5445dc was saved and received the ID: 13\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_c9b3348d986cce1499e3c6382b6af93e was saved and received the ID: 14\nThe job calculate_qe_259189d1dff5a59e2e8184e71d9597d7 was saved and received the ID: 15\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_3c8d628835f56af4881e577db8c861ab was saved and received the ID: 16\nThe job calculate_qe_f998ab33e0425ea3403460a5d2b17552 was saved and received the ID: 17\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_list_2e2c8977ec516980a06d35fe27dacb7e was saved and received the ID: 18\nThe job get_list_a67fcac31c6773ce51be0e8903d33c68 was saved and received the ID: 19\nThe job plot_energy_volume_curve_c282015f1c661a67154d2e1f50e9c167 was saved and received the ID: 20\n"},{"data":{"image/png":"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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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","text/plain":"
"},"metadata":{},"output_type":"display_data"}],"execution_count":25},{"cell_type":"code","source":"","metadata":{"trusted":false},"outputs":[],"execution_count":null}]} \ No newline at end of file +{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Aiida","metadata":{}},{"cell_type":"markdown","source":"## Define workflow with aiida","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.aiida import write_workflow_json\nfrom python_workflow_definition.shared import get_dict, get_list\n\nfrom aiida import load_profile, orm\n\nload_profile()\n\nworkflow_json_filename = \"aiida_qe.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"cell_type":"code","source":"from aiida_workgraph import task, WorkGraph","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"cell_type":"code","source":"from quantum_espresso_workflow import generate_structures\nfrom quantum_espresso_workflow import get_bulk_structure\nfrom quantum_espresso_workflow import calculate_qe as _calculate_qe\nfrom quantum_espresso_workflow import plot_energy_volume_curve","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"cell_type":"code","source":"calculate_qe = task(outputs=[\"energy\", \"volume\", \"structure\"])(_calculate_qe)","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"cell_type":"code","source":"wg = WorkGraph(\"wg-qe\")","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"cell_type":"markdown","source":"### Prepare the inputs","metadata":{}},{"cell_type":"code","source":"element = orm.Str(\"Al\")\na = orm.Float(4.05)\ncubic = orm.Bool(True)\nrelax_workdir = orm.Str(\"mini\")\npseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\nkpts = orm.List([3, 3, 3])\ncalc_type_relax = orm.Str(\"vc-relax\")\ncalc_type_scf = orm.Str(\"scf\")\nsmearing = orm.Float(0.02)\nstrain_lst = orm.List([0.9, 0.95, 1.0, 1.05, 1.1])","metadata":{"trusted":true},"outputs":[],"execution_count":6},{"cell_type":"markdown","source":"### Actual tasks to construct the EOS workflow","metadata":{}},{"cell_type":"code","source":"get_bulk_structure_task = wg.add_task(\n get_bulk_structure,\n name=\"get_bulk_structure\",\n element=element,\n a=a,\n cubic=cubic,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"cell_type":"code","source":"relax_prepare_input_dict_task = wg.add_task(\n get_dict,\n name=\"relax_get_dict\",\n structure=get_bulk_structure_task.outputs.result,\n calculation=calc_type_relax,\n kpts=kpts,\n pseudopotentials=pseudopotentials,\n smearing=smearing,\n)\n\nrelax_task = wg.add_task(\n calculate_qe,\n name=\"mini\",\n input_dict=relax_prepare_input_dict_task.outputs.result,\n working_directory=relax_workdir,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"cell_type":"code","source":"generate_structures_task = wg.add_task(\n generate_structures,\n name=\"generate_structures\",\n structure=relax_task.outputs.structure,\n strain_lst=strain_lst,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"cell_type":"code","source":"get_volumes_task = wg.add_task(get_list, name=\"get_volumes\")","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"cell_type":"code","source":"get_energies_task = wg.add_task(get_list, name=\"get_energies\")","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"cell_type":"code","source":"strain_dir_tasks, scf_qe_tasks, scf_get_dict_tasks = [], [], []\n\nfor i, strain in enumerate(strain_lst):\n\n structure_key = f\"s_{i}\"\n strain_dir = orm.Str(f\"strain_{i}\")\n generate_structures_task.add_output(\"workgraph.any\", structure_key)\n\n scf_prepare_input_dict_task = wg.add_task(\n get_dict,\n name=f\"get_dict_{i}\",\n structure=generate_structures_task.outputs[structure_key],\n calculation=calc_type_scf,\n kpts=kpts,\n pseudopotentials=pseudopotentials,\n smearing=smearing,\n )\n\n scf_qe_task = wg.add_task(\n calculate_qe,\n name=f\"qe_{i}\",\n input_dict=scf_prepare_input_dict_task.outputs.result,\n working_directory=strain_dir,\n )\n\n # collect energy and volume\n get_energies_task.set({f\"{i}\": scf_qe_task.outputs.energy})\n get_volumes_task.set({f\"{i}\": scf_qe_task.outputs.volume})","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"cell_type":"code","source":"plot_energy_volume_curve_task = wg.add_task(\n plot_energy_volume_curve,\n name=\"plot_energy_volume_curve\",\n volume_lst=get_volumes_task.outputs.result,\n energy_lst=get_energies_task.outputs.result,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"cell_type":"code","source":"wg","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'wg-qe',…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"357e758dd9f449cbbf55410b25f80562"}},"metadata":{}}],"execution_count":14},{"cell_type":"code","source":"_ = write_workflow_json(wg=wg, file_name=workflow_json_filename)\n","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\n \"nodes\": [\n {\n \"id\": 0,\n \"function\": \"quantum_espresso_workflow.get_bulk_structure\"\n },\n {\n \"id\": 1,\n \"function\": \"python_workflow_definition.shared.get_dict\"\n },\n {\n \"id\": 2,\n \"function\": \"quantum_espresso_workflow.calculate_qe\"\n },\n {\n \"id\": 3,\n \"function\": \"quantum_espresso_workflow.generate_structures\"\n },\n {\n \"id\": 4,\n \"function\": \"python_workflow_definition.shared.get_list\"\n },\n {\n \"id\": 5,\n \"function\": \"python_workflow_definition.shared.get_list\"\n },\n {\n \"id\": 6,\n \"function\": \"python_workflow_definition.shared.get_dict\"\n },\n {\n \"id\": 7,\n \"function\": \"quantum_espresso_workflow.calculate_qe\"\n },\n {\n \"id\": 8,\n \"function\": \"python_workflow_definition.shared.get_dict\"\n },\n {\n \"id\": 9,\n \"function\": \"quantum_espresso_workflow.calculate_qe\"\n },\n {\n \"id\": 10,\n \"function\": \"python_workflow_definition.shared.get_dict\"\n },\n {\n \"id\": 11,\n \"function\": \"quantum_espresso_workflow.calculate_qe\"\n },\n {\n \"id\": 12,\n \"function\": \"python_workflow_definition.shared.get_dict\"\n },\n {\n \"id\": 13,\n \"function\": \"quantum_espresso_workflow.calculate_qe\"\n },\n {\n \"id\": 14,\n \"function\": \"python_workflow_definition.shared.get_dict\"\n },\n {\n \"id\": 15,\n \"function\": \"quantum_espresso_workflow.calculate_qe\"\n },\n {\n \"id\": 16,\n \"function\": \"quantum_espresso_workflow.plot_energy_volume_curve\"\n },\n {\n \"id\": 17,\n \"value\": \"Al\"\n },\n {\n \"id\": 18,\n \"value\": 4.05\n },\n {\n \"id\": 19,\n \"value\": true\n },\n {\n \"id\": 20,\n \"value\": \"vc-relax\"\n },\n {\n \"id\": 21,\n \"value\": [\n 3,\n 3,\n 3\n ]\n },\n {\n \"id\": 22,\n \"value\": {\n \"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"\n }\n },\n {\n \"id\": 23,\n \"value\": 0.02\n },\n {\n \"id\": 24,\n \"value\": \"mini\"\n },\n {\n \"id\": 25,\n \"value\": [\n 0.9,\n 0.95,\n 1.0,\n 1.05,\n 1.1\n ]\n },\n {\n \"id\": 26,\n \"value\": \"scf\"\n },\n {\n \"id\": 27,\n \"value\": \"strain_0\"\n },\n {\n \"id\": 28,\n \"value\": \"strain_1\"\n },\n {\n \"id\": 29,\n \"value\": \"strain_2\"\n },\n {\n \"id\": 30,\n \"value\": \"strain_3\"\n },\n {\n \"id\": 31,\n \"value\": \"strain_4\"\n }\n ],\n \"edges\": [\n {\n \"target\": 1,\n \"targetPort\": \"structure\",\n \"source\": 0,\n \"sourcePort\": null\n },\n {\n \"target\": 2,\n \"targetPort\": \"input_dict\",\n \"source\": 1,\n \"sourcePort\": null\n },\n {\n \"target\": 3,\n \"targetPort\": \"structure\",\n \"source\": 2,\n \"sourcePort\": \"structure\"\n },\n {\n \"target\": 6,\n \"targetPort\": \"structure\",\n \"source\": 3,\n \"sourcePort\": \"s_0\"\n },\n {\n \"target\": 7,\n \"targetPort\": \"input_dict\",\n \"source\": 6,\n \"sourcePort\": null\n },\n {\n \"target\": 5,\n \"targetPort\": \"0\",\n \"source\": 7,\n \"sourcePort\": \"energy\"\n },\n {\n \"target\": 4,\n \"targetPort\": \"0\",\n \"source\": 7,\n \"sourcePort\": \"volume\"\n },\n {\n \"target\": 8,\n \"targetPort\": \"structure\",\n \"source\": 3,\n \"sourcePort\": \"s_1\"\n },\n {\n \"target\": 9,\n \"targetPort\": \"input_dict\",\n \"source\": 8,\n \"sourcePort\": null\n },\n {\n \"target\": 5,\n \"targetPort\": \"1\",\n \"source\": 9,\n \"sourcePort\": \"energy\"\n },\n {\n \"target\": 4,\n \"targetPort\": \"1\",\n \"source\": 9,\n \"sourcePort\": \"volume\"\n },\n {\n \"target\": 10,\n \"targetPort\": \"structure\",\n \"source\": 3,\n \"sourcePort\": \"s_2\"\n },\n {\n \"target\": 11,\n \"targetPort\": \"input_dict\",\n \"source\": 10,\n \"sourcePort\": null\n },\n {\n \"target\": 5,\n \"targetPort\": \"2\",\n \"source\": 11,\n \"sourcePort\": \"energy\"\n },\n {\n \"target\": 4,\n \"targetPort\": \"2\",\n \"source\": 11,\n \"sourcePort\": \"volume\"\n },\n {\n \"target\": 12,\n \"targetPort\": \"structure\",\n \"source\": 3,\n \"sourcePort\": \"s_3\"\n },\n {\n \"target\": 13,\n \"targetPort\": \"input_dict\",\n \"source\": 12,\n \"sourcePort\": null\n },\n {\n \"target\": 5,\n \"targetPort\": \"3\",\n \"source\": 13,\n \"sourcePort\": \"energy\"\n },\n {\n \"target\": 4,\n \"targetPort\": \"3\",\n \"source\": 13,\n \"sourcePort\": \"volume\"\n },\n {\n \"target\": 14,\n \"targetPort\": \"structure\",\n \"source\": 3,\n \"sourcePort\": \"s_4\"\n },\n {\n \"target\": 15,\n \"targetPort\": \"input_dict\",\n \"source\": 14,\n \"sourcePort\": null\n },\n {\n \"target\": 5,\n \"targetPort\": \"4\",\n \"source\": 15,\n \"sourcePort\": \"energy\"\n },\n {\n \"target\": 4,\n \"targetPort\": \"4\",\n \"source\": 15,\n \"sourcePort\": \"volume\"\n },\n {\n \"target\": 16,\n \"targetPort\": \"volume_lst\",\n \"source\": 4,\n \"sourcePort\": null\n },\n {\n \"target\": 16,\n \"targetPort\": \"energy_lst\",\n \"source\": 5,\n \"sourcePort\": null\n },\n {\n \"target\": 0,\n \"targetPort\": \"element\",\n \"source\": 17,\n \"sourcePort\": null\n },\n {\n \"target\": 0,\n \"targetPort\": \"a\",\n \"source\": 18,\n \"sourcePort\": null\n },\n {\n \"target\": 0,\n \"targetPort\": \"cubic\",\n \"source\": 19,\n \"sourcePort\": null\n },\n {\n \"target\": 1,\n \"targetPort\": \"calculation\",\n \"source\": 20,\n \"sourcePort\": null\n },\n {\n \"target\": 1,\n \"targetPort\": \"kpts\",\n \"source\": 21,\n \"sourcePort\": null\n },\n {\n \"target\": 1,\n \"targetPort\": \"pseudopotentials\",\n \"source\": 22,\n \"sourcePort\": null\n },\n {\n \"target\": 1,\n \"targetPort\": \"smearing\",\n \"source\": 23,\n \"sourcePort\": null\n },\n {\n \"target\": 2,\n \"targetPort\": \"working_directory\",\n \"source\": 24,\n \"sourcePort\": null\n },\n {\n \"target\": 3,\n \"targetPort\": \"strain_lst\",\n \"source\": 25,\n \"sourcePort\": null\n },\n {\n \"target\": 6,\n \"targetPort\": \"calculation\",\n \"source\": 26,\n \"sourcePort\": null\n },\n {\n \"target\": 6,\n \"targetPort\": \"kpts\",\n \"source\": 21,\n \"sourcePort\": null\n },\n {\n \"target\": 6,\n \"targetPort\": \"pseudopotentials\",\n \"source\": 22,\n \"sourcePort\": null\n },\n {\n \"target\": 6,\n \"targetPort\": \"smearing\",\n \"source\": 23,\n \"sourcePort\": null\n },\n {\n \"target\": 7,\n \"targetPort\": \"working_directory\",\n \"source\": 27,\n \"sourcePort\": null\n },\n {\n \"target\": 8,\n \"targetPort\": \"calculation\",\n \"source\": 26,\n \"sourcePort\": null\n },\n {\n \"target\": 8,\n \"targetPort\": \"kpts\",\n \"source\": 21,\n \"sourcePort\": null\n },\n {\n \"target\": 8,\n \"targetPort\": \"pseudopotentials\",\n \"source\": 22,\n \"sourcePort\": null\n },\n {\n \"target\": 8,\n \"targetPort\": \"smearing\",\n \"source\": 23,\n \"sourcePort\": null\n },\n {\n \"target\": 9,\n \"targetPort\": \"working_directory\",\n \"source\": 28,\n \"sourcePort\": null\n },\n {\n \"target\": 10,\n \"targetPort\": \"calculation\",\n \"source\": 26,\n \"sourcePort\": null\n },\n {\n \"target\": 10,\n \"targetPort\": \"kpts\",\n \"source\": 21,\n \"sourcePort\": null\n },\n {\n \"target\": 10,\n \"targetPort\": \"pseudopotentials\",\n \"source\": 22,\n \"sourcePort\": null\n },\n {\n \"target\": 10,\n \"targetPort\": \"smearing\",\n \"source\": 23,\n \"sourcePort\": null\n },\n {\n \"target\": 11,\n \"targetPort\": \"working_directory\",\n \"source\": 29,\n \"sourcePort\": null\n },\n {\n \"target\": 12,\n \"targetPort\": \"calculation\",\n \"source\": 26,\n \"sourcePort\": null\n },\n {\n \"target\": 12,\n \"targetPort\": \"kpts\",\n \"source\": 21,\n \"sourcePort\": null\n },\n {\n \"target\": 12,\n \"targetPort\": \"pseudopotentials\",\n \"source\": 22,\n \"sourcePort\": null\n },\n {\n \"target\": 12,\n \"targetPort\": \"smearing\",\n \"source\": 23,\n \"sourcePort\": null\n },\n {\n \"target\": 13,\n \"targetPort\": \"working_directory\",\n \"source\": 30,\n \"sourcePort\": null\n },\n {\n \"target\": 14,\n \"targetPort\": \"calculation\",\n \"source\": 26,\n \"sourcePort\": null\n },\n {\n \"target\": 14,\n \"targetPort\": \"kpts\",\n \"source\": 21,\n \"sourcePort\": null\n },\n {\n \"target\": 14,\n \"targetPort\": \"pseudopotentials\",\n \"source\": 22,\n \"sourcePort\": null\n },\n {\n \"target\": 14,\n \"targetPort\": \"smearing\",\n \"source\": 23,\n \"sourcePort\": null\n },\n {\n \"target\": 15,\n \"targetPort\": \"working_directory\",\n \"source\": 31,\n \"sourcePort\": null\n }\n ]\n}"}],"execution_count":16},{"cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":17},{"cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":19},{"cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 15:54:47,296 INFO Started executing jobs locally\n2025-04-12 15:54:47,541 INFO Starting job - get_bulk_structure (75604891-5f30-49fd-97cd-8f59b0a3895e)\n2025-04-12 15:54:47,544 INFO Finished job - get_bulk_structure (75604891-5f30-49fd-97cd-8f59b0a3895e)\n2025-04-12 15:54:47,545 INFO Starting job - get_dict (0743ebe6-3095-4e7d-a739-900669f7873e)\n2025-04-12 15:54:47,547 INFO Finished job - get_dict (0743ebe6-3095-4e7d-a739-900669f7873e)\n2025-04-12 15:54:47,548 INFO Starting job - calculate_qe (c2c29162-5e00-4b36-8a6c-f1d52bc1df9f)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00174] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:55:40,677 INFO Finished job - calculate_qe (c2c29162-5e00-4b36-8a6c-f1d52bc1df9f)\n2025-04-12 15:55:40,678 INFO Starting job - generate_structures (c0ed904d-e24e-4f9f-9c0a-d6b78d5e192a)\n2025-04-12 15:55:40,682 INFO Finished job - generate_structures (c0ed904d-e24e-4f9f-9c0a-d6b78d5e192a)\n2025-04-12 15:55:40,682 INFO Starting job - get_dict (7659e7c0-09e3-4179-9ab7-e6f465f77ebf)\n2025-04-12 15:55:40,684 INFO Finished job - get_dict (7659e7c0-09e3-4179-9ab7-e6f465f77ebf)\n2025-04-12 15:55:40,685 INFO Starting job - get_dict (2f9eceb5-885e-43c6-817c-2dce34de58a2)\n2025-04-12 15:55:40,686 INFO Finished job - get_dict (2f9eceb5-885e-43c6-817c-2dce34de58a2)\n2025-04-12 15:55:40,687 INFO Starting job - get_dict (04c12622-0c0e-4278-86fc-8e3c79bf3068)\n2025-04-12 15:55:40,688 INFO Finished job - get_dict (04c12622-0c0e-4278-86fc-8e3c79bf3068)\n2025-04-12 15:55:40,689 INFO Starting job - get_dict (dd1346c8-8f2a-417c-9347-c80eea106d43)\n2025-04-12 15:55:40,690 INFO Finished job - get_dict (dd1346c8-8f2a-417c-9347-c80eea106d43)\n2025-04-12 15:55:40,690 INFO Starting job - get_dict (34bc950b-192d-4535-91d7-8b4f8b5cfcae)\n2025-04-12 15:55:40,692 INFO Finished job - get_dict (34bc950b-192d-4535-91d7-8b4f8b5cfcae)\n2025-04-12 15:55:40,693 INFO Starting job - calculate_qe (55b6c69a-0494-48d1-b92f-aa77b8feb021)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00190] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:55:50,987 INFO Finished job - calculate_qe (55b6c69a-0494-48d1-b92f-aa77b8feb021)\n2025-04-12 15:55:50,988 INFO Starting job - calculate_qe (ee153da1-ad96-48b8-bd1c-ac4dd4be109f)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00201] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:56:02,477 INFO Finished job - calculate_qe (ee153da1-ad96-48b8-bd1c-ac4dd4be109f)\n2025-04-12 15:56:02,478 INFO Starting job - calculate_qe (97b1022f-d67a-4544-98bf-b5d4e11c19d4)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00212] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:56:14,246 INFO Finished job - calculate_qe (97b1022f-d67a-4544-98bf-b5d4e11c19d4)\n2025-04-12 15:56:14,247 INFO Starting job - calculate_qe (d86d1bab-f0e3-4993-bcf1-16f85370ca7a)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00223] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:56:28,775 INFO Finished job - calculate_qe (d86d1bab-f0e3-4993-bcf1-16f85370ca7a)\n2025-04-12 15:56:28,776 INFO Starting job - calculate_qe (d9caf96a-65e9-4ad0-9809-58ac600505d0)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00234] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:56:42,906 INFO Finished job - calculate_qe (d9caf96a-65e9-4ad0-9809-58ac600505d0)\n2025-04-12 15:56:42,907 INFO Starting job - get_list (3c1af8c6-b8c7-44e9-8bfd-2851a5b17f39)\n2025-04-12 15:56:42,910 INFO Finished job - get_list (3c1af8c6-b8c7-44e9-8bfd-2851a5b17f39)\n2025-04-12 15:56:42,911 INFO Starting job - get_list (30696726-b051-47d5-b74b-c435584b6d13)\n2025-04-12 15:56:42,913 INFO Finished job - get_list (30696726-b051-47d5-b74b-c435584b6d13)\n2025-04-12 15:56:42,914 INFO Starting job - plot_energy_volume_curve (01faca8d-e19f-44b1-bfd3-f0ddab5d3129)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 15:56:42,982 INFO Finished job - plot_energy_volume_curve (01faca8d-e19f-44b1-bfd3-f0ddab5d3129)\n2025-04-12 15:56:42,983 INFO Finished executing jobs locally\n"},{"execution_count":20,"output_type":"execute_result","data":{"text/plain":"{'75604891-5f30-49fd-97cd-8f59b0a3895e': {1: Response(output='{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '0743ebe6-3095-4e7d-a739-900669f7873e': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'vc-relax', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'c2c29162-5e00-4b36-8a6c-f1d52bc1df9f': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637215946643, 0.0, 0.0], [0.0, 4.045637215946643, 0.0], [0.0, 0.0, 4.045637215946643]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.022818607973321, 2.022818607973321], [2.022818607973321, 0.0, 2.022818607973321], [2.022818607973321, 2.022818607973321, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365262253598, 'volume': 66.21567448235275}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'c0ed904d-e24e-4f9f-9c0a-d6b78d5e192a': {1: Response(output={'s_0': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060197859619574, 0.0, 0.0], [0.0, 3.9060197859619574, 0.0], [0.0, 0.0, 3.9060197859619574]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098929809783, 1.9530098929809783], [1.9530098929809783, 0.0, 1.9530098929809783], [1.9530098929809783, 1.9530098929809783, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_1': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770538443178545, 0.0, 0.0], [0.0, 3.9770538443178545, 0.0], [0.0, 0.0, 3.9770538443178545]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269221589268, 1.9885269221589268], [1.9885269221589268, 0.0, 1.9885269221589268], [1.9885269221589268, 1.9885269221589268, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_2': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637215946643, 0.0, 0.0], [0.0, 4.045637215946643, 0.0], [0.0, 0.0, 4.045637215946643]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.022818607973321, 2.022818607973321], [2.022818607973321, 0.0, 2.022818607973321], [2.022818607973321, 2.022818607973321, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_3': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111970927282755, 0.0, 0.0], [0.0, 4.111970927282755, 0.0], [0.0, 0.0, 4.111970927282755]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985463641377, 2.055985463641377], [2.055985463641377, 0.0, 2.055985463641377], [2.055985463641377, 2.055985463641377, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_4': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176230852371977, 0.0, 0.0], [0.0, 4.176230852371977, 0.0], [0.0, 0.0, 4.176230852371977]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115426185988, 2.088115426185988], [2.088115426185988, 0.0, 2.088115426185988], [2.088115426185988, 2.088115426185988, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '7659e7c0-09e3-4179-9ab7-e6f465f77ebf': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060197859619574, 0.0, 0.0], [0.0, 3.9060197859619574, 0.0], [0.0, 0.0, 3.9060197859619574]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098929809783, 1.9530098929809783], [1.9530098929809783, 0.0, 1.9530098929809783], [1.9530098929809783, 1.9530098929809783, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '2f9eceb5-885e-43c6-817c-2dce34de58a2': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770538443178545, 0.0, 0.0], [0.0, 3.9770538443178545, 0.0], [0.0, 0.0, 3.9770538443178545]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269221589268, 1.9885269221589268], [1.9885269221589268, 0.0, 1.9885269221589268], [1.9885269221589268, 1.9885269221589268, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '04c12622-0c0e-4278-86fc-8e3c79bf3068': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637215946643, 0.0, 0.0], [0.0, 4.045637215946643, 0.0], [0.0, 0.0, 4.045637215946643]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.022818607973321, 2.022818607973321], [2.022818607973321, 0.0, 2.022818607973321], [2.022818607973321, 2.022818607973321, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'dd1346c8-8f2a-417c-9347-c80eea106d43': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111970927282755, 0.0, 0.0], [0.0, 4.111970927282755, 0.0], [0.0, 0.0, 4.111970927282755]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985463641377, 2.055985463641377], [2.055985463641377, 0.0, 2.055985463641377], [2.055985463641377, 2.055985463641377, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '34bc950b-192d-4535-91d7-8b4f8b5cfcae': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176230852371977, 0.0, 0.0], [0.0, 4.176230852371977, 0.0], [0.0, 0.0, 4.176230852371977]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115426185988, 2.088115426185988], [2.088115426185988, 0.0, 2.088115426185988], [2.088115426185988, 2.088115426185988, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'calculation': 'scf', 'kpts': [3, 3, 3], 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '55b6c69a-0494-48d1-b92f-aa77b8feb021': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060197688889953, 0.0, 0.0], [0.0, 3.9060197688889953, 0.0], [0.0, 0.0, 3.9060197688889953]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098844635175, 1.9530098844635175], [1.9530098844635175, 0.0, 1.9530098844635175], [1.9530098844635175, 1.9530098844635175, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8457446150626, 'volume': 59.594106252671395}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'ee153da1-ad96-48b8-bd1c-ac4dd4be109f': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770538269344, 0.0, 0.0], [0.0, 3.9770538269344, 0.0], [0.0, 0.0, 3.9770538269344]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269135082746, 1.9885269135082746], [1.9885269135082746, 0.0, 1.9885269135082746], [1.9885269135082746, 1.9885269135082746, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9161488594584, 'volume': 62.90488993337508}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '97b1022f-d67a-4544-98bf-b5d4e11c19d4': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.0456371982634165, 0.0, 0.0], [0.0, 4.0456371982634165, 0.0], [0.0, 0.0, 4.0456371982634165]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228185991583882, 2.0228185991583882], [2.0228185991583882, 0.0, 2.0228185991583882], [2.0228185991583882, 2.0228185991583882, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365241668356, 'volume': 66.21567361407907}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'd86d1bab-f0e3-4993-bcf1-16f85370ca7a': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111970909309585, 0.0, 0.0], [0.0, 4.111970909309585, 0.0], [0.0, 0.0, 4.111970909309585]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854546134178, 2.0559854546134178], [2.0559854546134178, 0.0, 2.0559854546134178], [2.0559854546134178, 2.0559854546134178, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9192860025848, 'volume': 69.52645729478297}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'd9caf96a-65e9-4ad0-9809-58ac600505d0': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.17623083411794, 0.0, 0.0], [0.0, 4.17623083411794, 0.0], [0.0, 0.0, 4.17623083411794]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881154170729803, 2.0881154170729803], [2.0881154170729803, 0.0, 2.0881154170729803], [2.0881154170729803, 2.0881154170729803, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.873790469346, 'volume': 72.83724097548735}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '3c1af8c6-b8c7-44e9-8bfd-2851a5b17f39': {1: Response(output=[59.594106252671395, 62.90488993337508, 66.21567361407907, 69.52645729478297, 72.83724097548735], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '30696726-b051-47d5-b74b-c435584b6d13': {1: Response(output=[-1074.8457446150626, -1074.9161488594584, -1074.9365241668356, -1074.9192860025848, -1074.873790469346], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '01faca8d-e19f-44b1-bfd3-f0ddab5d3129': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":20},{"cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":22},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"9122e0d1d6d24380888128cb9175e680"}},"metadata":{}}],"execution_count":23},{"cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_623224c37a138c6761de2c0b24d3eec7\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473bbc0>\n\n\n\nvolume_lst_8cde268e71366b3cd35ed9c611b4cb65\n\nvolume_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b950>\n\n\n\nvolume_lst_8cde268e71366b3cd35ed9c611b4cb65->create_function_job_623224c37a138c6761de2c0b24d3eec7\n\n\n\n\n\n0_ee58078fe0f8bfec3a3d645e8700c358\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b3b0>\n\n\n\n0_ee58078fe0f8bfec3a3d645e8700c358->volume_lst_8cde268e71366b3cd35ed9c611b4cb65\n\n\n\n\n\ninput_dict_d55bd7b17af24b078d88a315024b4d85\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954739fd0>\n\n\n\ninput_dict_d55bd7b17af24b078d88a315024b4d85->0_ee58078fe0f8bfec3a3d645e8700c358\n\n\n\n\n\n0_a0808c01620a40e06e8cbdf172a985bd\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473ad80>\n\n\n\ninput_dict_d55bd7b17af24b078d88a315024b4d85->0_a0808c01620a40e06e8cbdf172a985bd\n\n\n\n\n\nenergy_lst_d6803c69f7664ac6e0b2561e875f685e\n\nenergy_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b320>\n\n\n\n0_a0808c01620a40e06e8cbdf172a985bd->energy_lst_d6803c69f7664ac6e0b2561e875f685e\n\n\n\n\n\nstructure_a9f92f7dc3638fe14db3100f475d53ff\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954739730>\n\n\n\nstructure_a9f92f7dc3638fe14db3100f475d53ff->input_dict_d55bd7b17af24b078d88a315024b4d85\n\n\n\n\n\nstructure_a23b82edc21942e636458ffc134c9e29\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954738320>\n\n\n\nstructure_a23b82edc21942e636458ffc134c9e29->structure_a9f92f7dc3638fe14db3100f475d53ff\n\n\n\n\n\nstructure_183af0f41ada6264656dffc9744c3c5e\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954739400>\n\n\n\nstructure_a23b82edc21942e636458ffc134c9e29->structure_183af0f41ada6264656dffc9744c3c5e\n\n\n\n\n\nstructure_168e9a0ff9cf90db21caececb0a8c8d1\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f99547390d0>\n\n\n\nstructure_a23b82edc21942e636458ffc134c9e29->structure_168e9a0ff9cf90db21caececb0a8c8d1\n\n\n\n\n\nstructure_9c4a33eddd1f11d7ae6c5e49dd23d23e\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954738da0>\n\n\n\nstructure_a23b82edc21942e636458ffc134c9e29->structure_9c4a33eddd1f11d7ae6c5e49dd23d23e\n\n\n\n\n\nstructure_de4f2b12d514a19843504d5875bc29d5\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954738b00>\n\n\n\nstructure_a23b82edc21942e636458ffc134c9e29->structure_de4f2b12d514a19843504d5875bc29d5\n\n\n\n\n\ninput_dict_869b94414d9798094f405fb6bd0e3cd2\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f99547396a0>\n\n\n\nstructure_183af0f41ada6264656dffc9744c3c5e->input_dict_869b94414d9798094f405fb6bd0e3cd2\n\n\n\n\n\ninput_dict_36b52ba98fbcc998d1d4cac39503d087\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954739370>\n\n\n\nstructure_168e9a0ff9cf90db21caececb0a8c8d1->input_dict_36b52ba98fbcc998d1d4cac39503d087\n\n\n\n\n\ninput_dict_e2d800d67b1bb461871269b7cdae217f\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954739040>\n\n\n\nstructure_9c4a33eddd1f11d7ae6c5e49dd23d23e->input_dict_e2d800d67b1bb461871269b7cdae217f\n\n\n\n\n\ninput_dict_c0b9f0f7770ccf0df86eff101ac187fd\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954738d10>\n\n\n\nstructure_de4f2b12d514a19843504d5875bc29d5->input_dict_c0b9f0f7770ccf0df86eff101ac187fd\n\n\n\n\n\ninput_dict_ef8aa6b7c4c551608b76ae3c85277634\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f9954738680>\n\n\n\ninput_dict_ef8aa6b7c4c551608b76ae3c85277634->structure_a23b82edc21942e636458ffc134c9e29\n\n\n\n\n\nstructure_955e3be85103df2a640360e1088a66f5\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f99548fed80>\n\n\n\nstructure_955e3be85103df2a640360e1088a66f5->input_dict_ef8aa6b7c4c551608b76ae3c85277634\n\n\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0\n\nelement=Al\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\na_aea0574e321c6f75f923c059730e9537\n\na=4.05\n\n\n\na_aea0574e321c6f75f923c059730e9537->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a\n\ncubic=True\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34\n\ncalculation=vc-relax\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34->input_dict_ef8aa6b7c4c551608b76ae3c85277634\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa\n\nkpts=[3, 3, 3]\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_d55bd7b17af24b078d88a315024b4d85\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_ef8aa6b7c4c551608b76ae3c85277634\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_869b94414d9798094f405fb6bd0e3cd2\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_36b52ba98fbcc998d1d4cac39503d087\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_e2d800d67b1bb461871269b7cdae217f\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_c0b9f0f7770ccf0df86eff101ac187fd\n\n\n\n\n\n1_d1f4f30489350f916d9534f48c4fe22f\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b380>\n\n\n\ninput_dict_869b94414d9798094f405fb6bd0e3cd2->1_d1f4f30489350f916d9534f48c4fe22f\n\n\n\n\n\n1_c094ae884526dd57462266ef5cbd1834\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473ad50>\n\n\n\ninput_dict_869b94414d9798094f405fb6bd0e3cd2->1_c094ae884526dd57462266ef5cbd1834\n\n\n\n\n\n2_a51def054beb6064b919b77bc8b7baea\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b1a0>\n\n\n\ninput_dict_36b52ba98fbcc998d1d4cac39503d087->2_a51def054beb6064b919b77bc8b7baea\n\n\n\n\n\n2_39d164355b6a8c6b7ff241d68a3fc40a\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473a8a0>\n\n\n\ninput_dict_36b52ba98fbcc998d1d4cac39503d087->2_39d164355b6a8c6b7ff241d68a3fc40a\n\n\n\n\n\n3_f8ce46b8aff41e57ed36c19d59e69fa5\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b4d0>\n\n\n\ninput_dict_e2d800d67b1bb461871269b7cdae217f->3_f8ce46b8aff41e57ed36c19d59e69fa5\n\n\n\n\n\n3_7850530d17101ab3a10b452e672370f1\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473aea0>\n\n\n\ninput_dict_e2d800d67b1bb461871269b7cdae217f->3_7850530d17101ab3a10b452e672370f1\n\n\n\n\n\n4_1fe767b66b31eb8b611cca734e6843a7\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473b5c0>\n\n\n\ninput_dict_c0b9f0f7770ccf0df86eff101ac187fd->4_1fe767b66b31eb8b611cca734e6843a7\n\n\n\n\n\n4_a731b39f83e62b1052d7ea3536308d51\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7f995473af90>\n\n\n\ninput_dict_c0b9f0f7770ccf0df86eff101ac187fd->4_a731b39f83e62b1052d7ea3536308d51\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10\n\npseudopotentials={'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_d55bd7b17af24b078d88a315024b4d85\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_ef8aa6b7c4c551608b76ae3c85277634\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_869b94414d9798094f405fb6bd0e3cd2\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_36b52ba98fbcc998d1d4cac39503d087\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_e2d800d67b1bb461871269b7cdae217f\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_c0b9f0f7770ccf0df86eff101ac187fd\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9\n\nsmearing=0.02\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_d55bd7b17af24b078d88a315024b4d85\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_ef8aa6b7c4c551608b76ae3c85277634\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_869b94414d9798094f405fb6bd0e3cd2\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_36b52ba98fbcc998d1d4cac39503d087\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_e2d800d67b1bb461871269b7cdae217f\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_c0b9f0f7770ccf0df86eff101ac187fd\n\n\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7\n\nworking_directory=mini\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7->structure_a23b82edc21942e636458ffc134c9e29\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781\n\nstrain_lst=[0.9, 0.95, 1.0, 1.05, 1.1]\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_a9f92f7dc3638fe14db3100f475d53ff\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_183af0f41ada6264656dffc9744c3c5e\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_168e9a0ff9cf90db21caececb0a8c8d1\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_9c4a33eddd1f11d7ae6c5e49dd23d23e\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_de4f2b12d514a19843504d5875bc29d5\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83\n\ncalculation=scf\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_d55bd7b17af24b078d88a315024b4d85\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_869b94414d9798094f405fb6bd0e3cd2\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_36b52ba98fbcc998d1d4cac39503d087\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_e2d800d67b1bb461871269b7cdae217f\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_c0b9f0f7770ccf0df86eff101ac187fd\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add\n\nworking_directory=strain_0\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_ee58078fe0f8bfec3a3d645e8700c358\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_a0808c01620a40e06e8cbdf172a985bd\n\n\n\n\n\n1_d1f4f30489350f916d9534f48c4fe22f->volume_lst_8cde268e71366b3cd35ed9c611b4cb65\n\n\n\n\n\n1_c094ae884526dd57462266ef5cbd1834->energy_lst_d6803c69f7664ac6e0b2561e875f685e\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd\n\nworking_directory=strain_1\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_d1f4f30489350f916d9534f48c4fe22f\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_c094ae884526dd57462266ef5cbd1834\n\n\n\n\n\n2_a51def054beb6064b919b77bc8b7baea->volume_lst_8cde268e71366b3cd35ed9c611b4cb65\n\n\n\n\n\n2_39d164355b6a8c6b7ff241d68a3fc40a->energy_lst_d6803c69f7664ac6e0b2561e875f685e\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992\n\nworking_directory=strain_2\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_a51def054beb6064b919b77bc8b7baea\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_39d164355b6a8c6b7ff241d68a3fc40a\n\n\n\n\n\n3_f8ce46b8aff41e57ed36c19d59e69fa5->volume_lst_8cde268e71366b3cd35ed9c611b4cb65\n\n\n\n\n\n3_7850530d17101ab3a10b452e672370f1->energy_lst_d6803c69f7664ac6e0b2561e875f685e\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f\n\nworking_directory=strain_3\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_f8ce46b8aff41e57ed36c19d59e69fa5\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_7850530d17101ab3a10b452e672370f1\n\n\n\n\n\n4_1fe767b66b31eb8b611cca734e6843a7->volume_lst_8cde268e71366b3cd35ed9c611b4cb65\n\n\n\n\n\n4_a731b39f83e62b1052d7ea3536308d51->energy_lst_d6803c69f7664ac6e0b2561e875f685e\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7\n\nworking_directory=strain_4\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_1fe767b66b31eb8b611cca734e6843a7\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_a731b39f83e62b1052d7ea3536308d51\n\n\n\n\n\nenergy_lst_d6803c69f7664ac6e0b2561e875f685e->create_function_job_623224c37a138c6761de2c0b24d3eec7\n\n\n\n\n"},"metadata":{}}],"execution_count":24},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f was saved and received the ID: 1\nThe job get_dict_20400c1655d51731f9f5ffb50c2b401f was saved and received the ID: 2\nThe job calculate_qe_22b5d0934d89d8f08761e744e4612c30 was saved and received the ID: 3\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00271] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job generate_structures_2115236a4989acafb59b29e71f456689 was saved and received the ID: 4\nThe job get_dict_a23b0f53572e28c9f49dfc0f4fb8cf41 was saved and received the ID: 5\nThe job calculate_qe_3de99b6073748e7aba8e6f9f2d14cfa8 was saved and received the ID: 6\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00286] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_51a8dc80fa977d486f449e7a3c30cceb was saved and received the ID: 7\nThe job calculate_qe_63f014496afacf57a51adaba4ad917fe was saved and received the ID: 8\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00297] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_e9d53432a8af4527426b396e58131d27 was saved and received the ID: 9\nThe job calculate_qe_e0ce6ab4f9ee5d1390d723a597ebcb23 was saved and received the ID: 10\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00309] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_8bf4fd88a782c3547094fd088f7aeda2 was saved and received the ID: 11\nThe job calculate_qe_8e4df17468034108e280d5af48dbe266 was saved and received the ID: 12\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00320] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_3e4e8703ef1af4d93ce319f14544c770 was saved and received the ID: 13\nThe job calculate_qe_f480d034f43bea8218bde5fb00077415 was saved and received the ID: 14\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00331] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_list_eacb691fa58e50c0936b26623a5e36f9 was saved and received the ID: 15\nThe job get_list_73e49e6d46edd9e606cb80a72981093b was saved and received the ID: 16\nThe job plot_energy_volume_curve_46660954bfed80bf61b9fcd22b7c7ae1 was saved and received the ID: 17\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":25},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]} \ No newline at end of file diff --git a/aiida_simple.ipynb b/aiida_simple.ipynb index e938ac4..7aad4eb 100644 --- a/aiida_simple.ipynb +++ b/aiida_simple.ipynb @@ -1,279 +1 @@ -{ - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.8" - } - }, - "nbformat_minor": 4, - "nbformat": 4, - "cells": [ - { - "cell_type": "markdown", - "source": "# Aiida", - "metadata": {} - }, - { - "cell_type": "markdown", - "source": "## Define workflow with aiida", - "metadata": {} - }, - { - "cell_type": "code", - "source": "from python_workflow_definition.aiida import write_workflow_json\n\nfrom aiida_workgraph import WorkGraph, task\nfrom aiida import orm, load_profile\nload_profile()\n\nworkflow_json_filename = \"aiida_simple.json\"", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 1 - }, - { - "cell_type": "code", - "source": [ - "from simple_workflow import (\n", - " add_x_and_y as _add_x_and_y,\n", - " get_prod_and_div as _get_prod_and_div,\n", - ")" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 2 - }, - { - "cell_type": "code", - "source": "wg = WorkGraph(\"wg-simple\")", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 4 - }, - { - "cell_type": "code", - "source": [ - "get_prod_and_div_task = wg.add_task(\n", - " task(outputs=['prod', 'div'])(_get_prod_and_div),\n", - " name=\"get_prod_and_div\",\n", - " x=orm.Float(1),\n", - " y=orm.Float(2),\n", - ")" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 5 - }, - { - "cell_type": "code", - "source": [ - "add_x_and_y_task = wg.add_task(\n", - " _add_x_and_y,\n", - " name=\"add_x_and_y\",\n", - " x=get_prod_and_div_task.outputs.prod,\n", - " y=get_prod_and_div_task.outputs.div,\n", - ")" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 6 - }, - { - "cell_type": "code", - "source": "write_workflow_json(wg=wg, file_name=workflow_json_filename)", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "data": { - "text/plain": "{'nodes': {'0': 'simple_workflow.add_x_and_y',\n '1': 'simple_workflow.add_x_and_y_and_z',\n '2': 1,\n '3': 2},\n 'edges': [{'tn': 1, 'th': 'x', 'sn': 0, 'sh': 'x'},\n {'tn': 1, 'th': 'y', 'sn': 0, 'sh': 'y'},\n {'tn': 1, 'th': 'z', 'sn': 0, 'sh': 'z'},\n {'tn': 0, 'th': 'x', 'sn': 2, 'sh': None},\n {'tn': 0, 'th': 'y', 'sn': 3, 'sh': None}]}" - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 7 - }, - { - "cell_type": "code", - "source": "!cat {workflow_json_filename}", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": "{\n \"nodes\": {\n \"0\": \"simple_workflow.add_x_and_y\",\n \"1\": \"simple_workflow.add_x_and_y_and_z\",\n \"2\": 1,\n \"3\": 2\n },\n \"edges\": [\n {\n \"tn\": 1,\n \"th\": \"x\",\n \"sn\": 0,\n \"sh\": \"x\"\n },\n {\n \"tn\": 1,\n \"th\": \"y\",\n \"sn\": 0,\n \"sh\": \"y\"\n },\n {\n \"tn\": 1,\n \"th\": \"z\",\n \"sn\": 0,\n \"sh\": \"z\"\n },\n {\n \"tn\": 0,\n \"th\": \"x\",\n \"sn\": 2,\n \"sh\": null\n },\n {\n \"tn\": 0,\n \"th\": \"y\",\n \"sn\": 3,\n \"sh\": null\n }\n ]\n}" - } - ], - "execution_count": 8 - }, - { - "cell_type": "markdown", - "source": "## Load Workflow with jobflow", - "metadata": {} - }, - { - "cell_type": "code", - "source": "from python_workflow_definition.jobflow import load_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": "/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n" - } - ], - "execution_count": 9 - }, - { - "cell_type": "code", - "source": "from jobflow.managers.local import run_locally", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 10 - }, - { - "cell_type": "code", - "source": "flow = load_workflow_json(file_name=workflow_json_filename)", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 11 - }, - { - "cell_type": "code", - "source": "result = run_locally(flow)\nresult", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": "2025-04-02 14:36:37,425 INFO Started executing jobs locally\n2025-04-02 14:36:37,751 INFO Starting job - add_x_and_y (4bcb90c8-2c19-4981-a88e-56d5d24b5df9)\n2025-04-02 14:36:37,754 INFO Finished job - add_x_and_y (4bcb90c8-2c19-4981-a88e-56d5d24b5df9)\n2025-04-02 14:36:37,755 INFO Starting job - add_x_and_y_and_z (88bc90e5-09a0-443d-b24e-673cc6bc0819)\n2025-04-02 14:36:37,756 INFO Finished job - add_x_and_y_and_z (88bc90e5-09a0-443d-b24e-673cc6bc0819)\n2025-04-02 14:36:37,756 INFO Finished executing jobs locally\n" - }, - { - "data": { - "text/plain": "{'4bcb90c8-2c19-4981-a88e-56d5d24b5df9': {1: Response(output={'x': 1, 'y': 2, 'z': 3}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '88bc90e5-09a0-443d-b24e-673cc6bc0819': {1: Response(output=6, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}" - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 12 - }, - { - "cell_type": "markdown", - "source": "## Load Workflow with pyiron_base", - "metadata": {} - }, - { - "cell_type": "code", - "source": "from pyiron_base import Project", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 13 - }, - { - "cell_type": "code", - "source": "from python_workflow_definition.pyiron_base import load_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 14 - }, - { - "cell_type": "code", - "source": "pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "278f490ab20c4eaf9d39a75a7ee5231d", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": "0it [00:00, ?it/s]" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "execution_count": 15 - }, - { - "cell_type": "code", - "source": "delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "data": { - "image/svg+xml": "\n\n\n\n\ncreate_function_job_988efa8422518ba29903b66c63607fb8\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x71606f71f740>\n\n\n\nx_b8003ea81f8e4a9bdbfd3b4eb1e68e2b\n\nx=<pyiron_base.project.delayed.DelayedObject object at 0x71606f6efa70>\n\n\n\nx_b8003ea81f8e4a9bdbfd3b4eb1e68e2b->create_function_job_988efa8422518ba29903b66c63607fb8\n\n\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce\n\nx=1\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->x_b8003ea81f8e4a9bdbfd3b4eb1e68e2b\n\n\n\n\n\ny_f60ae41b1c92823db71999ac596241ab\n\ny=<pyiron_base.project.delayed.DelayedObject object at 0x71606f71f6e0>\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->y_f60ae41b1c92823db71999ac596241ab\n\n\n\n\n\nz_a926da40ec18154feb3f3bb147af8220\n\nz=<pyiron_base.project.delayed.DelayedObject object at 0x71606f71f2f0>\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->z_a926da40ec18154feb3f3bb147af8220\n\n\n\n\n\ny_f60ae41b1c92823db71999ac596241ab->create_function_job_988efa8422518ba29903b66c63607fb8\n\n\n\n\n\nz_a926da40ec18154feb3f3bb147af8220->create_function_job_988efa8422518ba29903b66c63607fb8\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6\n\ny=2\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->x_b8003ea81f8e4a9bdbfd3b4eb1e68e2b\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->y_f60ae41b1c92823db71999ac596241ab\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->z_a926da40ec18154feb3f3bb147af8220\n\n\n\n\n", - "text/plain": "" - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "execution_count": 16 - }, - { - "cell_type": "code", - "source": "delayed_object.pull()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": "The job add_x_and_y_68901482a2c5221cc845f828aabebd27 was saved and received the ID: 1\nThe job add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d was saved and received the ID: 2\n" - }, - { - "data": { - "text/plain": "6" - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 17 - } - ] -} +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.12.8"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Aiida","metadata":{}},{"cell_type":"markdown","source":"## Define workflow with aiida","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.aiida import write_workflow_json\n\nfrom aiida_workgraph import WorkGraph, task\nfrom aiida import orm, load_profile\nload_profile()\n\nworkflow_json_filename = \"aiida_simple.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"cell_type":"code","source":"from simple_workflow import (\n add_x_and_y as _add_x_and_y,\n get_prod_and_div as _get_prod_and_div,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"cell_type":"code","source":"wg = WorkGraph(\"wg-simple\")","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"cell_type":"code","source":"get_prod_and_div_task = wg.add_task(\n task(outputs=['prod', 'div'])(_get_prod_and_div),\n name=\"get_prod_and_div\",\n x=orm.Float(1),\n y=orm.Float(2),\n)","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"cell_type":"code","source":"add_x_and_y_task = wg.add_task(\n _add_x_and_y,\n name=\"add_x_and_y\",\n x=get_prod_and_div_task.outputs.prod,\n y=get_prod_and_div_task.outputs.div,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"cell_type":"code","source":"write_workflow_json(wg=wg, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[{"execution_count":6,"output_type":"execute_result","data":{"text/plain":"{'nodes': [{'id': 0, 'function': 'simple_workflow.get_prod_and_div'},\n {'id': 1, 'function': 'simple_workflow.add_x_and_y'},\n {'id': 2, 'value': 1.0},\n {'id': 3, 'value': 2.0}],\n 'edges': [{'target': 1, 'targetPort': 'x', 'source': 0, 'sourcePort': 'prod'},\n {'target': 1, 'targetPort': 'y', 'source': 0, 'sourcePort': 'div'},\n {'target': 0, 'targetPort': 'x', 'source': 2, 'sourcePort': None},\n {'target': 0, 'targetPort': 'y', 'source': 3, 'sourcePort': None}]}"},"metadata":{}}],"execution_count":6},{"cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\n \"nodes\": [\n {\n \"id\": 0,\n \"function\": \"simple_workflow.get_prod_and_div\"\n },\n {\n \"id\": 1,\n \"function\": \"simple_workflow.add_x_and_y\"\n },\n {\n \"id\": 2,\n \"value\": 1.0\n },\n {\n \"id\": 3,\n \"value\": 2.0\n }\n ],\n \"edges\": [\n {\n \"target\": 1,\n \"targetPort\": \"x\",\n \"source\": 0,\n \"sourcePort\": \"prod\"\n },\n {\n \"target\": 1,\n \"targetPort\": \"y\",\n \"source\": 0,\n \"sourcePort\": \"div\"\n },\n {\n \"target\": 0,\n \"targetPort\": \"x\",\n \"source\": 2,\n \"sourcePort\": null\n },\n {\n \"target\": 0,\n \"targetPort\": \"y\",\n \"source\": 3,\n \"sourcePort\": null\n }\n ]\n}"}],"execution_count":7},{"cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":8},{"cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 11:26:37,686 INFO Started executing jobs locally\n2025-04-12 11:26:38,283 INFO Starting job - get_prod_and_div (0860fd19-fa89-4edb-8b50-af48785706d6)\n2025-04-12 11:26:38,288 INFO Finished job - get_prod_and_div (0860fd19-fa89-4edb-8b50-af48785706d6)\n2025-04-12 11:26:38,289 INFO Starting job - add_x_and_y (0d599e5c-6d2e-40ba-aad0-2408ce95b333)\n2025-04-12 11:26:38,292 INFO Finished job - add_x_and_y (0d599e5c-6d2e-40ba-aad0-2408ce95b333)\n2025-04-12 11:26:38,293 INFO Finished executing jobs locally\n"},{"execution_count":11,"output_type":"execute_result","data":{"text/plain":"{'0860fd19-fa89-4edb-8b50-af48785706d6': {1: Response(output={'prod': 2.0, 'div': 0.5}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '0d599e5c-6d2e-40ba-aad0-2408ce95b333': {1: Response(output=2.5, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":11},{"cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"1cebe3e991ff4d8aacbea78a858011fb"}},"metadata":{}}],"execution_count":14},{"cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_49bb83dafd980a4392dc5ef2b4889708\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f7bf3a1b290>\n\n\n\nx_1055d41eef3ab4f2f8b82d781b5af899\n\nx=<pyiron_base.project.delayed.DelayedObject object at 0x7f7bf3a1b230>\n\n\n\nx_1055d41eef3ab4f2f8b82d781b5af899->create_function_job_49bb83dafd980a4392dc5ef2b4889708\n\n\n\n\n\nx_974924ff998969b91bfc8b2db5f854a1\n\nx=1.0\n\n\n\nx_974924ff998969b91bfc8b2db5f854a1->x_1055d41eef3ab4f2f8b82d781b5af899\n\n\n\n\n\ny_051e02d66e881687a217d6dc1733b4f6\n\ny=<pyiron_base.project.delayed.DelayedObject object at 0x7f7bf3a1b200>\n\n\n\nx_974924ff998969b91bfc8b2db5f854a1->y_051e02d66e881687a217d6dc1733b4f6\n\n\n\n\n\ny_051e02d66e881687a217d6dc1733b4f6->create_function_job_49bb83dafd980a4392dc5ef2b4889708\n\n\n\n\n\ny_f12a7f1986b9dd058dfc666dbe230b20\n\ny=2.0\n\n\n\ny_f12a7f1986b9dd058dfc666dbe230b20->x_1055d41eef3ab4f2f8b82d781b5af899\n\n\n\n\n\ny_f12a7f1986b9dd058dfc666dbe230b20->y_051e02d66e881687a217d6dc1733b4f6\n\n\n\n\n"},"metadata":{}}],"execution_count":15},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_prod_and_div_412196b9b2424d235e901638ba928e67 was saved and received the ID: 1\nThe job add_x_and_y_588bd492d8124e9ea68ef6b2990744db was saved and received the ID: 2\n"},{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"2.5"},"metadata":{}}],"execution_count":16}]} \ No newline at end of file diff --git a/jobflow_nfdi.ipynb b/jobflow_nfdi.ipynb index c754cd1..c43f853 100644 --- a/jobflow_nfdi.ipynb +++ b/jobflow_nfdi.ipynb @@ -1 +1 @@ -{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"048b53d1-db08-44ff-84cc-a4ff50032944","cell_type":"markdown","source":"# jobflow","metadata":{}},{"id":"106ded66-d202-46ac-82b0-2755ca309bdd","cell_type":"markdown","source":"https://github.com/BAMresearch/NFDI4IngScientificWorkflowRequirements","metadata":{}},{"id":"856b2ba2-93d5-4516-93e1-a1eac49c48f2","cell_type":"markdown","source":"## Define workflow with jobflow","metadata":{}},{"id":"89c02460-b543-442c-a27e-f1757dc2262e","cell_type":"code","source":"from jobflow import job, Flow\n\nfrom python_workflow_definition.jobflow import write_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":1},{"id":"a76e6c0a-98f2-4436-af10-8097da183341","cell_type":"code","source":"from nfdi_ing_workflow import (\n generate_mesh as _generate_mesh, \n convert_to_xdmf as _convert_to_xdmf,\n poisson as _poisson,\n plot_over_line as _plot_over_line,\n substitute_macros as _substitute_macros,\n compile_paper as _compile_paper,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"549ecf27-88ef-4e77-8bd4-b616cfdda2e4","cell_type":"code","source":"generate_mesh = job(_generate_mesh)\nconvert_to_xdmf = job(_convert_to_xdmf, data=[\"xdmf_file\", \"h5_file\"])\npoisson = job(_poisson, data=[\"numdofs\", \"pvd_file\", \"vtu_file\"])\nplot_over_line = job(_plot_over_line)\nsubstitute_macros = job(_substitute_macros)\ncompile_paper = job(_compile_paper)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"8d911f98-3b80-457f-a0f4-3cb37ebf1691","cell_type":"code","source":"domain_size = 2.0","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"71d411b6-cbec-489e-99e3-ba71680bcb5b","cell_type":"code","source":"gmsh_output_file = generate_mesh(\n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":5},{"id":"1d0d9804-f250-48b3-a5d0-a546d520f79b","cell_type":"code","source":"meshio_output_dict = convert_to_xdmf(\n gmsh_output_file=gmsh_output_file.output,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":6},{"id":"7b69bcff-e2b1-4d4a-b62c-6a1c86eeb590","cell_type":"code","source":"poisson_dict = poisson(\n meshio_output_xdmf=meshio_output_dict.output.xdmf_file, \n meshio_output_h5=meshio_output_dict.output.h5_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":7},{"id":"3c4a29b0-eb1e-490a-8be0-e03cfff15e0a","cell_type":"code","source":"pvbatch_output_file = plot_over_line(\n poisson_output_pvd_file=poisson_dict.output.pvd_file, \n poisson_output_vtu_file=poisson_dict.output.vtu_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":8},{"id":"a0a4c233-322d-4723-9627-62ca2487bfa9","cell_type":"code","source":"macros_tex_file = substitute_macros( \n pvbatch_output_file=pvbatch_output_file.output, \n ndofs=poisson_dict.output.numdofs, \n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":9},{"id":"c281408f-e63d-4380-a7e6-c595d49fbb8f","cell_type":"code","source":"paper_output = compile_paper(\n macros_tex=macros_tex_file.output, \n plot_file=pvbatch_output_file.output,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"id":"a384d70a-8ef5-4fdd-880c-56ac7eaf87b9","cell_type":"code","source":"flow = Flow([gmsh_output_file, meshio_output_dict, poisson_dict, pvbatch_output_file, macros_tex_file, paper_output])","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"fb23ad9c-76fd-4c0b-b546-e305d6c49796","cell_type":"code","source":"workflow_json_filename = \"jobflow_nfdi.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"4139547a-9717-4708-b1a5-8202a0382d77","cell_type":"code","source":"write_workflow_json(flow=flow, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"11a829e2-face-469f-b343-2c95763b1f13","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"4f3acabe-55df-479a-af4d-a23a80c4660d","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":14},{"id":"b6ba9444-a2c8-451b-b74c-19b0f69ba369","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"c3528d55-6bf7-47ed-a110-65c47446ba92","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)\nwg","metadata":{"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"ed7596c6123a451d836092fa381f61a7"}},"metadata":{}}],"execution_count":16},{"id":"5ef48778-4209-425f-8c6b-85a4cd2f92ec","cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/04/2025 02:47:35 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_mesh1\n04/04/2025 02:47:38 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|update_task_state]: Task: generate_mesh1, type: PyFunction, finished.\n04/04/2025 02:47:38 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: convert_to_xdmf2\n04/04/2025 02:47:41 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|update_task_state]: Task: convert_to_xdmf2, type: PyFunction, finished.\n04/04/2025 02:47:41 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: poisson3\n04/04/2025 02:47:46 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|update_task_state]: Task: poisson3, type: PyFunction, finished.\n04/04/2025 02:47:46 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_over_line4\n04/04/2025 02:47:48 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|update_task_state]: Task: plot_over_line4, type: PyFunction, finished.\n04/04/2025 02:47:49 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: substitute_macros5\n04/04/2025 02:47:50 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|update_task_state]: Task: substitute_macros5, type: PyFunction, finished.\n04/04/2025 02:47:50 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: compile_paper6\n04/04/2025 02:47:54 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|update_task_state]: Task: compile_paper6, type: PyFunction, finished.\n04/04/2025 02:47:54 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/04/2025 02:47:54 PM <1667> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [2|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":17},{"id":"397b16a2-e1ec-4eec-8562-1c84f585c347","cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"id":"fdde6b82-b51d-434a-a9a8-5a8c31bbb429","cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"id":"be4d5d93-e9f6-4072-a6be-0ee5dc93590f","cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":19},{"id":"4db75587-5f4c-416d-a1f6-c949077fa2ca","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"1176c70fb2c34f76bd1614266e7444ce"}},"metadata":{}}],"execution_count":20},{"id":"4452a648-d4c3-4f5f-8678-ffb54bef17dc","cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_ad78d751885eaefc2605f3dceb2cb1aa\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x72df51fc4260>\n\n\n\nmacros_tex_76816516c28d282cb376f4d1af23a98d\n\nmacros_tex=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7ee900>\n\n\n\nmacros_tex_76816516c28d282cb376f4d1af23a98d->create_function_job_ad78d751885eaefc2605f3dceb2cb1aa\n\n\n\n\n\npvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\npvbatch_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7ee540>\n\n\n\npvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644->macros_tex_76816516c28d282cb376f4d1af23a98d\n\n\n\n\n\npoisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2\n\npoisson_output_pvd_file=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7ee210>\n\n\n\npoisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2->pvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\nplot_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\nplot_file=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7ee540>\n\n\n\npoisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2->plot_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\nplot_file_0a1a8a5db5a6aedba38e6ab3d334b644->create_function_job_ad78d751885eaefc2605f3dceb2cb1aa\n\n\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a\n\nmeshio_output_xdmf=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7eddc0>\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a->poisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2\n\n\n\n\n\npoisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93\n\npoisson_output_vtu_file=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7ee1e0>\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a->poisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93\n\n\n\n\n\nndofs_c8554a1b671d87672c81c508324bd11c\n\nndofs=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7ee5d0>\n\n\n\nmeshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a->ndofs_c8554a1b671d87672c81c508324bd11c\n\n\n\n\n\npoisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93->pvbatch_output_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\npoisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93->plot_file_0a1a8a5db5a6aedba38e6ab3d334b644\n\n\n\n\n\nndofs_c8554a1b671d87672c81c508324bd11c->macros_tex_76816516c28d282cb376f4d1af23a98d\n\n\n\n\n\ngmsh_output_file_78213b177bb355e1585daee03d735c19\n\ngmsh_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7edb50>\n\n\n\ngmsh_output_file_78213b177bb355e1585daee03d735c19->meshio_output_xdmf_434a8c4d1345685ee8fc0b7e00e32d0a\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281\n\nmeshio_output_h5=<pyiron_base.project.delayed.DelayedObject object at 0x72df4f7edd90>\n\n\n\ngmsh_output_file_78213b177bb355e1585daee03d735c19->meshio_output_h5_efac48e79bcba581ea1c6da5811cd281\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281->poisson_output_pvd_file_b5205a1ffc6dca69db1460c486a2a2e2\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281->poisson_output_vtu_file_483d18e47061d6eead9dec38f84a4d93\n\n\n\n\n\nmeshio_output_h5_efac48e79bcba581ea1c6da5811cd281->ndofs_c8554a1b671d87672c81c508324bd11c\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20\n\ndomain_size=2.0\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->macros_tex_76816516c28d282cb376f4d1af23a98d\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->gmsh_output_file_78213b177bb355e1585daee03d735c19\n\n\n\n\n"},"metadata":{}}],"execution_count":21},{"id":"1c2760b6-96b4-4f44-ac49-a229d4a0cf67","cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job generate_mesh_0b48cf5155cd6802c17d20bb58104132 was saved and received the ID: 1\nThe job convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 was saved and received the ID: 2\nThe job poisson_a0224b23ceb2119d105a5d98ef37f93e was saved and received the ID: 3\nThe job plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b was saved and received the ID: 4\nThe job substitute_macros_874fc185ecec04b4cb9537c58b7efb7b was saved and received the ID: 5\nThe job compile_paper_3cee534ffe692833d37faf1fd2170cb6 was saved and received the ID: 6\n"},{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":22},{"id":"b3bba27e-ece9-4c02-834c-53e69844b140","cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n2 3 finished None \n3 4 finished None \n4 5 finished None \n5 6 finished None \n\n job \\\n0 generate_mesh_0b48cf5155cd6802c17d20bb58104132 \n1 convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 \n2 poisson_a0224b23ceb2119d105a5d98ef37f93e \n3 plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b \n4 substitute_macros_874fc185ecec04b4cb9537c58b7efb7b \n5 compile_paper_3cee534ffe692833d37faf1fd2170cb6 \n\n subjob projectpath \\\n0 /generate_mesh_0b48cf5155cd6802c17d20bb58104132 None \n1 /convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 None \n2 /poisson_a0224b23ceb2119d105a5d98ef37f93e None \n3 /plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b None \n4 /substitute_macros_874fc185ecec04b4cb9537c58b7efb7b None \n5 /compile_paper_3cee534ffe692833d37faf1fd2170cb6 None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-04 14:47:55.342358 None None \n1 /home/jovyan/test/ 2025-04-04 14:47:56.888684 None None \n2 /home/jovyan/test/ 2025-04-04 14:47:58.709291 None None \n3 /home/jovyan/test/ 2025-04-04 14:48:01.939684 None None \n4 /home/jovyan/test/ 2025-04-04 14:48:03.947338 None None \n5 /home/jovyan/test/ 2025-04-04 14:48:05.245018 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n2 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n3 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n4 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n5 pyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None \n2 PythonFunctionContainerJob 0.4 None None \n3 PythonFunctionContainerJob 0.4 None None \n4 PythonFunctionContainerJob 0.4 None None \n5 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNonegenerate_mesh_0b48cf5155cd6802c17d20bb58104132/generate_mesh_0b48cf5155cd6802c17d20bb58104132None/home/jovyan/test/2025-04-04 14:47:55.342358NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneconvert_to_xdmf_29ad6ec6927268429dc9aef8166fde43/convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43None/home/jovyan/test/2025-04-04 14:47:56.888684NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
23finishedNonepoisson_a0224b23ceb2119d105a5d98ef37f93e/poisson_a0224b23ceb2119d105a5d98ef37f93eNone/home/jovyan/test/2025-04-04 14:47:58.709291NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
34finishedNoneplot_over_line_82b37a42e0747f11d9a7f6318f63ac6b/plot_over_line_82b37a42e0747f11d9a7f6318f63ac6bNone/home/jovyan/test/2025-04-04 14:48:01.939684NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
45finishedNonesubstitute_macros_874fc185ecec04b4cb9537c58b7efb7b/substitute_macros_874fc185ecec04b4cb9537c58b7efb7bNone/home/jovyan/test/2025-04-04 14:48:03.947338NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
56finishedNonecompile_paper_3cee534ffe692833d37faf1fd2170cb6/compile_paper_3cee534ffe692833d37faf1fd2170cb6None/home/jovyan/test/2025-04-04 14:48:05.245018NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-1xkr44oj#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":23}]} \ No newline at end of file +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"048b53d1-db08-44ff-84cc-a4ff50032944","cell_type":"markdown","source":"# jobflow","metadata":{}},{"id":"106ded66-d202-46ac-82b0-2755ca309bdd","cell_type":"markdown","source":"https://github.com/BAMresearch/NFDI4IngScientificWorkflowRequirements","metadata":{}},{"id":"856b2ba2-93d5-4516-93e1-a1eac49c48f2","cell_type":"markdown","source":"## Define workflow with jobflow","metadata":{}},{"id":"89c02460-b543-442c-a27e-f1757dc2262e","cell_type":"code","source":"from jobflow import job, Flow\n\nfrom python_workflow_definition.jobflow import write_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":1},{"id":"a76e6c0a-98f2-4436-af10-8097da183341","cell_type":"code","source":"from nfdi_ing_workflow import (\n generate_mesh as _generate_mesh, \n convert_to_xdmf as _convert_to_xdmf,\n poisson as _poisson,\n plot_over_line as _plot_over_line,\n substitute_macros as _substitute_macros,\n compile_paper as _compile_paper,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"549ecf27-88ef-4e77-8bd4-b616cfdda2e4","cell_type":"code","source":"generate_mesh = job(_generate_mesh)\nconvert_to_xdmf = job(_convert_to_xdmf, data=[\"xdmf_file\", \"h5_file\"])\npoisson = job(_poisson, data=[\"numdofs\", \"pvd_file\", \"vtu_file\"])\nplot_over_line = job(_plot_over_line)\nsubstitute_macros = job(_substitute_macros)\ncompile_paper = job(_compile_paper)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"8d911f98-3b80-457f-a0f4-3cb37ebf1691","cell_type":"code","source":"domain_size = 2.0","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"71d411b6-cbec-489e-99e3-ba71680bcb5b","cell_type":"code","source":"gmsh_output_file = generate_mesh(\n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":5},{"id":"1d0d9804-f250-48b3-a5d0-a546d520f79b","cell_type":"code","source":"meshio_output_dict = convert_to_xdmf(\n gmsh_output_file=gmsh_output_file.output,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":6},{"id":"7b69bcff-e2b1-4d4a-b62c-6a1c86eeb590","cell_type":"code","source":"poisson_dict = poisson(\n meshio_output_xdmf=meshio_output_dict.output.xdmf_file, \n meshio_output_h5=meshio_output_dict.output.h5_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":7},{"id":"3c4a29b0-eb1e-490a-8be0-e03cfff15e0a","cell_type":"code","source":"pvbatch_output_file = plot_over_line(\n poisson_output_pvd_file=poisson_dict.output.pvd_file, \n poisson_output_vtu_file=poisson_dict.output.vtu_file,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":8},{"id":"a0a4c233-322d-4723-9627-62ca2487bfa9","cell_type":"code","source":"macros_tex_file = substitute_macros( \n pvbatch_output_file=pvbatch_output_file.output, \n ndofs=poisson_dict.output.numdofs, \n domain_size=domain_size,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":9},{"id":"c281408f-e63d-4380-a7e6-c595d49fbb8f","cell_type":"code","source":"paper_output = compile_paper(\n macros_tex=macros_tex_file.output, \n plot_file=pvbatch_output_file.output,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"id":"a384d70a-8ef5-4fdd-880c-56ac7eaf87b9","cell_type":"code","source":"flow = Flow([gmsh_output_file, meshio_output_dict, poisson_dict, pvbatch_output_file, macros_tex_file, paper_output])","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"fb23ad9c-76fd-4c0b-b546-e305d6c49796","cell_type":"code","source":"workflow_json_filename = \"jobflow_nfdi.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"4139547a-9717-4708-b1a5-8202a0382d77","cell_type":"code","source":"write_workflow_json(flow=flow, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"11a829e2-face-469f-b343-2c95763b1f13","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"4f3acabe-55df-479a-af4d-a23a80c4660d","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":14},{"id":"b6ba9444-a2c8-451b-b74c-19b0f69ba369","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"c3528d55-6bf7-47ed-a110-65c47446ba92","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)\nwg","metadata":{"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"5d6333b0abea4be984f5b8a1aa8aa9d5"}},"metadata":{}}],"execution_count":16},{"id":"5ef48778-4209-425f-8c6b-85a4cd2f92ec","cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 11:33:25 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_mesh1\n04/12/2025 11:33:29 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|update_task_state]: Task: generate_mesh1, type: PyFunction, finished.\n04/12/2025 11:33:29 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: convert_to_xdmf2\n04/12/2025 11:33:33 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|update_task_state]: Task: convert_to_xdmf2, type: PyFunction, finished.\n04/12/2025 11:33:33 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: poisson3\n04/12/2025 11:33:39 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|update_task_state]: Task: poisson3, type: PyFunction, finished.\n04/12/2025 11:33:39 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_over_line4\n04/12/2025 11:33:44 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|update_task_state]: Task: plot_over_line4, type: PyFunction, finished.\n04/12/2025 11:33:44 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: substitute_macros5\n04/12/2025 11:33:47 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|update_task_state]: Task: substitute_macros5, type: PyFunction, finished.\n04/12/2025 11:33:47 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: compile_paper6\n04/12/2025 11:33:53 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|update_task_state]: Task: compile_paper6, type: PyFunction, finished.\n04/12/2025 11:33:53 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 11:33:53 AM <2798> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [38|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":17},{"id":"397b16a2-e1ec-4eec-8562-1c84f585c347","cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"id":"fdde6b82-b51d-434a-a9a8-5a8c31bbb429","cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"id":"be4d5d93-e9f6-4072-a6be-0ee5dc93590f","cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":19},{"id":"4db75587-5f4c-416d-a1f6-c949077fa2ca","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"9a6ea2489a6847ab8375930b499b9a7f"}},"metadata":{}}],"execution_count":20},{"id":"4452a648-d4c3-4f5f-8678-ffb54bef17dc","cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b5b20>\n\n\n\nmacros_tex_d7e91609122a5793f44a95d7162f82c5\n\nmacros_tex=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b58b0>\n\n\n\nmacros_tex_d7e91609122a5793f44a95d7162f82c5->create_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\n\n\n\n\npvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\npvbatch_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b5580>\n\n\n\npvbatch_output_file_f6679ca13153e695cd36070d492d8182->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\npoisson_output_pvd_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b5220>\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006->pvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nplot_file_f6679ca13153e695cd36070d492d8182\n\nplot_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b5580>\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006->plot_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nplot_file_f6679ca13153e695cd36070d492d8182->create_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\n\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c\n\nmeshio_output_xdmf=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b4e30>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->poisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\npoisson_output_vtu_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b51f0>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->poisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\n\n\n\n\nndofs_c902b1da86c67e7079cdd6e960396773\n\nndofs=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b5610>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->ndofs_c902b1da86c67e7079cdd6e960396773\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512->pvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512->plot_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nndofs_c902b1da86c67e7079cdd6e960396773->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3\n\ngmsh_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b4bc0>\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3->meshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe\n\nmeshio_output_h5=<pyiron_base.project.delayed.DelayedObject object at 0x7f36eb2b4e00>\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3->meshio_output_h5_70513360c325554f1fb9101a93e5febe\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->poisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->poisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->ndofs_c902b1da86c67e7079cdd6e960396773\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20\n\ndomain_size=2.0\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->gmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3\n\n\n\n\n"},"metadata":{}}],"execution_count":21},{"id":"1c2760b6-96b4-4f44-ac49-a229d4a0cf67","cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job generate_mesh_0b48cf5155cd6802c17d20bb58104132 was saved and received the ID: 1\nThe job convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 was saved and received the ID: 2\nThe job poisson_a0224b23ceb2119d105a5d98ef37f93e was saved and received the ID: 3\nThe job plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b was saved and received the ID: 4\nThe job substitute_macros_874fc185ecec04b4cb9537c58b7efb7b was saved and received the ID: 5\nThe job compile_paper_3cee534ffe692833d37faf1fd2170cb6 was saved and received the ID: 6\n"},{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":22},{"id":"b3bba27e-ece9-4c02-834c-53e69844b140","cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":23,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n2 3 finished None \n3 4 finished None \n4 5 finished None \n5 6 finished None \n\n job \\\n0 generate_mesh_0b48cf5155cd6802c17d20bb58104132 \n1 convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 \n2 poisson_a0224b23ceb2119d105a5d98ef37f93e \n3 plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b \n4 substitute_macros_874fc185ecec04b4cb9537c58b7efb7b \n5 compile_paper_3cee534ffe692833d37faf1fd2170cb6 \n\n subjob projectpath \\\n0 /generate_mesh_0b48cf5155cd6802c17d20bb58104132 None \n1 /convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 None \n2 /poisson_a0224b23ceb2119d105a5d98ef37f93e None \n3 /plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b None \n4 /substitute_macros_874fc185ecec04b4cb9537c58b7efb7b None \n5 /compile_paper_3cee534ffe692833d37faf1fd2170cb6 None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-12 11:33:56.439299 None None \n1 /home/jovyan/test/ 2025-04-12 11:33:59.335257 None None \n2 /home/jovyan/test/ 2025-04-12 11:34:02.548200 None None \n3 /home/jovyan/test/ 2025-04-12 11:34:07.792544 None None \n4 /home/jovyan/test/ 2025-04-12 11:34:12.093499 None None \n5 /home/jovyan/test/ 2025-04-12 11:34:14.126943 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n2 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n3 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n4 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n5 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None \n2 PythonFunctionContainerJob 0.4 None None \n3 PythonFunctionContainerJob 0.4 None None \n4 PythonFunctionContainerJob 0.4 None None \n5 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNonegenerate_mesh_0b48cf5155cd6802c17d20bb58104132/generate_mesh_0b48cf5155cd6802c17d20bb58104132None/home/jovyan/test/2025-04-12 11:33:56.439299NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneconvert_to_xdmf_29ad6ec6927268429dc9aef8166fde43/convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43None/home/jovyan/test/2025-04-12 11:33:59.335257NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
23finishedNonepoisson_a0224b23ceb2119d105a5d98ef37f93e/poisson_a0224b23ceb2119d105a5d98ef37f93eNone/home/jovyan/test/2025-04-12 11:34:02.548200NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
34finishedNoneplot_over_line_82b37a42e0747f11d9a7f6318f63ac6b/plot_over_line_82b37a42e0747f11d9a7f6318f63ac6bNone/home/jovyan/test/2025-04-12 11:34:07.792544NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
45finishedNonesubstitute_macros_874fc185ecec04b4cb9537c58b7efb7b/substitute_macros_874fc185ecec04b4cb9537c58b7efb7bNone/home/jovyan/test/2025-04-12 11:34:12.093499NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
56finishedNonecompile_paper_3cee534ffe692833d37faf1fd2170cb6/compile_paper_3cee534ffe692833d37faf1fd2170cb6None/home/jovyan/test/2025-04-12 11:34:14.126943NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":23}]} \ No newline at end of file diff --git a/jobflow_qe.ipynb b/jobflow_qe.ipynb index eba1056..10158f1 100644 --- a/jobflow_qe.ipynb +++ b/jobflow_qe.ipynb @@ -1 +1 @@ -{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# jobflow","metadata":{}},{"cell_type":"markdown","source":"## Define workflow with jobflow","metadata":{}},{"cell_type":"code","source":"import numpy as np","metadata":{"trusted":false},"outputs":[],"execution_count":1},{"cell_type":"code","source":"from jobflow import job, Flow","metadata":{"trusted":false},"outputs":[],"execution_count":2},{"cell_type":"code","source":"from python_workflow_definition.jobflow import write_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":3},{"cell_type":"code","source":"from quantum_espresso_workflow import (\n calculate_qe as _calculate_qe, \n generate_structures as _generate_structures, \n get_bulk_structure as _get_bulk_structure, \n plot_energy_volume_curve as _plot_energy_volume_curve,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":4},{"cell_type":"code","source":"workflow_json_filename = \"jobflow_qe.json\"","metadata":{"trusted":false},"outputs":[],"execution_count":5},{"cell_type":"code","source":"calculate_qe = job(_calculate_qe, data=[\"energy\", \"volume\", \"structure\"])\ngenerate_structures = job(_generate_structures, data=[f\"s_{i}\" for i in range(100)])\nplot_energy_volume_curve = job(_plot_energy_volume_curve)\nget_bulk_structure = job(_get_bulk_structure)","metadata":{"trusted":false},"outputs":[],"execution_count":6},{"cell_type":"code","source":"pseudopotentials = {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}","metadata":{"trusted":false},"outputs":[],"execution_count":7},{"cell_type":"code","source":"structure = get_bulk_structure(\n element=\"Al\",\n a=4.05,\n cubic=True,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":8},{"cell_type":"code","source":"calc_mini = calculate_qe(\n working_directory=\"mini\",\n input_dict={\n \"structure\": structure.output,\n \"pseudopotentials\": pseudopotentials,\n \"kpts\": (3, 3, 3),\n \"calculation\": \"vc-relax\",\n \"smearing\": 0.02,\n },\n)","metadata":{"trusted":false},"outputs":[],"execution_count":9},{"cell_type":"code","source":"number_of_strains = 5\nstructure_lst = generate_structures(\n structure=calc_mini.output.structure,\n strain_lst=np.linspace(0.9, 1.1, number_of_strains),\n)","metadata":{"trusted":false},"outputs":[],"execution_count":10},{"cell_type":"code","source":"job_strain_lst = []\nfor i in range(number_of_strains):\n calc_strain = calculate_qe(\n working_directory=\"strain_\" + str(i),\n input_dict={\n \"structure\": getattr(structure_lst.output, f\"s_{i}\"),\n \"pseudopotentials\": pseudopotentials,\n \"kpts\": (3, 3, 3),\n \"calculation\": \"scf\",\n \"smearing\": 0.02,\n },\n )\n job_strain_lst.append(calc_strain)","metadata":{"trusted":false},"outputs":[],"execution_count":11},{"cell_type":"code","source":"plot = plot_energy_volume_curve(\n volume_lst=[job.output.volume for job in job_strain_lst],\n energy_lst=[job.output.energy for job in job_strain_lst],\n)","metadata":{"trusted":false},"outputs":[],"execution_count":12},{"cell_type":"code","source":"flow = Flow([structure, calc_mini, structure_lst] + job_strain_lst + [plot])","metadata":{"trusted":false},"outputs":[],"execution_count":13},{"cell_type":"code","source":"write_workflow_json(flow=flow, file_name=workflow_json_filename)","metadata":{"trusted":false},"outputs":[],"execution_count":14},{"cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"{\"nodes\": {\"0\": \"quantum_espresso_workflow.get_bulk_structure\", \"1\": \"quantum_espresso_workflow.calculate_qe\", \"2\": \"quantum_espresso_workflow.generate_structures\", \"3\": \"quantum_espresso_workflow.calculate_qe\", \"4\": \"quantum_espresso_workflow.calculate_qe\", \"5\": \"quantum_espresso_workflow.calculate_qe\", \"6\": \"quantum_espresso_workflow.calculate_qe\", \"7\": \"quantum_espresso_workflow.calculate_qe\", \"8\": \"quantum_espresso_workflow.plot_energy_volume_curve\", \"9\": \"Al\", \"10\": 4.05, \"11\": true, \"12\": \"mini\", \"13\": \"python_workflow_definition.shared.get_dict\", \"14\": {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}, \"15\": [3, 3, 3], \"16\": \"vc-relax\", \"17\": 0.02, \"18\": [0.9, 0.9500000000000001, 1.0, 1.05, 1.1], \"19\": \"strain_0\", \"20\": \"python_workflow_definition.shared.get_dict\", \"21\": \"scf\", \"22\": \"strain_1\", \"23\": \"python_workflow_definition.shared.get_dict\", \"24\": \"strain_2\", \"25\": \"python_workflow_definition.shared.get_dict\", \"26\": \"strain_3\", \"27\": \"python_workflow_definition.shared.get_dict\", \"28\": \"strain_4\", \"29\": \"python_workflow_definition.shared.get_dict\", \"30\": \"python_workflow_definition.shared.get_list\", \"31\": \"python_workflow_definition.shared.get_list\"}, \"edges\": [{\"tn\": 0, \"th\": \"element\", \"sn\": 9, \"sh\": null}, {\"tn\": 0, \"th\": \"a\", \"sn\": 10, \"sh\": null}, {\"tn\": 0, \"th\": \"cubic\", \"sn\": 11, \"sh\": null}, {\"tn\": 1, \"th\": \"working_directory\", \"sn\": 12, \"sh\": null}, {\"tn\": 13, \"th\": \"structure\", \"sn\": 0, \"sh\": null}, {\"tn\": 13, \"th\": \"pseudopotentials\", \"sn\": 14, \"sh\": null}, {\"tn\": 13, \"th\": \"kpts\", \"sn\": 15, \"sh\": null}, {\"tn\": 13, \"th\": \"calculation\", \"sn\": 16, \"sh\": null}, {\"tn\": 13, \"th\": \"smearing\", \"sn\": 17, \"sh\": null}, {\"tn\": 1, \"th\": \"input_dict\", \"sn\": 13, \"sh\": null}, {\"tn\": 2, \"th\": \"structure\", \"sn\": 1, \"sh\": \"structure\"}, {\"tn\": 2, \"th\": \"strain_lst\", \"sn\": 18, \"sh\": null}, {\"tn\": 3, \"th\": \"working_directory\", \"sn\": 19, \"sh\": null}, {\"tn\": 20, \"th\": \"structure\", \"sn\": 2, \"sh\": \"s_0\"}, {\"tn\": 20, \"th\": \"pseudopotentials\", \"sn\": 14, \"sh\": null}, {\"tn\": 20, \"th\": \"kpts\", \"sn\": 15, \"sh\": null}, {\"tn\": 20, \"th\": \"calculation\", \"sn\": 21, \"sh\": null}, {\"tn\": 20, \"th\": \"smearing\", \"sn\": 17, \"sh\": null}, {\"tn\": 3, \"th\": \"input_dict\", \"sn\": 20, \"sh\": null}, {\"tn\": 4, \"th\": \"working_directory\", \"sn\": 22, \"sh\": null}, {\"tn\": 23, \"th\": \"structure\", \"sn\": 2, \"sh\": \"s_1\"}, {\"tn\": 23, \"th\": \"pseudopotentials\", \"sn\": 14, \"sh\": null}, {\"tn\": 23, \"th\": \"kpts\", \"sn\": 15, \"sh\": null}, {\"tn\": 23, \"th\": \"calculation\", \"sn\": 21, \"sh\": null}, {\"tn\": 23, \"th\": \"smearing\", \"sn\": 17, \"sh\": null}, {\"tn\": 4, \"th\": \"input_dict\", \"sn\": 23, \"sh\": null}, {\"tn\": 5, \"th\": \"working_directory\", \"sn\": 24, \"sh\": null}, {\"tn\": 25, \"th\": \"structure\", \"sn\": 2, \"sh\": \"s_2\"}, {\"tn\": 25, \"th\": \"pseudopotentials\", \"sn\": 14, \"sh\": null}, {\"tn\": 25, \"th\": \"kpts\", \"sn\": 15, \"sh\": null}, {\"tn\": 25, \"th\": \"calculation\", \"sn\": 21, \"sh\": null}, {\"tn\": 25, \"th\": \"smearing\", \"sn\": 17, \"sh\": null}, {\"tn\": 5, \"th\": \"input_dict\", \"sn\": 25, \"sh\": null}, {\"tn\": 6, \"th\": \"working_directory\", \"sn\": 26, \"sh\": null}, {\"tn\": 27, \"th\": \"structure\", \"sn\": 2, \"sh\": \"s_3\"}, {\"tn\": 27, \"th\": \"pseudopotentials\", \"sn\": 14, \"sh\": null}, {\"tn\": 27, \"th\": \"kpts\", \"sn\": 15, \"sh\": null}, {\"tn\": 27, \"th\": \"calculation\", \"sn\": 21, \"sh\": null}, {\"tn\": 27, \"th\": \"smearing\", \"sn\": 17, \"sh\": null}, {\"tn\": 6, \"th\": \"input_dict\", \"sn\": 27, \"sh\": null}, {\"tn\": 7, \"th\": \"working_directory\", \"sn\": 28, \"sh\": null}, {\"tn\": 29, \"th\": \"structure\", \"sn\": 2, \"sh\": \"s_4\"}, {\"tn\": 29, \"th\": \"pseudopotentials\", \"sn\": 14, \"sh\": null}, {\"tn\": 29, \"th\": \"kpts\", \"sn\": 15, \"sh\": null}, {\"tn\": 29, \"th\": \"calculation\", \"sn\": 21, \"sh\": null}, {\"tn\": 29, \"th\": \"smearing\", \"sn\": 17, \"sh\": null}, {\"tn\": 7, \"th\": \"input_dict\", \"sn\": 29, \"sh\": null}, {\"tn\": 30, \"th\": \"0\", \"sn\": 3, \"sh\": \"volume\"}, {\"tn\": 30, \"th\": \"1\", \"sn\": 4, \"sh\": \"volume\"}, {\"tn\": 30, \"th\": \"2\", \"sn\": 5, \"sh\": \"volume\"}, {\"tn\": 30, \"th\": \"3\", \"sn\": 6, \"sh\": \"volume\"}, {\"tn\": 30, \"th\": \"4\", \"sn\": 7, \"sh\": \"volume\"}, {\"tn\": 8, \"th\": \"volume_lst\", \"sn\": 30, \"sh\": null}, {\"tn\": 31, \"th\": \"0\", \"sn\": 3, \"sh\": \"energy\"}, {\"tn\": 31, \"th\": \"1\", \"sn\": 4, \"sh\": \"energy\"}, {\"tn\": 31, \"th\": \"2\", \"sn\": 5, \"sh\": \"energy\"}, {\"tn\": 31, \"th\": \"3\", \"sn\": 6, \"sh\": \"energy\"}, {\"tn\": 31, \"th\": \"4\", \"sn\": 7, \"sh\": \"energy\"}, {\"tn\": 8, \"th\": \"energy_lst\", \"sn\": 31, \"sh\": null}]}"}],"execution_count":15},{"cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":false},"outputs":[{"data":{"text/plain":"Profile"},"execution_count":16,"metadata":{},"output_type":"execute_result"}],"execution_count":16},{"cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":17},{"cell_type":"code","source":"wg = load_workflow_json(workflow_json_filename)","metadata":{"trusted":false},"outputs":[],"execution_count":18},{"cell_type":"code","source":"wg","metadata":{"trusted":false},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"4b2f21f2dbc74d8fa206428847590b35","version_major":2,"version_minor":1},"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…"},"execution_count":19,"metadata":{},"output_type":"execute_result"}],"execution_count":19},{"cell_type":"code","source":"wg.run()","metadata":{"trusted":false},"outputs":[{"name":"stderr","output_type":"stream","text":"04/01/2025 10:52:32 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure1\n04/01/2025 10:52:33 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_bulk_structure1, type: PyFunction, finished.\n04/01/2025 10:52:34 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10\n04/01/2025 10:52:35 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.\n04/01/2025 10:52:36 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe2\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:52:55 AM <3361007> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])\n04/01/2025 10:52:55 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: calculate_qe2, type: PyFunction, finished.\n04/01/2025 10:52:56 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures3\n04/01/2025 10:52:57 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: generate_structures3, type: PyFunction, finished.\n04/01/2025 10:52:58 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict11,get_dict12,get_dict13,get_dict14,get_dict15\n04/01/2025 10:52:59 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_dict11, type: PyFunction, finished.\n04/01/2025 10:52:59 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict13,get_dict14,get_dict15,calculate_qe4\n04/01/2025 10:53:00 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.\n04/01/2025 10:53:01 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict13,get_dict14,get_dict15,calculate_qe4,calculate_qe5\n04/01/2025 10:53:02 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_dict13, type: PyFunction, finished.\n04/01/2025 10:53:03 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict15,calculate_qe4,calculate_qe5,calculate_qe6\n04/01/2025 10:53:04 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.\n04/01/2025 10:53:04 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict15,calculate_qe4,calculate_qe5,calculate_qe6,calculate_qe7\n04/01/2025 10:53:05 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_dict15, type: PyFunction, finished.\n04/01/2025 10:53:06 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe4,calculate_qe5,calculate_qe6,calculate_qe7,calculate_qe8\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:53:10 AM <3361007> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:53:10 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: calculate_qe4, type: PyFunction, finished.\n04/01/2025 10:53:11 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe5,calculate_qe6,calculate_qe7,calculate_qe8\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:53:15 AM <3361007> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:53:16 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: calculate_qe5, type: PyFunction, finished.\n04/01/2025 10:53:16 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6,calculate_qe7,calculate_qe8\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:53:21 AM <3361007> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:53:21 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.\n04/01/2025 10:53:22 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe7,calculate_qe8\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:53:27 AM <3361007> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:53:28 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: calculate_qe7, type: PyFunction, finished.\n04/01/2025 10:53:28 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe8\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:53:34 AM <3361007> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:53:34 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: calculate_qe8, type: PyFunction, finished.\n04/01/2025 10:53:35 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list16,get_list17\n04/01/2025 10:53:36 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_list16, type: PyFunction, finished.\n04/01/2025 10:53:36 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17\n04/01/2025 10:53:37 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.\n04/01/2025 10:53:38 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve9\n04/01/2025 10:53:39 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve9, type: PyFunction, finished.\n04/01/2025 10:53:39 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/01/2025 10:53:41 AM <3361007> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51189|WorkGraphEngine|finalize]: Finalize workgraph.\n"},{"data":{"image/png":"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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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","text/plain":"
"},"metadata":{},"output_type":"display_data"}],"execution_count":20},{"cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":false},"outputs":[],"execution_count":21},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":22},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":false},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"4caef04a260d4db6a145bd9ce8cea6f8","version_major":2,"version_minor":0},"text/plain":" 0%| | 0/17 [00:00\n\n\n\n\ncreate_function_job_8efde306e01476f31dc88ed9f939e365\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f07b4d0>\n\n\n\nvolume_lst_0a067e4e854f258474f2cc9c270ffcf6\n\nvolume_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f07ae90>\n\n\n\nvolume_lst_0a067e4e854f258474f2cc9c270ffcf6->create_function_job_8efde306e01476f31dc88ed9f939e365\n\n\n\n\n\n0_955c8ec5df91e1384fd3c2479d5b4432\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7f34341fba10>\n\n\n\n0_955c8ec5df91e1384fd3c2479d5b4432->volume_lst_0a067e4e854f258474f2cc9c270ffcf6\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add\n\nworking_directory=strain_0\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_955c8ec5df91e1384fd3c2479d5b4432\n\n\n\n\n\n0_e0b6aa6ef68a4efb034264a4785e3ac9\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7f342ef00450>\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_e0b6aa6ef68a4efb034264a4785e3ac9\n\n\n\n\n\nenergy_lst_83f0ff69cd84017d2fc83be62d3dc606\n\nenergy_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f079d50>\n\n\n\n0_e0b6aa6ef68a4efb034264a4785e3ac9->energy_lst_83f0ff69cd84017d2fc83be62d3dc606\n\n\n\n\n\ninput_dict_36e198dfa349bc60853925c9e11af2db\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f16dcd0>\n\n\n\ninput_dict_36e198dfa349bc60853925c9e11af2db->0_955c8ec5df91e1384fd3c2479d5b4432\n\n\n\n\n\ninput_dict_36e198dfa349bc60853925c9e11af2db->0_e0b6aa6ef68a4efb034264a4785e3ac9\n\n\n\n\n\nstructure_1c51bcd538be036a6d4392d0103016bb\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f16c050>\n\n\n\nstructure_1c51bcd538be036a6d4392d0103016bb->input_dict_36e198dfa349bc60853925c9e11af2db\n\n\n\n\n\nstructure_c113e8251b29845018e428419a1d2698\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f0ebc90>\n\n\n\nstructure_c113e8251b29845018e428419a1d2698->structure_1c51bcd538be036a6d4392d0103016bb\n\n\n\n\n\nstructure_ed6f3c962abe8050a51f414adbd0ff7a\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342d318d50>\n\n\n\nstructure_c113e8251b29845018e428419a1d2698->structure_ed6f3c962abe8050a51f414adbd0ff7a\n\n\n\n\n\nstructure_edcc7169afc8a5c42e4e69d7b96654fa\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f0e8290>\n\n\n\nstructure_c113e8251b29845018e428419a1d2698->structure_edcc7169afc8a5c42e4e69d7b96654fa\n\n\n\n\n\nstructure_2fca7fbe3b1c006f5217c598d1950e6f\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f0ea310>\n\n\n\nstructure_c113e8251b29845018e428419a1d2698->structure_2fca7fbe3b1c006f5217c598d1950e6f\n\n\n\n\n\nstructure_adc90bb48c6eddf6eb0a8e6fca83ecd3\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f0ebd50>\n\n\n\nstructure_c113e8251b29845018e428419a1d2698->structure_adc90bb48c6eddf6eb0a8e6fca83ecd3\n\n\n\n\n\ninput_dict_8c2fc93e386760501cc2bc5fd279936b\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f16c150>\n\n\n\nstructure_ed6f3c962abe8050a51f414adbd0ff7a->input_dict_8c2fc93e386760501cc2bc5fd279936b\n\n\n\n\n\ninput_dict_b10ce6f7b36928314fdebf405fbd3096\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f16c990>\n\n\n\nstructure_edcc7169afc8a5c42e4e69d7b96654fa->input_dict_b10ce6f7b36928314fdebf405fbd3096\n\n\n\n\n\ninput_dict_cd4c438e70833af210ca2f2cb6cc3433\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f16e4d0>\n\n\n\nstructure_2fca7fbe3b1c006f5217c598d1950e6f->input_dict_cd4c438e70833af210ca2f2cb6cc3433\n\n\n\n\n\ninput_dict_8ef0642f5bd8fbe8221152b1e1563ebb\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f16d490>\n\n\n\nstructure_adc90bb48c6eddf6eb0a8e6fca83ecd3->input_dict_8ef0642f5bd8fbe8221152b1e1563ebb\n\n\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7\n\nworking_directory=mini\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7->structure_c113e8251b29845018e428419a1d2698\n\n\n\n\n\ninput_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f342eb51350>\n\n\n\ninput_dict_41dfbc5759c1782c1aadb6df0b0ee06b->structure_c113e8251b29845018e428419a1d2698\n\n\n\n\n\nstructure_f4511b90f1d10b2338ab6a9d2263a4f7\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7f342ee1e250>\n\n\n\nstructure_f4511b90f1d10b2338ab6a9d2263a4f7->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n\n\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0\n\nelement=Al\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n\n\n\n\n\na_aea0574e321c6f75f923c059730e9537\n\na=4.05\n\n\n\na_aea0574e321c6f75f923c059730e9537->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n\n\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a\n\ncubic=True\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10\n\npseudopotentials={'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_36e198dfa349bc60853925c9e11af2db\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_8c2fc93e386760501cc2bc5fd279936b\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_b10ce6f7b36928314fdebf405fbd3096\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_cd4c438e70833af210ca2f2cb6cc3433\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_8ef0642f5bd8fbe8221152b1e1563ebb\n\n\n\n\n\n1_09bcd65217c9d6874322ae0074b75a51\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f07b610>\n\n\n\ninput_dict_8c2fc93e386760501cc2bc5fd279936b->1_09bcd65217c9d6874322ae0074b75a51\n\n\n\n\n\n1_91529aefacc5a546fd65f5387f2b09f0\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7f342ef029d0>\n\n\n\ninput_dict_8c2fc93e386760501cc2bc5fd279936b->1_91529aefacc5a546fd65f5387f2b09f0\n\n\n\n\n\n2_07f0a3b279b1055343ff43468be23188\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f07ae50>\n\n\n\ninput_dict_b10ce6f7b36928314fdebf405fbd3096->2_07f0a3b279b1055343ff43468be23188\n\n\n\n\n\n2_c2670b3885c2bf5fcb820fa32aa73b7f\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7f34341fae50>\n\n\n\ninput_dict_b10ce6f7b36928314fdebf405fbd3096->2_c2670b3885c2bf5fcb820fa32aa73b7f\n\n\n\n\n\n3_21682a7b33b71609683ab10fd691fc4e\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f07be50>\n\n\n\ninput_dict_cd4c438e70833af210ca2f2cb6cc3433->3_21682a7b33b71609683ab10fd691fc4e\n\n\n\n\n\n3_0e7920e7e7612861a802811dee582e3e\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7f34341fbb50>\n\n\n\ninput_dict_cd4c438e70833af210ca2f2cb6cc3433->3_0e7920e7e7612861a802811dee582e3e\n\n\n\n\n\n4_6bdcb72224c727e1bd635884dfd1b61d\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7f342f078590>\n\n\n\ninput_dict_8ef0642f5bd8fbe8221152b1e1563ebb->4_6bdcb72224c727e1bd635884dfd1b61d\n\n\n\n\n\n4_b390133ee37d66c42b3588de6fcc919e\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7f34341f8f10>\n\n\n\ninput_dict_8ef0642f5bd8fbe8221152b1e1563ebb->4_b390133ee37d66c42b3588de6fcc919e\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa\n\nkpts=[3, 3, 3]\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_36e198dfa349bc60853925c9e11af2db\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_8c2fc93e386760501cc2bc5fd279936b\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_b10ce6f7b36928314fdebf405fbd3096\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_cd4c438e70833af210ca2f2cb6cc3433\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_8ef0642f5bd8fbe8221152b1e1563ebb\n\n\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34\n\ncalculation=vc-relax\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9\n\nsmearing=0.02\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_36e198dfa349bc60853925c9e11af2db\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_8c2fc93e386760501cc2bc5fd279936b\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_b10ce6f7b36928314fdebf405fbd3096\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_cd4c438e70833af210ca2f2cb6cc3433\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_8ef0642f5bd8fbe8221152b1e1563ebb\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86\n\nstrain_lst=[0.9, 0.9500000000000001, 1.0, 1.05, 1.1]\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_1c51bcd538be036a6d4392d0103016bb\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_ed6f3c962abe8050a51f414adbd0ff7a\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_edcc7169afc8a5c42e4e69d7b96654fa\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_2fca7fbe3b1c006f5217c598d1950e6f\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_adc90bb48c6eddf6eb0a8e6fca83ecd3\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83\n\ncalculation=scf\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_36e198dfa349bc60853925c9e11af2db\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_8c2fc93e386760501cc2bc5fd279936b\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_b10ce6f7b36928314fdebf405fbd3096\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_cd4c438e70833af210ca2f2cb6cc3433\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_8ef0642f5bd8fbe8221152b1e1563ebb\n\n\n\n\n\n1_09bcd65217c9d6874322ae0074b75a51->volume_lst_0a067e4e854f258474f2cc9c270ffcf6\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd\n\nworking_directory=strain_1\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_09bcd65217c9d6874322ae0074b75a51\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_91529aefacc5a546fd65f5387f2b09f0\n\n\n\n\n\n1_91529aefacc5a546fd65f5387f2b09f0->energy_lst_83f0ff69cd84017d2fc83be62d3dc606\n\n\n\n\n\n2_07f0a3b279b1055343ff43468be23188->volume_lst_0a067e4e854f258474f2cc9c270ffcf6\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992\n\nworking_directory=strain_2\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_07f0a3b279b1055343ff43468be23188\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_c2670b3885c2bf5fcb820fa32aa73b7f\n\n\n\n\n\n2_c2670b3885c2bf5fcb820fa32aa73b7f->energy_lst_83f0ff69cd84017d2fc83be62d3dc606\n\n\n\n\n\n3_21682a7b33b71609683ab10fd691fc4e->volume_lst_0a067e4e854f258474f2cc9c270ffcf6\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f\n\nworking_directory=strain_3\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_21682a7b33b71609683ab10fd691fc4e\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_0e7920e7e7612861a802811dee582e3e\n\n\n\n\n\n3_0e7920e7e7612861a802811dee582e3e->energy_lst_83f0ff69cd84017d2fc83be62d3dc606\n\n\n\n\n\n4_6bdcb72224c727e1bd635884dfd1b61d->volume_lst_0a067e4e854f258474f2cc9c270ffcf6\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7\n\nworking_directory=strain_4\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_6bdcb72224c727e1bd635884dfd1b61d\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_b390133ee37d66c42b3588de6fcc919e\n\n\n\n\n\n4_b390133ee37d66c42b3588de6fcc919e->energy_lst_83f0ff69cd84017d2fc83be62d3dc606\n\n\n\n\n\nenergy_lst_83f0ff69cd84017d2fc83be62d3dc606->create_function_job_8efde306e01476f31dc88ed9f939e365\n\n\n\n\n","text/plain":""},"metadata":{},"output_type":"display_data"}],"execution_count":24},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f was saved and received the ID: 4\nThe job get_dict_bbed7e528d369f5fa02591748be3166d was saved and received the ID: 5\nThe job calculate_qe_a8254d13768b11f13ee9368124819d22 was saved and received the ID: 6\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job generate_structures_7c00a7a36fdf7a83905a933d6458c9f6 was saved and received the ID: 7\nThe job get_dict_9fea1887c87374cda848be8c394400b6 was saved and received the ID: 8\nThe job calculate_qe_a2a0f9b449a97089f66fd4697c1184d4 was saved and received the ID: 9\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_736160eef13d04e2065cf2c38c62bf47 was saved and received the ID: 10\nThe job calculate_qe_42a1041b6acc70e91f55e4a2a877ec0b was saved and received the ID: 11\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_618fccf949c159d8a1573c4cda125aae was saved and received the ID: 12\nThe job calculate_qe_d5f2ff242c26f0b8badef6df9a0504a5 was saved and received the ID: 13\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_61f81e04658f67188ad4502e007fe475 was saved and received the ID: 14\nThe job calculate_qe_2f09fb4c3a6570dbdc141588f072fec6 was saved and received the ID: 15\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_0bf0210bb59731567645c21e9c07d901 was saved and received the ID: 16\nThe job calculate_qe_8e0081288044bb59e2eb975aab60c98c was saved and received the ID: 17\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_list_56b7ebcd322ece2c1200ba8d040fc0bd was saved and received the ID: 18\nThe job get_list_8d6e79fedf35b08653113905df993b7b was saved and received the ID: 19\nThe job plot_energy_volume_curve_fa6e68740c464fa9316d532209ff492f was saved and received the ID: 20\n"},{"data":{"image/png":"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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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","text/plain":"
"},"metadata":{},"output_type":"display_data"}],"execution_count":25},{"cell_type":"code","source":"","metadata":{"trusted":false},"outputs":[],"execution_count":null}]} \ No newline at end of file +{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# jobflow","metadata":{}},{"cell_type":"markdown","source":"## Define workflow with jobflow","metadata":{}},{"cell_type":"code","source":"import numpy as np","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"cell_type":"code","source":"from jobflow import job, Flow","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":2},{"cell_type":"code","source":"from python_workflow_definition.jobflow import write_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"cell_type":"code","source":"from quantum_espresso_workflow import (\n calculate_qe as _calculate_qe, \n generate_structures as _generate_structures, \n get_bulk_structure as _get_bulk_structure, \n plot_energy_volume_curve as _plot_energy_volume_curve,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"cell_type":"code","source":"workflow_json_filename = \"jobflow_qe.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"cell_type":"code","source":"calculate_qe = job(_calculate_qe, data=[\"energy\", \"volume\", \"structure\"])\ngenerate_structures = job(_generate_structures, data=[f\"s_{i}\" for i in range(100)])\nplot_energy_volume_curve = job(_plot_energy_volume_curve)\nget_bulk_structure = job(_get_bulk_structure)","metadata":{"trusted":true},"outputs":[],"execution_count":6},{"cell_type":"code","source":"pseudopotentials = {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"cell_type":"code","source":"structure = get_bulk_structure(\n element=\"Al\",\n a=4.05,\n cubic=True,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"cell_type":"code","source":"calc_mini = calculate_qe(\n working_directory=\"mini\",\n input_dict={\n \"structure\": structure.output,\n \"pseudopotentials\": pseudopotentials,\n \"kpts\": (3, 3, 3),\n \"calculation\": \"vc-relax\",\n \"smearing\": 0.02,\n },\n)","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"cell_type":"code","source":"number_of_strains = 5\nstructure_lst = generate_structures(\n structure=calc_mini.output.structure,\n strain_lst=np.linspace(0.9, 1.1, number_of_strains),\n)","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"cell_type":"code","source":"job_strain_lst = []\nfor i in range(number_of_strains):\n calc_strain = calculate_qe(\n working_directory=\"strain_\" + str(i),\n input_dict={\n \"structure\": getattr(structure_lst.output, f\"s_{i}\"),\n \"pseudopotentials\": pseudopotentials,\n \"kpts\": (3, 3, 3),\n \"calculation\": \"scf\",\n \"smearing\": 0.02,\n },\n )\n job_strain_lst.append(calc_strain)","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"cell_type":"code","source":"plot = plot_energy_volume_curve(\n volume_lst=[job.output.volume for job in job_strain_lst],\n energy_lst=[job.output.energy for job in job_strain_lst],\n)","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"cell_type":"code","source":"flow = Flow([structure, calc_mini, structure_lst] + job_strain_lst + [plot])","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"cell_type":"code","source":"write_workflow_json(flow=flow, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":14},{"cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\"nodes\": [{\"id\": 0, \"function\": \"quantum_espresso_workflow.get_bulk_structure\"}, {\"id\": 1, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 2, \"function\": \"quantum_espresso_workflow.generate_structures\"}, {\"id\": 3, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 4, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 5, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 6, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 7, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 8, \"function\": \"quantum_espresso_workflow.plot_energy_volume_curve\"}, {\"id\": 9, \"value\": \"Al\"}, {\"id\": 10, \"value\": 4.05}, {\"id\": 11, \"value\": true}, {\"id\": 12, \"value\": \"mini\"}, {\"id\": 13, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 14, \"value\": {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}}, {\"id\": 15, \"value\": [3, 3, 3]}, {\"id\": 16, \"value\": \"vc-relax\"}, {\"id\": 17, \"value\": 0.02}, {\"id\": 18, \"value\": [0.9, 0.9500000000000001, 1.0, 1.05, 1.1]}, {\"id\": 19, \"value\": \"strain_0\"}, {\"id\": 20, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 21, \"value\": \"scf\"}, {\"id\": 22, \"value\": \"strain_1\"}, {\"id\": 23, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 24, \"value\": \"strain_2\"}, {\"id\": 25, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 26, \"value\": \"strain_3\"}, {\"id\": 27, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 28, \"value\": \"strain_4\"}, {\"id\": 29, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 30, \"function\": \"python_workflow_definition.shared.get_list\"}, {\"id\": 31, \"function\": \"python_workflow_definition.shared.get_list\"}], \"edges\": [{\"target\": 0, \"targetPort\": \"element\", \"source\": 9, \"sourcePort\": null}, {\"target\": 0, \"targetPort\": \"a\", \"source\": 10, \"sourcePort\": null}, {\"target\": 0, \"targetPort\": \"cubic\", \"source\": 11, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"working_directory\", \"source\": 12, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"structure\", \"source\": 0, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"pseudopotentials\", \"source\": 14, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"kpts\", \"source\": 15, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"calculation\", \"source\": 16, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"smearing\", \"source\": 17, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"input_dict\", \"source\": 13, \"sourcePort\": null}, {\"target\": 2, \"targetPort\": \"structure\", \"source\": 1, \"sourcePort\": \"structure\"}, {\"target\": 2, \"targetPort\": \"strain_lst\", \"source\": 18, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"working_directory\", \"source\": 19, \"sourcePort\": null}, {\"target\": 20, \"targetPort\": \"structure\", \"source\": 2, \"sourcePort\": \"s_0\"}, {\"target\": 20, \"targetPort\": \"pseudopotentials\", \"source\": 14, \"sourcePort\": null}, {\"target\": 20, \"targetPort\": \"kpts\", \"source\": 15, \"sourcePort\": null}, {\"target\": 20, \"targetPort\": \"calculation\", \"source\": 21, \"sourcePort\": null}, {\"target\": 20, \"targetPort\": \"smearing\", \"source\": 17, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"input_dict\", \"source\": 20, \"sourcePort\": null}, {\"target\": 4, \"targetPort\": \"working_directory\", \"source\": 22, \"sourcePort\": null}, {\"target\": 23, \"targetPort\": \"structure\", \"source\": 2, \"sourcePort\": \"s_1\"}, {\"target\": 23, \"targetPort\": \"pseudopotentials\", \"source\": 14, \"sourcePort\": null}, {\"target\": 23, \"targetPort\": \"kpts\", \"source\": 15, \"sourcePort\": null}, {\"target\": 23, \"targetPort\": \"calculation\", \"source\": 21, \"sourcePort\": null}, {\"target\": 23, \"targetPort\": \"smearing\", \"source\": 17, \"sourcePort\": null}, {\"target\": 4, \"targetPort\": \"input_dict\", \"source\": 23, \"sourcePort\": null}, {\"target\": 5, \"targetPort\": \"working_directory\", \"source\": 24, \"sourcePort\": null}, {\"target\": 25, \"targetPort\": \"structure\", \"source\": 2, \"sourcePort\": \"s_2\"}, {\"target\": 25, \"targetPort\": \"pseudopotentials\", \"source\": 14, \"sourcePort\": null}, {\"target\": 25, \"targetPort\": \"kpts\", \"source\": 15, \"sourcePort\": null}, {\"target\": 25, \"targetPort\": \"calculation\", \"source\": 21, \"sourcePort\": null}, {\"target\": 25, \"targetPort\": \"smearing\", \"source\": 17, \"sourcePort\": null}, {\"target\": 5, \"targetPort\": \"input_dict\", \"source\": 25, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"working_directory\", \"source\": 26, \"sourcePort\": null}, {\"target\": 27, \"targetPort\": \"structure\", \"source\": 2, \"sourcePort\": \"s_3\"}, {\"target\": 27, \"targetPort\": \"pseudopotentials\", \"source\": 14, \"sourcePort\": null}, {\"target\": 27, \"targetPort\": \"kpts\", \"source\": 15, \"sourcePort\": null}, {\"target\": 27, \"targetPort\": \"calculation\", \"source\": 21, \"sourcePort\": null}, {\"target\": 27, \"targetPort\": \"smearing\", \"source\": 17, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"input_dict\", \"source\": 27, \"sourcePort\": null}, {\"target\": 7, \"targetPort\": \"working_directory\", \"source\": 28, \"sourcePort\": null}, {\"target\": 29, \"targetPort\": \"structure\", \"source\": 2, \"sourcePort\": \"s_4\"}, {\"target\": 29, \"targetPort\": \"pseudopotentials\", \"source\": 14, \"sourcePort\": null}, {\"target\": 29, \"targetPort\": \"kpts\", \"source\": 15, \"sourcePort\": null}, {\"target\": 29, \"targetPort\": \"calculation\", \"source\": 21, \"sourcePort\": null}, {\"target\": 29, \"targetPort\": \"smearing\", \"source\": 17, \"sourcePort\": null}, {\"target\": 7, \"targetPort\": \"input_dict\", \"source\": 29, \"sourcePort\": null}, {\"target\": 30, \"targetPort\": \"0\", \"source\": 3, \"sourcePort\": \"volume\"}, {\"target\": 30, \"targetPort\": \"1\", \"source\": 4, \"sourcePort\": \"volume\"}, {\"target\": 30, \"targetPort\": \"2\", \"source\": 5, \"sourcePort\": \"volume\"}, {\"target\": 30, \"targetPort\": \"3\", \"source\": 6, \"sourcePort\": \"volume\"}, {\"target\": 30, \"targetPort\": \"4\", \"source\": 7, \"sourcePort\": \"volume\"}, {\"target\": 8, \"targetPort\": \"volume_lst\", \"source\": 30, \"sourcePort\": null}, {\"target\": 31, \"targetPort\": \"0\", \"source\": 3, \"sourcePort\": \"energy\"}, {\"target\": 31, \"targetPort\": \"1\", \"source\": 4, \"sourcePort\": \"energy\"}, {\"target\": 31, \"targetPort\": \"2\", \"source\": 5, \"sourcePort\": \"energy\"}, {\"target\": 31, \"targetPort\": \"3\", \"source\": 6, \"sourcePort\": \"energy\"}, {\"target\": 31, \"targetPort\": \"4\", \"source\": 7, \"sourcePort\": \"energy\"}, {\"target\": 8, \"targetPort\": \"energy_lst\", \"source\": 31, \"sourcePort\": null}]}"}],"execution_count":15},{"cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":16},{"cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":17},{"cell_type":"code","source":"wg = load_workflow_json(workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":18},{"cell_type":"code","source":"wg","metadata":{"trusted":true},"outputs":[{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"7fc0e151c0ef49eaa6772b8e0cc7bdac"}},"metadata":{}}],"execution_count":19},{"cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 04:01:12 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure1\n04/12/2025 04:01:13 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_bulk_structure1, type: PyFunction, finished.\n04/12/2025 04:01:13 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10\n04/12/2025 04:01:14 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.\n04/12/2025 04:01:14 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe2\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00560] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:02:07 PM <488> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])\n04/12/2025 04:02:07 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: calculate_qe2, type: PyFunction, finished.\n04/12/2025 04:02:07 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures3\n04/12/2025 04:02:08 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: generate_structures3, type: PyFunction, finished.\n04/12/2025 04:02:08 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict11,get_dict12,get_dict13,get_dict14,get_dict15\n04/12/2025 04:02:09 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_dict11, type: PyFunction, finished.\n04/12/2025 04:02:09 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe4,get_dict12,get_dict13,get_dict14,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00580] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:02:20 PM <488> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:02:20 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: calculate_qe4, type: PyFunction, finished.\n04/12/2025 04:02:20 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict13,get_dict14,get_dict15\n04/12/2025 04:02:21 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.\n04/12/2025 04:02:21 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe5,get_dict13,get_dict14,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00591] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:02:32 PM <488> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:02:32 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: calculate_qe5, type: PyFunction, finished.\n04/12/2025 04:02:32 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict13,get_dict14,get_dict15\n04/12/2025 04:02:33 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_dict13, type: PyFunction, finished.\n04/12/2025 04:02:33 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6,get_dict14,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00602] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:02:45 PM <488> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:02:46 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.\n04/12/2025 04:02:46 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict15\n04/12/2025 04:02:47 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.\n04/12/2025 04:02:47 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe7,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00613] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:03:02 PM <488> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:03:02 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: calculate_qe7, type: PyFunction, finished.\n04/12/2025 04:03:02 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict15\n04/12/2025 04:03:03 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_dict15, type: PyFunction, finished.\n04/12/2025 04:03:03 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe8\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00629] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:03:19 PM <488> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:03:19 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: calculate_qe8, type: PyFunction, finished.\n04/12/2025 04:03:19 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list16,get_list17\n04/12/2025 04:03:20 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_list16, type: PyFunction, finished.\n04/12/2025 04:03:20 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17\n04/12/2025 04:03:21 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.\n04/12/2025 04:03:21 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve9\n04/12/2025 04:03:21 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve9, type: PyFunction, finished.\n04/12/2025 04:03:22 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 04:03:22 PM <488> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|finalize]: Finalize workgraph.\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":20},{"cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":22},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"fa0c6d78efbf4e4c8b66aea8fd6f192d"}},"metadata":{}}],"execution_count":23},{"cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_4ee5dfeac7e9c2108c08a95fab3b0e9f\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1b80>\n\n\n\nvolume_lst_05cb15f5a614b7a73a197e3047fa020f\n\nvolume_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1910>\n\n\n\nvolume_lst_05cb15f5a614b7a73a197e3047fa020f->create_function_job_4ee5dfeac7e9c2108c08a95fab3b0e9f\n\n\n\n\n\n0_b7018ce23c6664e37be17019a6218a04\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1370>\n\n\n\n0_b7018ce23c6664e37be17019a6218a04->volume_lst_05cb15f5a614b7a73a197e3047fa020f\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add\n\nworking_directory=strain_0\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_b7018ce23c6664e37be17019a6218a04\n\n\n\n\n\n0_cd3d4ac8bac6c8053a48e80ade5c45e3\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb0d40>\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_cd3d4ac8bac6c8053a48e80ade5c45e3\n\n\n\n\n\nenergy_lst_4cdd910d5081e9c298369ecd10dff672\n\nenergy_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb12e0>\n\n\n\n0_cd3d4ac8bac6c8053a48e80ade5c45e3->energy_lst_4cdd910d5081e9c298369ecd10dff672\n\n\n\n\n\ninput_dict_35fd04f1a7be954cf108add6239ac7ee\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177a10>\n\n\n\ninput_dict_35fd04f1a7be954cf108add6239ac7ee->0_b7018ce23c6664e37be17019a6218a04\n\n\n\n\n\ninput_dict_35fd04f1a7be954cf108add6239ac7ee->0_cd3d4ac8bac6c8053a48e80ade5c45e3\n\n\n\n\n\nstructure_c78cd2a36fbf5a5c3c405b2dedf52453\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177e60>\n\n\n\nstructure_c78cd2a36fbf5a5c3c405b2dedf52453->input_dict_35fd04f1a7be954cf108add6239ac7ee\n\n\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9176f30>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_c78cd2a36fbf5a5c3c405b2dedf52453\n\n\n\n\n\nstructure_ca8582bda9ac3a2c746e28a9db15f532\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177b90>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_ca8582bda9ac3a2c746e28a9db15f532\n\n\n\n\n\nstructure_9f2c705d5b0114094330a933ff2e5406\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b91778c0>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_9f2c705d5b0114094330a933ff2e5406\n\n\n\n\n\nstructure_db9510c7bfd55930020731dbf782be40\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177590>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_db9510c7bfd55930020731dbf782be40\n\n\n\n\n\nstructure_8a49e65910c7925f9ccd0b189d098d5d\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177260>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_8a49e65910c7925f9ccd0b189d098d5d\n\n\n\n\n\ninput_dict_d1accf6dd82348b77261c8d524bf9c5b\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177dd0>\n\n\n\nstructure_ca8582bda9ac3a2c746e28a9db15f532->input_dict_d1accf6dd82348b77261c8d524bf9c5b\n\n\n\n\n\ninput_dict_fdc8226bbba1fa028b94c32bc7300715\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177b00>\n\n\n\nstructure_9f2c705d5b0114094330a933ff2e5406->input_dict_fdc8226bbba1fa028b94c32bc7300715\n\n\n\n\n\ninput_dict_94a8ed8ada2e04ca21d2f811ac3efa77\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177830>\n\n\n\nstructure_db9510c7bfd55930020731dbf782be40->input_dict_94a8ed8ada2e04ca21d2f811ac3efa77\n\n\n\n\n\ninput_dict_16d88015798cd5177efc54a8a1a287e5\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9177500>\n\n\n\nstructure_8a49e65910c7925f9ccd0b189d098d5d->input_dict_16d88015798cd5177efc54a8a1a287e5\n\n\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7\n\nworking_directory=mini\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7->structure_3862820bf0d5d11552d0ba636f46b0d7\n\n\n\n\n\ninput_dict_4659b266e9d3fa11239c55f900f50744\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9175040>\n\n\n\ninput_dict_4659b266e9d3fa11239c55f900f50744->structure_3862820bf0d5d11552d0ba636f46b0d7\n\n\n\n\n\nstructure_955e3be85103df2a640360e1088a66f5\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b9176d80>\n\n\n\nstructure_955e3be85103df2a640360e1088a66f5->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0\n\nelement=Al\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\na_aea0574e321c6f75f923c059730e9537\n\na=4.05\n\n\n\na_aea0574e321c6f75f923c059730e9537->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a\n\ncubic=True\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10\n\npseudopotentials={'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_35fd04f1a7be954cf108add6239ac7ee\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_d1accf6dd82348b77261c8d524bf9c5b\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_fdc8226bbba1fa028b94c32bc7300715\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_94a8ed8ada2e04ca21d2f811ac3efa77\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_16d88015798cd5177efc54a8a1a287e5\n\n\n\n\n\n1_fc7d7b9261a22570b7fcfaf7eaef64e6\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1340>\n\n\n\ninput_dict_d1accf6dd82348b77261c8d524bf9c5b->1_fc7d7b9261a22570b7fcfaf7eaef64e6\n\n\n\n\n\n1_e4faa0e8254792df033eb3aa5dc28ce8\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb0d10>\n\n\n\ninput_dict_d1accf6dd82348b77261c8d524bf9c5b->1_e4faa0e8254792df033eb3aa5dc28ce8\n\n\n\n\n\n2_f1749e58292ab11c98378a5442373cf3\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1160>\n\n\n\ninput_dict_fdc8226bbba1fa028b94c32bc7300715->2_f1749e58292ab11c98378a5442373cf3\n\n\n\n\n\n2_616bb6a80e246e3a319163a8c6775e3a\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb0860>\n\n\n\ninput_dict_fdc8226bbba1fa028b94c32bc7300715->2_616bb6a80e246e3a319163a8c6775e3a\n\n\n\n\n\n3_18888c91c9e29abec378869206f83df9\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1490>\n\n\n\ninput_dict_94a8ed8ada2e04ca21d2f811ac3efa77->3_18888c91c9e29abec378869206f83df9\n\n\n\n\n\n3_499860e2d4116975e18fae4980fc419d\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb0e60>\n\n\n\ninput_dict_94a8ed8ada2e04ca21d2f811ac3efa77->3_499860e2d4116975e18fae4980fc419d\n\n\n\n\n\n4_c3bcf05fd4095fd8d448078dbc3ecc73\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb1580>\n\n\n\ninput_dict_16d88015798cd5177efc54a8a1a287e5->4_c3bcf05fd4095fd8d448078dbc3ecc73\n\n\n\n\n\n4_5d6a5948a822e2f270082d6753da771d\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x7db2b8fb0f50>\n\n\n\ninput_dict_16d88015798cd5177efc54a8a1a287e5->4_5d6a5948a822e2f270082d6753da771d\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa\n\nkpts=[3, 3, 3]\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_35fd04f1a7be954cf108add6239ac7ee\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_d1accf6dd82348b77261c8d524bf9c5b\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_fdc8226bbba1fa028b94c32bc7300715\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_94a8ed8ada2e04ca21d2f811ac3efa77\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_16d88015798cd5177efc54a8a1a287e5\n\n\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34\n\ncalculation=vc-relax\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9\n\nsmearing=0.02\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_35fd04f1a7be954cf108add6239ac7ee\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_d1accf6dd82348b77261c8d524bf9c5b\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_fdc8226bbba1fa028b94c32bc7300715\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_94a8ed8ada2e04ca21d2f811ac3efa77\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_16d88015798cd5177efc54a8a1a287e5\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86\n\nstrain_lst=[0.9, 0.9500000000000001, 1.0, 1.05, 1.1]\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_c78cd2a36fbf5a5c3c405b2dedf52453\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_ca8582bda9ac3a2c746e28a9db15f532\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_9f2c705d5b0114094330a933ff2e5406\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_db9510c7bfd55930020731dbf782be40\n\n\n\n\n\nstrain_lst_17d5bcbc7579ab5e0f98577d05347b86->structure_8a49e65910c7925f9ccd0b189d098d5d\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83\n\ncalculation=scf\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_35fd04f1a7be954cf108add6239ac7ee\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_d1accf6dd82348b77261c8d524bf9c5b\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_fdc8226bbba1fa028b94c32bc7300715\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_94a8ed8ada2e04ca21d2f811ac3efa77\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_16d88015798cd5177efc54a8a1a287e5\n\n\n\n\n\n1_fc7d7b9261a22570b7fcfaf7eaef64e6->volume_lst_05cb15f5a614b7a73a197e3047fa020f\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd\n\nworking_directory=strain_1\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_fc7d7b9261a22570b7fcfaf7eaef64e6\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_e4faa0e8254792df033eb3aa5dc28ce8\n\n\n\n\n\n1_e4faa0e8254792df033eb3aa5dc28ce8->energy_lst_4cdd910d5081e9c298369ecd10dff672\n\n\n\n\n\n2_f1749e58292ab11c98378a5442373cf3->volume_lst_05cb15f5a614b7a73a197e3047fa020f\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992\n\nworking_directory=strain_2\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_f1749e58292ab11c98378a5442373cf3\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_616bb6a80e246e3a319163a8c6775e3a\n\n\n\n\n\n2_616bb6a80e246e3a319163a8c6775e3a->energy_lst_4cdd910d5081e9c298369ecd10dff672\n\n\n\n\n\n3_18888c91c9e29abec378869206f83df9->volume_lst_05cb15f5a614b7a73a197e3047fa020f\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f\n\nworking_directory=strain_3\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_18888c91c9e29abec378869206f83df9\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_499860e2d4116975e18fae4980fc419d\n\n\n\n\n\n3_499860e2d4116975e18fae4980fc419d->energy_lst_4cdd910d5081e9c298369ecd10dff672\n\n\n\n\n\n4_c3bcf05fd4095fd8d448078dbc3ecc73->volume_lst_05cb15f5a614b7a73a197e3047fa020f\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7\n\nworking_directory=strain_4\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_c3bcf05fd4095fd8d448078dbc3ecc73\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_5d6a5948a822e2f270082d6753da771d\n\n\n\n\n\n4_5d6a5948a822e2f270082d6753da771d->energy_lst_4cdd910d5081e9c298369ecd10dff672\n\n\n\n\n\nenergy_lst_4cdd910d5081e9c298369ecd10dff672->create_function_job_4ee5dfeac7e9c2108c08a95fab3b0e9f\n\n\n\n\n"},"metadata":{}}],"execution_count":24},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f was saved and received the ID: 1\nThe job get_dict_1e47509b88d63a21fd421686554c8f4a was saved and received the ID: 2\nThe job calculate_qe_e3c0bf43f7edf24d215901bf93271e87 was saved and received the ID: 3\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00662] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job generate_structures_5c26a239dddbae387e1cf56d1ba44d18 was saved and received the ID: 4\nThe job get_dict_0560498c995242366cd53a89bc29e8b8 was saved and received the ID: 5\nThe job calculate_qe_266c2b7e53f590ac06e4fa072ddd978f was saved and received the ID: 6\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00674] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_90962402194ca2b82709bbc0e990bbed was saved and received the ID: 7\nThe job calculate_qe_c2eefeadc199b4a80f650712eb861fc4 was saved and received the ID: 8\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00684] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_0b4978e7185e65a069946897915f2ecb was saved and received the ID: 9\nThe job calculate_qe_876ce4fa68b9ca1c27aaa0c93d113f35 was saved and received the ID: 10\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00695] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_459c7274c74835f92dbcabe0a9d85105 was saved and received the ID: 11\nThe job calculate_qe_3eada4fe81e37ba7f85bce190d1c581a was saved and received the ID: 12\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00706] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_973922abfd4f8451cd424c3489ab8b0d was saved and received the ID: 13\nThe job calculate_qe_be1ff3880e3d0e66b7395e4946d2a794 was saved and received the ID: 14\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00722] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_list_a45efebd327657fd407d65e5c9872318 was saved and received the ID: 15\nThe job get_list_fc9ffab829d0fc8ba7224e4e2b88b06b was saved and received the ID: 16\nThe job plot_energy_volume_curve_c265b69efbc63e5a024e6b9b595998c9 was saved and received the ID: 17\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXuY2bHERERaZBUluowbw9XbugZDMCcVftMTiMiItIwqSzVcbf3CwNgWcJhko/mmhtGRESkAVJZquPa+DVmYAc/DAPmrk42O46IiEiDo7LkACZd1hqABRsPkZNfZHIaERGRhkVlyQFc0c6XS/y8OFlQzIKNh8yOIyIi0qCoLDkAi8XCxNPnLn28OhmbTcsIiIiI2IvKkoO4rkcwTTxcSD6Wx/KEw2bHERERaTBUlhyEl7sLN10aAuhEbxEREXtSWXIgE6LCcLLA70lHScrIMTuOiIhIg6Cy5EBCmnkyKCIAgDkaXRIREbELlSUHU7aMwMJNh8jMKzQ5jYiISP2nsuRg+rZpRnhgE/KLbHy1/qDZcUREROo9lSUHY7FYuOP06NIna/ZTXGIzOZGIiEj9prLkgEZ3C6KppyspmadYsjPD7DgiIiL1msqSA/JwdeaWPq0AmLMq2dwwIiIi9ZzKkoOK7huGi5OFdcnH2Z6SZXYcERGRektlyUEFWj0Y3rkFoEUqRUREapPKkgMru1/c4rhUjp4sMDeMiIhIPaWy5MB6tPKha7CVwhIbX6w9YHYcERGRekllyYFZLJbyRSo/i91PYbGWERAREalpKksO7prOLfBr4s7hnAJ+2p5mdhwREZF6R2XJwbm5OHFbn1AAPtIyAiIiIjVOZakeuKVPK9ycndhyMJPNB06YHUdERKReUVmqB/yauDOqaxCgRSpFRERqmspSPTHpsjAAftyWRnpWvrlhRERE6hGVpXqiU0srl4Y1pdhm8FnsfrPjiIiI1BsqS/VI2TICX6w7QH5RiclpRERE6geVpXpkSGQALX0acTy3kMVbUs2OIyIiUi+oLNUjLs5OREeVLiMwZ1UyhmGYnEhERMTxqSzVMzddGoKHqxPxadms3Xfc7DgiIiIOT2WpnvHxdGNs92AA5moZARERkYumslQPlS0j8MvOdA4ezzM3jIiIiINTWaqH2gc0oX9bX2wGfKplBERERC6KylI9NbFfGADz1h0gr7DY3DAiIiIOTGWpnroq3J/Q5p5k5xezcFOK2XFEREQclspSPeXkZOH2qDAA5q7WMgIiIiLVpbJUj43rFYyXmzO7D5/k96SjZscRERFxSCpL9VgTD1fG9QoBYM6qfSanERERcUwqS/Xc7f3CsFhgecIR9h3NNTuOiIiIw1FZquda+3pxZQd/AD5enWxuGBEREQekstQAlC0jMH/DQbLzi8wNIyIi4mBUlhqAy9v50ta/MbmFJczfcMjsOCIiIg5FZakBsFgs5aNLH69OpsSmZQRERETOl8pSA3Fdj5Z4e7hw4Hgey3cdNjuOiIiIw1BZaiA83Vy4qXcrAOas1jICIiIi50tlqQGZEBWKkwVW7T5GYkaO2XFEREQcgsOUpRMnThAdHY3VasVqtRIdHU1mZmaV+5w8eZIpU6YQHBxMo0aNiIiI4N133z1juzVr1nDVVVfh5eWFj48PAwcO5NSpU7X0TswT3NSTIZGBAMxZlWxuGBEREQfhMGXplltuIS4ujpiYGGJiYoiLiyM6OrrKfaZOnUpMTAyfffYZ8fHxTJ06lXvvvZdvv/22fJs1a9YwbNgwhgwZwrp161i/fj1TpkzByclhDs0FmXRZGACLNh8iM6/Q3DAiIiIOwGI4wB1W4+PjiYyMJDY2lj59+gAQGxtLVFQUu3btokOHDpXu16lTJ8aPH8+TTz5Z/lzPnj255pprePbZZwHo27cvgwcPLv+6OrKzs7FarWRlZeHt7V3t17EHwzC45s2VxKdl8+iwcP468BKzI4mIiJjifP9+O8TwyZo1a7BareVFCUpLjtVqZfXq1Wfdr3///ixevJiUlBQMw2D58uUkJiYydOhQAA4fPszatWvx9/enX79+BAQEMGDAAFauXFnr78ksFoulfHTp0zXJFJfYzA0kIiJSxzlEWUpPT8ff3/+M5/39/UlPTz/rfm+++SaRkZEEBwfj5ubGsGHDeOedd+jfvz8Ae/fuBWDGjBlMnjyZmJgYevTowdVXX01SUtJZX7egoIDs7OwKD0cyumsQzb3cSM3K55edGWbHERERqdNMLUszZszAYrFU+diwYQNQOiLyZ4ZhVPp8mTfffJPY2FgWL17Mxo0befXVV/nb3/7G0qVLAbDZSkdV7r77biZNmkT37t15/fXX6dChAx999NFZX3fmzJnlJ5pbrVZCQkIu5jDYnYerM7f0Ob2MwCotIyAiIlIVFzN/+JQpU7jpppuq3CYsLIytW7eSkXHmCMiRI0cICAiodL9Tp07x+OOPs2jRIkaMGAFAly5diIuL45VXXmHQoEG0aNECgMjIyAr7RkREcODAgbNmmj59Og8++GD519nZ2Q5XmG7rG8q7K/awPvkE21Oy6NTSanYkERGROsnUsuTr64uvr+85t4uKiiIrK4t169bRu3dvANauXUtWVhb9+vWrdJ+ioiKKiorOuKrN2dm5fEQpLCyMoKAgEhISKmyTmJjI8OHDz5rH3d0dd3f3c+auywK8PbimcwsWb0llzqpkXr2xq9mRRERE6iSHOGcpIiKCYcOGMXnyZGJjY4mNjWXy5MmMHDmywpVw4eHhLFq0CABvb28GDBjAtGnTWLFiBfv27WPu3Ll88sknjB07Fiid2ps2bRpvvvkmCxYsYPfu3Tz55JPs2rWLO++805T3ak9lJ3p/tyWVIzkF5oYRERGpo0wdWboQn3/+Offddx9DhgwBYPTo0cyePbvCNgkJCWRlZZV/PW/ePKZPn86tt97K8ePHCQ0N5fnnn+eee+4p3+aBBx4gPz+fqVOncvz4cbp27cqSJUu45JL6f0l991ZN6RbiQ9zBTL5Ye4D7B7UzO5KIiEid4xDrLNV1jrTO0p99G5fC/fPi8GvizqpHr8LNxSEGG0VERC5avVpnSWrP8E4t8G/izpGcAn7clmZ2HBERkTpHZamBc3NxIrpvKFC6jIAGGkVERCpSWRJu6dMKNxcnthzKYtOBTLPjiIiI1CkqS0Lzxu6M7hoEaJFKERGRP1NZEuB/ywj8tD2dtKxT5oYRERGpQ1SWBICOQVZ6t25Gic3gs9j9ZscRERGpM1SWpNwdp0eXvlh7gPyiEnPDiIiI1BEqS1JuUEQALX0acSKviG/jUsyOIyIiUieoLEk5F2cnJkSVLSOQrGUEREREUFmSP7np0lY0cnVmV3oOsXuPmx1HRETEdCpLUoHV05XrerQEtIyAiIgIqCxJJSb2CwNgaXwGB4/nmRtGRETEZCpLcoZ2AU24vJ0vNgM+WZNsdhwRERFTqSxJpcoWqZy3/iC5BcXmhhERETGRypJUamB7f8Kae5KTX8zCTYfMjiMiImIalSWplJOThdtPn7s0d3UyNpuWERARkYZJZUnO6oaewTR2d2HPkVx+333U7DgiIiKmUFmSs2ri4cq4XsGAlhEQEZGGS2VJqnR7VBgWC6xIOMKeIyfNjiMiImJ3KktSpTBfL67q4A/AJ6uTzQ0jIiJiApUlOadJl7UGYMHGQ2TnF5mcRkRExL5UluScLmvbnHb+jcktLOE/6w+aHUdERMSuVJbknCwWCxNPL1L58ZpkSrSMgIiINCAqS3JerusejLWRKwePn2LZrsNmxxEREbEblSU5L43cnLmpdwigZQRERKRhUVmS8zYhKgwnC6zec4xd6dlmxxEREbELlSU5by19GjG0YyAAc1clmxtGRETETlSW5IKULSOwaHMKJ3ILTU4jIiJS+1SW5IJcGtaUjkHeFBTb+HL9AbPjiIiI1DqVJbkgFoulfHTp0zX7KSqxmZxIRESkdqksyQUb2aUFzb3cSMvK5+cd6WbHERERqVUqS3LBPFydubVPK0AneouISP2nsiTVclvfUFydLWzYf4Jth7LMjiMiIlJrVJakWvy9PRjRuQWgRSpFRKR+U1mSapt4+kTv77amcjgn3+Q0IiIitUNlSaqtW4gP3Vv5UFRi8MVaLSMgIiL1k8qSXJSyZQQ+iz1AQXGJyWlERERqnsqSXJThnQIJ8Hbn6MkCftiaZnYcERGRGqeyJBfF1dmJ6L6hAMxZlYxhGCYnEhERqVkqS3LRbu7dCjcXJ7alZLHpwAmz44iIiNQolSW5aM0buzOmWxAAH2mRShERqWdUlqRGTOxXeqJ3zPZ0UjNPmZxGRESk5qgsSY2IDPKmT+tmlNgMPovdb3YcERGRGqOyJDWmbBmBL9cdIL9IywiIiMjFO3g8jzmr9mGzmXcBkcqS1JjBkQEEN23EibwivtmcYnYcERFxcDabwbQFW/jHdzt54cd403KoLEmNcXaycHtUGKBlBERE5OJ9tnY/sXuP08jVmeioUNNyqCxJjbqxVwiNXJ1JyMhhzd5jZscREREHdeBYHjN/3AXAY8PDCW3uZVoWlSWpUVZPV67v2RIoHV0SERG5UDabwcMLtnCqqIS+bZqVL35sFpUlqXFlywgsjc/gwLE8k9OIiIij+WRNMuv2HcfTzZmXru+Kk5PF1DwqS1Lj2vo35or2fhgGfLwm2ew4IiLiQJKP5jIrpnT6bfrwcFo19zQ5kcqS1JJJ/cIA+M/6g+QWFJsbRkREHILNZvDIgq3kF9mIatOcW/uYO/1WRmVJasWA9n608fUip6CYrzcdMjuOiIg4gLmrk1mXfBwvN2deuqGL6dNvZVSWpFY4OVm4/fTo0txVyaYuJiYiInXfvqO5vPTz6em3ayIIaWb+9FsZlSWpNdf3DKaJuwt7j+byW9IRs+OIiEgdVWIzmDZ/C/lFNvq39eXWPq3MjlSBypLUmsbuLozrFQKUji6JiIhUZs6qfWzYf4LG7i7Mur4zFkvdmH4ro7IktWpivzAsFvgt8Qi7D580O46IiNQxe46c5OWfEwB4/JoIgpvWnem3MipLUqtaNffk6vAAAD5enWxuGBERqVPKpt8Kim1c3s6Xm3uHmB2pUipLUusmXRYGwNebDpF1qsjcMCIiUmd8tHIfmw5knp5+61Lnpt/KqCxJret3SXM6BDQhr7CE+RsOmh1HRETqgN2HT/LyL6XTb0+MiKClTyOTE52dypLUOovFwsTTo0tzVydTomUEREQatBKbwcPzt1BYbOOK9n6Mv7RuTr+VUVkSuxjTrSU+nq4cOnGKpfEZZscRERETffD7XuIOZtLE3YUX6+DVb3+msiR20cjNmZsuLV03Q8sIiIg0XLsP5/DakkQAnhwVSQtr3Z1+K6OyJHYzISoUZycLa/YeIz4t2+w4IiJiZ8UlNh6av5XCYhtXdvBjXM9gsyOdF4cpSydOnCA6Ohqr1YrVaiU6OprMzMwq9zl58iRTpkwhODiYRo0aERERwbvvvlthm/T0dKKjowkMDMTLy4sePXqwYMGCWnwnDVeQTyOGdQwENLokItIQ/ev3vWw5mEkTDxdmXld3r377M4cpS7fccgtxcXHExMQQExNDXFwc0dHRVe4zdepUYmJi+Oyzz4iPj2fq1Knce++9fPvtt+XbREdHk5CQwOLFi9m2bRvXXXcd48ePZ/PmzbX9lhqksmUEvolL4XhuoblhRETEbhIzcnhjSRIAT4/qSKDVw+RE588hylJ8fDwxMTH8+9//JioqiqioKD744AO+//57EhISzrrfmjVruP322xk4cCBhYWH85S9/oWvXrmzYsKHCNvfeey+9e/emTZs2PPHEE/j4+LBp0yZ7vLUGp2doUzq19Kag2MaX6w6YHUdEROyguMRWevVbiY2rwv25vkdLsyNdEIcoS2vWrMFqtdKnT5/y5/r27YvVamX16tVn3a9///4sXryYlJQUDMNg+fLlJCYmMnTo0ArbfPXVVxw/fhybzca8efMoKChg4MCBtfmWGiyLxcKkfq0B+HTNfopKbCYnEhGR2vb+f/ey9VAW3h4uzLyu7l/99mcOUZbS09Px9/c/43l/f3/S09PPut+bb75JZGQkwcHBuLm5MWzYMN555x369+9fvs1XX31FcXExzZs3x93dnbvvvptFixZxySWXnPV1CwoKyM7OrvCQ8zeyawt8G7uTnp1PzPaz//cTERHHtys9mzeWll79NmN0RwK8HWf6rYypZWnGjBlYLJYqH2VTZpW1UMMwqmynb775JrGxsSxevJiNGzfy6quv8re//Y2lS5eWb/PEE09w4sQJli5dyoYNG3jwwQcZN24c27ZtO+vrzpw5s/xEc6vVSkhI3V5Mq65xd3Hm1j6lywjMWbXP5DQiIlJbik5PvxWVGAyK8Gdsd8eafitjMQzDtOWUjx49ytGjR6vcJiwsjC+++IIHH3zwjKvffHx8eP3115k0adIZ+506dQqr1cqiRYsYMWJE+fN33XUXhw4dIiYmhj179tC2bVu2b99Ox44dy7cZNGgQbdu25b333qs0U0FBAQUFBeVfZ2dnExISQlZWFt7e3ufz1hu8wzn5XDZrGUUlBt/+/TK6hviYHUlERGrYW78m8eqSRKyNXFky9Qr869ioUnZ2Nlar9Zx/v13smOkMvr6++Pr6nnO7qKgosrKyWLduHb179wZg7dq1ZGVl0a9fv0r3KSoqoqioCCenioNnzs7O2Gyl58nk5eUBVLlNZdzd3XF3dz9nbjk7/yYejOwSxKLNKcxdnczr47uZHUlERGpQfFo2by4rvfrtH6M71rmidCEc4pyliIgIhg0bxuTJk4mNjSU2NpbJkyczcuRIOnToUL5deHg4ixYtAsDb25sBAwYwbdo0VqxYwb59+5g7dy6ffPIJY8eOLd++bdu23H333axbt449e/bw6quvsmTJEsaMGWPGW21QypYR+H5rKoez880NIyIiNeaP02+DIwO4tluQ2ZEuikOUJYDPP/+czp07M2TIEIYMGUKXLl349NNPK2yTkJBAVlZW+dfz5s3j0ksv5dZbbyUyMpJZs2bx/PPPc8899wDg6urKjz/+iJ+fH6NGjaJLly588sknfPzxx1xzzTV2fX8NUZdgH3qGNqWoxOCztVpGQESkvnhn+R52pGbj4+nK82M7OdzVb39m6jlL9cX5znnKmb7bksq9X27Gt7Ebqx67CncXZ7MjiYjIRdiRmsW1s1dRbDP4503duLZb3T2p+3z/fjvMyJLUT8M6BRLo7cHRk4V8vyXN7DgiInIRCottPDx/K8U2g6EdAxjd1bGn38qoLImpXJ2diI4KBWDO6n1ooFNExHG9vXw38WnZNPV05bkxjrf45NmoLInpbu7dCncXJ7anZLNh/wmz44iISDVsT8ni7eW7AXjm2k74Nak/V42rLInpmnm5Meb0nPbcVcnmhhERkQtWOv22hWKbwfBOgYzs0sLsSDVKZUnqhEn9wwCI2ZFOauYpc8OIiMgFmb0siV3pOTTzcuPZMY5/9dufqSxJnRAe6E1Um+aU2Aw+WbPf7DgiInKeth3K4u0VewB49tpO+DauP9NvZVSWpM4oW6Tyy3UHOFVYYm4YERE5p4LiEh6ev4USm8GILi0YUc+m38qoLEmdcXVEACHNGpF1qohv4lLMjiMiIufw1q+7ScjIobmXG8+M7njuHRyUypLUGc5OFm6PCgNgziotIyAiUpdtPZTJu7+VTr89N6YTzevh9FsZlSWpU8b1CsHTzZnEjJOs3nPM7DgiIlKJP06/jeoaxPDO9XP6rYzKktQp1kau3NAzGIA5WkZARKRO+ufSJBIzTuLb2I1/1OPptzIqS1Ln3N4vDIBfd2Ww/1iuuWFERKSCuIOZvFc+/daZZl5uJieqfSpLUudc4teYAe39MAz4eLWWERARqSvyi0qn32wGXNstiGGdAs2OZBfVKku5ufrXvtSusmUE5m84yMmCYnPDiIgIAK8vTWT34ZP4NnZnxqj6P/1WplplKSAggDvuuIOVK1fWdB4RAK5o50cbXy9yCor5euMhs+OIiDR4mw6c4IP/7gXghbGdaNoApt/KVKssffnll2RlZXH11VfTvn17Zs2aRWpqak1nkwbMycnCxNOjS3NXJ2OzaRkBERGz5BeVMO309NvY7i0Z0rFhTL+VqVZZGjVqFF9//TWpqan89a9/5csvvyQ0NJSRI0eycOFCios1bSIX7/oewTTxcGHf0Vx+SzxidhwRkQbrtSWJ7DmSi18Td54eFWl2HLu7qBO8mzdvztSpU9myZQuvvfYaS5cu5YYbbiAoKIinnnqKvLy8msopDZCXuwvje4UA8NGqfSanERFpmDbuP8EHv5dOv80c2xkfz4Yz/VbmospSeno6L730EhERETz22GPccMMN/Prrr7z++ussWrSIMWPG1FBMaagmRIVhscDvSUfZfTjH7DgiIg1K2fSbYcB1PVoyKDLA7EimcKnOTgsXLmTOnDn8/PPPREZG8ve//53bbrsNHx+f8m26detG9+7dayqnNFCtmnsyKCKAJTszmLs6mefGdDY7kohIg/HKzwnsPZpLgLc7T49sOFe//Vm1RpYmTZpEUFAQq1atIi4ujilTplQoSgBt2rTh//7v/2oiozRwZcsIfL0xhay8InPDiIg0EBuSj/Ph6VMgZl7XGaunq8mJzFOtkaW0tDQ8PT2r3KZRo0Y8/fTT1Qol8kdRbZoTHtiEXek5fLXhAH+54hKzI4mI1GunCksXnzQMuKFnMFeFN8zptzLVGlkqLi4mOzv7jEdOTg6FhYU1nVEaOIvFwsTTt0D5ePV+SrSMgIhIrXr55wSSj+UR6O3BkyMb3tVvf1atsuTj40PTpk3PePj4+NCoUSNCQ0N5+umnsdlsNZ1XGqgx3VvS1NOVlMxTLNmZYXYcEZF6a92+48xZfXr67frOWBs13Om3MtUqS3PnziUoKIjHH3+cb775hkWLFvH444/TsmVL3n33Xf7yl7/w5ptvMmvWrJrOKw2Uh6szN/duBcAcLSMgIlIr8gqLmbagdPrtxl7BXNnB3+xIdUK1zln6+OOPefXVV7nxxhvLnxs9ejSdO3fm/fff59dff6VVq1Y8//zzPP744zUWVhq26KhQ3v/vXtbuO86O1Cw6BlnNjiQiUq+8FJPA/mN5tLB68ISm38pVa2RpzZo1lS4L0L17d9asWQNA//79OXDgwMWlE/mDFtZG5Xe4/nh1srlhRETqmdi9x5h7+rN11vVd8PbQ9FuZapWl4OBgPvzwwzOe//DDDwkJKV1x+dixYzRt2vTi0on8yR2nlxH4Ji6VYycLzA0jIlJP5BUW88iCrQDcdGkIA9r7mZyobqnWNNwrr7zCuHHj+Omnn7j00kuxWCysX7+eXbt2sWDBAgDWr1/P+PHjazSsSI9WTekSbGXroSy+XHeAKVe1MzuSiIjDe/GnXRw4nkeQ1YP/GxFhdpw6x2IYRrWuw96/fz/vvfceCQkJGIZBeHg4d999N2FhYTUcse7Lzs7GarWSlZWFt7e32XHqvUWbDzH1qy0EeLuz8tGrcHW+qLv2iIg0aKv3HOWWD9YC8Omdvbm8XcMZVTrfv98XPLJUVFTEkCFDeP/995k5c+ZFhRSpjms6t+D5H3aRkV3AT9vTGd01yOxIIiIOKbfgf9Nvt/Rp1aCK0oW44H+Su7q6sn37diwWS23kETkndxdnbuurZQRERC7WrJ92cejEKVr6NOLxazT9djbVmr+YMGFCpSd4i9jLrX1CcXN2YvOBTOIOZpodR0TE4azefZRPY/cD8NINXWjsXq3TmBuEah2ZwsJC/v3vf7NkyRJ69eqFl5dXhe+/9tprNRJO5Gz8mrgzsmsLFm5KYe6qfbxx05lLWYiISOVOFhQz7fT02219W3FZW1+TE9Vt1SpL27dvp0ePHgAkJiZW+J6m58ReJvVrzcJNKfywLY3Hr4nA39vD7EgiIg5h5o/xpGSeIrhpI6YP1/TbuVSrLC1fvrymc4hcsM7BVnqFNmXD/hN8FrufB4d0MDuSiEidtzLpKJ+vLV00+qUbuuCl6bdzuqhrrnfv3s3PP//MqVOnAKjmKgQi1TbpstYAfL72APlFJSanERGp23Lyi3j069LptwlRofS7RNNv56NaZenYsWNcffXVtG/fnmuuuYa0tDQA7rrrLh566KEaDShSlaEdA2hh9eBYbiHfb00zO46ISJ32wunpt5BmjXh0WLjZcRxGtcrS1KlTcXV15cCBA3h6epY/P378eGJiYmosnMi5uDg7ER0VCpQuI6DRTRGRyv038QhfrjsIwMs3dNX02wWoVln65ZdfePHFFwkODq7wfLt27di/f3+NBBM5Xzdf2goPVyd2pGazPvmE2XFEROqc7PwiHjs9/TaxXxh92zQ3OZFjqVZZys3NrTCiVObo0aO4u7tfdCiRC9HUy42x3VsCWqRSRKQyz38fT2pWPqHNPXlkmC6GuVDVKktXXHEFn3zySfnXFosFm83Gyy+/zJVXXllj4UTO18R+pSd6/7wjnZTMUyanERGpO1YkHOarDQexWEqn3zzdNP12oap1xF5++WUGDhzIhg0bKCws5JFHHmHHjh0cP36cVatW1XRGkXPqENiEfpc0Z/WeY3yyJlnrhoiIAFmninjs621A6fRb79bNTE7kmKo1shQZGcnWrVvp3bs3gwcPJjc3l+uuu47NmzdzySWX1HRGkfNStozAvHUHySssNjmNiIj5nvt+J+nZ+YQ19+SRobr6rbqqPRYXGBjIP/7xj5rMInJRrgr3p1UzTw4cz2PR5hRu7RNqdiQREdMs33WY+RsPlU6/jetKIzdnsyM5rGqXpczMTNatW8fhw4ex2WwVvjdhwoSLDiZyoZydLEyICuW5H+KZuyqZW3q30u13RKRBysor4rGFpVe/3XFZay4N0/TbxahWWfruu++49dZbyc3NpUmTJhX+IFksFpUlMc2Nl4bw+pJEkg6fZNXuY/Rvp9VpRaTheeb7nWRkF9Da14uHdSuoi1atc5Yeeugh7rjjDnJycsjMzOTEiRPlj+PHj9d0RpHz5u3hyg09S9f/0jICItIQ/RqfwdebSqffXhnXRdNvNaBaZSklJYX77ruv0rWWRMx2e78wAJYlHCb5aK65YURE7Cgrr4jpC0uvfrurf2t6hmr6rSZUqywNHTqUDRs21HQWkRrRxq8xAzv4YRjw8Zpks+OIiNjNP77bweGcAtr4efGQpt9qTLXOWRoxYgTTpk1j586ddO7cGVdX1wrfHz16dI2EE6muSZe1ZkXCEeZvOMSDg9vTxMP13DuJiDiwJTszWLg5BScLvDKuKx6umn6rKdUqS5MnTwbgmWeeOeN7FouFkpKSi0slcpGuaOfLJX5e7DmSy4KNh8rXYBIRqY8y8wp5fFHp9Nvky9vQo1VTkxPVL9WahrPZbGd9qChJXWCxWJh4uiB9vDoZm80wOZGISO2ZsXgHR3IKuMTPi6mD25sdp965oLJ0zTXXkJWVVf71888/T2ZmZvnXx44dIzIyssbCiVyM67q3pImHC8nH8liReNjsOCIiteLnHel8E5eKkwVevbGbpt9qwQWVpZ9//pmCgoLyr1988cUKSwUUFxeTkJBQc+lELoKXuws3XRoCwJxVyeaGERGpBSdyC/m/RdsB+MsVl9AtxMfcQPXUBZUlwzCq/FqkrpkQFYaTBX5POkpSRo7ZcUREatTTi3dw9GQB7fwb88CgdmbHqbeqdc6SiKMIaebJ4MgAAOauTjY3jIhIDYrZnsbiLak4O1l09Vstu6CyZLFYzrjXlu69JXXdxH6lJ3ov3JRCVl6RyWlERC7e8dxCnvimdPrtngFt6Krpt1p1QUsHGIbBxIkTcXd3ByA/P5977rkHLy8vgArnM4nUFX3bNCM8sAm70nOYt/4Adw+4xOxIIiIX5alvt3P0ZCEdAppw39WafqttFzSydPvtt+Pv74/VasVqtXLbbbcRFBRU/rW/v79uoit1jsVi4Y7Tywh8smY/xSU2kxOJiFTfj9vS+H5rWvn0m7uLpt9q2wWNLM2ZM6e2cojUqtHdgpgVs4uUzFMsjc9gWKcWZkcSEblgx04W8OTp6be/DbyEzsFWkxM1DDrBWxoED1dnbu5duozAR1pGQEQc1FPf7uBYbiHhgU249ypNv9mLypI0GNF9w3BxsrBu33F2pGadewcRkTrk+62p/LDtf9Nvbi76E24vDnOkT5w4QXR0dPn5UdHR0RVWD69MRkYGEydOJCgoCE9PT4YNG0ZSUlKFbQoKCrj33nvx9fXFy8uL0aNHc+jQoVp8J2KWQKsHwzuXTr9pkUoRcSRHcv43/fb3K9vSqaWm3+zJYcrSLbfcQlxcHDExMcTExBAXF0d0dPRZtzcMgzFjxrB3716+/fZbNm/eTGhoKIMGDSI3N7d8uwceeIBFixYxb948Vq5cycmTJxk5cqTucVdPTbosDIDFcakcPamrN0Wk7jMMgye/2c6JvCIiWngz5cq2ZkdqcCyGAyzDHR8fT2RkJLGxsfTp0weA2NhYoqKi2LVrFx06dDhjn8TERDp06MD27dvp2LEjACUlJfj7+/Piiy9y1113kZWVhZ+fH59++injx48HIDU1lZCQEH788UeGDh16Xvmys7OxWq1kZWXh7e1dQ+9aaoNhGIx5exVbDmXx0OD23KtLbkWkjlu8JZX7vtyMi5OFb6dcRscgjSrVlPP9++0QI0tr1qzBarWWFyWAvn37YrVaWb16daX7lK355OHhUf6cs7Mzbm5urFy5EoCNGzdSVFTEkCFDyrcJCgqiU6dOZ31dcWwWi4VJp5cR+DR2P4XFWkZAROquwzn5PPVt6fTblKvaqiiZxCHKUnp6Ov7+/mc87+/vT3p6eqX7hIeHExoayvTp0zlx4gSFhYXMmjWL9PR00tLSyl/Xzc2Npk2bVtg3ICDgrK8LpUUsOzu7wkMcxzWdW+DfxJ3DOQX8tD3N7DgiIpUyDIMnFm0nM6+IyBbe/F3Tb6YxtSzNmDGj/BYqZ3ts2LABqPy2KoZhnPV2K66urnz99dckJibSrFkzPD09WbFiBcOHD8fZueoFvKp6XYCZM2eWn2hutVoJCQm5gHctZnNzceK2vqGATvQWkbpr8ZZUftmZgatz6dVvrs4OMb5RL13QopQ1bcqUKdx0001VbhMWFsbWrVvJyMg443tHjhwhICDgrPv27NmTuLg4srKyKCwsxM/Pjz59+tCrVy8AAgMDKSws5MSJExVGlw4fPky/fv3O+rrTp0/nwQcfLP86OztbhcnB3Ny7FbOX7SbuYCabD5yge6um595JRMRODmfn89S3OwC496p2RAbpfFgzmVqWfH198fX1Ped2UVFRZGVlsW7dOnr37g3A2rVrycrKqrLUlLFaS+d4k5KS2LBhA88++yxQWqZcXV1ZsmQJN954IwBpaWls376dl1566ayv5+7uXn5/PHFMfk3cGdU1iK83HWLOqmSVJRGpMwzD4PFF28k6VUSnlt78daDuZ2k2hxjTi4iIYNiwYUyePJnY2FhiY2OZPHkyI0eOrHAlXHh4OIsWLSr/ev78+axYsaJ8+YDBgwczZsyY8hO6rVYrd955Jw899BC//vormzdv5rbbbqNz584MGjTI7u9T7KtsGYEft6WRnpVvbhgRkdO+iUthabym3+oSh/kv8Pnnn9O5c2eGDBnCkCFD6NKlC59++mmFbRISEsjK+t/KzGlpaURHRxMeHs59991HdHQ0X375ZYV9Xn/9dcaMGcONN97IZZddhqenJ9999905z2sSx9eppZXeYc0othl8vna/2XFERMjIzmfG4p0A3H91O8IDNf1WFzjEOkt1ndZZclw/bkvjb59vormXG6seuwoPV5VkETGHYRjc9fEGft11mM4trSz6Wz9cNKpUq+rVOksitWVIZAAtfRpxLLeQxVtSzY4jIg3Ywk0p/LrrMG7OTrx6Y1cVpTpE/yWkQXNxdiI66n/LCGigVUTMkJ6Vz4zvSq9+u39QO9oHNDE5kfyRypI0eDddGoKHqxPxadms23fc7Dgi0sAYhsH0hVvJyS+ma7CVu69oY3Yk+ROVJWnwfDzdGNs9GNAilSJifws2HmJ5whHcnJ14ZZym3+oi/RcR4X/LCPyyM52Dx/PMDSMiDUZa1ime+a706repg9vTTtNvdZLKkgjQPqAJ/dv6YjNKb7ArIlLbDMPgsa+3kVNQTLcQHyZf3trsSHIWKksip03sFwbAvHUHyCssNjeMiNR78zcc4rfEI7i5aPqtrtN/GZHTrgr3J7S5J9n5xSzclGJ2HBGpx1IzT/Hs96XTbw8Nbk9b/8YmJ5KqqCyJnObkZOH2qDAA5q7WMgIiUjsMw+DRr7eSU1BM91Y+3HW5rn6r61SWRP5gXK9gvNyc2X34JCt3HzU7jojUQ/PWH+T3pKO4n55+c3aymB1JzkFlSeQPmni4Mq5XCKBlBESk5qVknuL5H+IBmDa0A5f4afrNEagsifzJ7f3CsFhg2a7D7Duaa3YcEaknDMPg0QVbOVlQTK/Qpky6TFe/OQqVJZE/ae3rxZUd/AH4eHWyuWFEpN74Yt0BVu4unX576YYumn5zICpLIpUoW6Ry/oaD5OQXmRtGRBzeweN5vHB6+u2RYeG00fSbQ1FZEqlE/7a+tPVvTG5hCfM3HDI7jog4MJut9Oq33MISLg1ryqTTa7qJ41BZEqmExWIpX6Ty4zXJlNi0jICIVM/n6w6wes8xPFydePmGrjhp+s3hqCyJnMV1PVri7eHC/mN5LN912Ow4IuKADh7PY+aPpdNvjw4LJ8zXy+REUh0qSyJn4enmws29WwGli1SKiFwIm81g2oIt5BWW0Lt1s/JFb8XxqCyJVCE6KhQnC6zcfZTEjByz44iIA/ls7X5i9x6nkaszL9/QRdNvDkxlSaQKwU09GRIZCGiRShE5fweO5THzx10APDY8nNDmmn5zZCpLIudQtozAos2HyMwrNDeMiNR5NpvBwwu2cKqohL5tmhHdN9TsSHKRVJZEzqF362ZEtvAmv8jGvPUHzY4jInXcJ2uSWbfvOJ5uzrx0va5+qw9UlkTOwWKxMPH06NInq5MpLrGZG0hE6qzko7m8GJMAwPTh4bRq7mlyIqkJKksi52F01yCae7mRmpXPLzszzI4jInWQzWbwyIKtnCoqIapNc27to+m3+kJlSeQ8eLg6c0uf0mUE5qzaZ3IaEamL5q5OZl3ycbzcnHlJV7/VKypLIufptr6huDhZWJ98gu0pWWbHEZE6ZN/RXF76ufTqt+nXRBDSTNNv9YnKksh5CvD24JrOLQAtIyAi/1NiM5g2fwv5RTb6t/Xl1tOj0FJ/qCyJXICyZQS+25LKkZwCc8OISJ0wZ9U+Nuw/QWN3F2Zd3xmLRdNv9Y3KksgF6N6qKd1CfCgssfHF2gNmxxERk+05cpKXfy69+u3xayIIbqrpt/pIZUnkApWNLn22dj+FxVpGQKShKpt+Kyi2cXk7X27uHWJ2JKklKksiF2h4pxb4N3HnSE4BP25LMzuOiJjko5X72HQg8/T0WxdNv9VjKksiF8jNxan89gVzVu3DMAyTE4mIve0+fJKXfymdfntiRAQtfRqZnEhqk8qSSDXc0qcVbi5ObDmUxeaDmWbHERE7KrEZTFuwhcJiG1e092P8pZp+q+9UlkSqoXljd67tGgRoGQGRhubfv+9l84FMmri78KKufmsQVJZEqqnsfnE/bUsjPSvf3DAiYhe7D+fw6pJEAJ4cFUkLq6bfGgKVJZFq6hhkpXfrZhTbDD6NTTY7jojUsuISGw/N30phsY0rO/gxrmew2ZHETlSWRC7CHadHl75Ye4D8ohJzw4hIrfrX73vZcjCTJh4uzLxOV781JCpLIhdhUEQALX0acSKviMVxqWbHEZFakpiRwxtLkgB4elRHAq0eJicSe1JZErkILs5OTIgqXUbgIy0jIFIvFZfYeHj+FgpLbFwV7s/1PVqaHUnsTGVJ5CLddGkrGrk6sys9h9i9x82OIyI17P3/7mXroSy8PVyYeZ2ufmuIVJZELpLV05XrTv9Lc+7qfSanEZGalJCewxtLS69+mzG6IwHemn5riFSWRGrAxH5hACzZmcHB43nmhhGRGlF0evqtqMRgUIQ/Y7tr+q2hUlkSqQHtAppweTtfbAZ8sibZ7DgiUgPeW7GHbSlZWBu58sJYTb81ZCpLIjVk0ullBOatP0huQbG5YUTkosSnZfPmstKr3/4xuiP+mn5r0FSWRGrIwPb+hDX3JCe/mIWbU8yOIyLV9Mfpt8GRAVzbLcjsSGIylSWRGuLkZOH20+cuzV21D5tNywiIOKJ3lu9hR2o2Pp6uPD+2k6bfRGVJpCbd0DOYxu4u7DmSy++7j5odR0Qu0I7ULN764/RbE02/icqSSI1q4uHKuF6l94uas0rLCIg4ksJiGw/P30qxzWBoxwBGd9X0m5RSWRKpYbdHhWGxwIqEI+w9ctLsOCJynt5evpv4tGyaerry3Bhd/Sb/o7IkUsPCfL24qoM/AB+vTjY3jIicl+0pWby9fDcAz1zbCb8m7iYnkrpEZUmkFky6rDUACzYeIju/yOQ0IlKV0um3LRTbDIZ3CmRklxZmR5I6RmVJpBZc1rY57QMak1tYwn/WHzQ7johUYfayJHal59DMy41nx+jqNzmTypJILbBYLEzsVzq69PGaZPKLSkxOJCKV2Z6Sxdsr9gDw7LWd8G2s6Tc5k8qSSC0Z270lPp6uHDx+ilFvrWTLwUyzI4nIHxQUl/DQf7ZQYjMY0aUFIzT9JmehsiRSSxq5OTP75h74NnYn6fBJrnt3NS/F7KKgWKNMInXBW7/uJiEjh+ZebjwzuqPZcaQOU1kSqUX92/myZOoVjO4aRInN4J0Vexj11kq2Hso0O5pIg7b1UCbv/lY6/fbcmE401/SbVEFlSaSWNfVy482bu/PebT3wbexGYsZJxr6zmld+TtAok4gJCopLeHh+6fTbqK5BDO+s6TepmsqSiJ0M69SCX6YOYGSXFpTYDGYv383ot1axPSXL7GgiDco/lyaRmHES38Zu/EPTb3IeVJZE7KiZlxuzb+nBu7f2oLmXGwkZOVz79ipe+yWBwmKb2fFE6r24g5m8Vz791plmXm4mJxJHoLIkYoLhnVvwy9QrGNG5dJTpzWW7GT17pUaZRGpRflHp9JvNgGu7BTGsU6DZkcRBqCyJmKR5Y3fevrUHb9/Sg2ZebuxKz2HM26t4bUmiRplEasEbS5PYffgkvo3dmTFK029y/lSWREw2okvpKNPwToEU2wze/DWJa99exc7UbLOjidQbmw6c4F//LZ1+e2FsJ5pq+k0ugMqSSB3g29idd27twVs3d6eppyvxadmMnr2SN5YmUlSiUSaRi5FfVMK009NvY7u3ZEhHTb/JhXGYsnTixAmio6OxWq1YrVaio6PJzMyscp+MjAwmTpxIUFAQnp6eDBs2jKSkpPLvHz9+nHvvvZcOHTrg6elJq1atuO+++8jK0nkjYn8Wi4VRXYP4ZeoAhnUsHWV6Y2kSY95eRXyaRplEquu1JYnsOZKLXxN3nh4VaXYccUAOU5ZuueUW4uLiiImJISYmhri4OKKjo8+6vWEYjBkzhr179/Ltt9+yefNmQkNDGTRoELm5uQCkpqaSmprKK6+8wrZt25g7dy4xMTHceeed9npbImfwa+LOu7f14M2bu+Pj6cqO1NJRpjd/TdIok8gFKCy28e/f9/Lv3/cCMHNsZ3w8Nf0mF85iGIZhdohziY+PJzIyktjYWPr06QNAbGwsUVFR7Nq1iw4dOpyxT2JiIh06dGD79u107Fh6Il9JSQn+/v68+OKL3HXXXZX+rPnz53PbbbeRm5uLi4vLeeXLzs7GarWSlZWFt7d3Nd+lyJkO5+TzxKLt/LIzA4BOLb15ZVxXwgP1eyZyNoZhsGRnBjN/2sW+o6X/OL6xVzAv3dDV5GRS15zv32+HGFlas2YNVqu1vCgB9O3bF6vVyurVqyvdp6CgAAAPD4/y55ydnXFzc2PlypVn/VllB+x8i5JIbfJv4sH70T35503dsDZyZXtKNqPeWsnsZUkUa5RJ5Aw7UrO45YO1/OXTjew7motvY3dmXdeZmdd1MTuaODCHaATp6en4+/uf8by/vz/p6emV7hMeHk5oaCjTp0/n/fffx8vLi9dee4309HTS0tIq3efYsWM8++yz3H333VXmKSgoKC9jUNpMRWqLxWLh2m4tiWrTnMcXbWdpfAav/JLIzzsyeGVcVzoENjE7oojpDmfn8+ovifxn40EMA9xcnLirf2v+dmVbGrs7xJ86qcNMHVmaMWMGFoulyseGDRuA0j8Yf2YYRqXPA7i6uvL111+TmJhIs2bN8PT0ZMWKFQwfPhxnZ+czts/OzmbEiBFERkby9NNPV5l75syZ5SeaW61WQkJCqvHuRS6Mv7cHH0zoyevju2Jt5Mq2lCxGvbWSt5fv1iiTNFj5RSXMXpbEwFdW8NWG0qI0sksLfn1wAI8MC1dRkhph6jlLR48e5ejRo1VuExYWxhdffMGDDz54xtVvPj4+vP7660yaNKnK18jKyqKwsBA/Pz/69OlDr169ePvtt8u/n5OTw9ChQ/H09OT777+vMHVXmcpGlkJCQnTOktjN4ex8Hl+0jaXxhwHoGmzllXFdaRegUSZpGAzDYPGWVF6KSSAl8xQAXUN8eGpkBD1Dm5mcThzF+Z6z5FAneK9du5bevXsDsHbtWvr27XvWE7wrk5SURHh4OD/99BNDhgwBSg/U0KFDcXd358cff8TT0/OC8+kEbzGDYRgs3JTCP77bQXZ+MW7OTkwd3J7Jl7fGxdkhTkcUqZZNB07w7Pc72XwgE4AgqwePDg9nVJcgnJwqn20QqUy9KksAw4cPJzU1lffffx+Av/zlL4SGhvLdd9+VbxMeHs7MmTMZO3YsUHplm5+fH61atWLbtm3cf//99OzZk6+//hooHVEaPHgweXl5LFq0CC8vr/LX8vPzq3S6rjIqS2Km9KzSUaZlu06PMoX48Oq4LrT11yiT1C8pmad48addLN6SCoCnmzN/HXAJd13ehkZu5/d5LfJH5/v322Emcz///HPuu+++8hGh0aNHM3v27ArbJCQkVFhQMi0tjQcffJCMjAxatGjBhAkTePLJJ8u/v3HjRtauXQtA27ZtK7zWvn37CAsLq6V3I1JzAq0efHh7LxZsPMQz3+9ky8FMrnlzJQ8Obs/ky9vgrH9pi4PLLSjm3RV7+OD3vRQU27BY4IYewTw8tAMB3lWfNiFSExxmZKku08iS1BXpWfk8tnArKxKOANC9lQ8v39CVtv6NTU4mcuFKbAYLNh7klV8SOZJTep5on9bNeHJkJJ1aWk1OJ/VBvZuGq8tUlqQuMQyD+RsO8ez3O8kpKMbNxYmHh7Tnzv4aZRLHsXrPUZ77Pp6dp2/1E9rck8eviWBIZMBZr4IWuVAqS3aksiR1UWrmKR5buI3/JpaOMvVo5cPL47pyiZ9GmaTu2nc0lxd+jGfJ6VXrm3i4cP/V7ZgQFYabiy5ckJqlsmRHKktSVxmGwX82HOTZ7+M5WVCMu4sT04Z2YNJlrTXKJHVKVl4Rby5L4pM1yRSVGDg7Wbi1TyseGNSeZl66n5vUDpUlO1JZkrouJfMUj329ld+TStc16xXalJdu6EIbjTKJyYpKbHweu583fk0iM68IgIEd/Pi/ayK0bpjUOpUlO1JZEkdgGAbz1h/k+R80yiTmMwyD5QmHef6HePYcKb3ZbTv/xjwxMpIB7f1MTicNhcqSHaksiSNJyTzFowu2snJ36SjTpWFNefmGroT5ep1jT5GakZCew3M/7Cwf6Wzm5caDg9tz06UhWlBV7EplyY5UlsTRGIbBF+sO8MIP8eQWluDh6sQjQ8OZ2C9MKyBLrTl6soDXliQyb90BbAa4OTsx6bIw/n5VW7w9XM2OJw2QypIdqSyJozp4PI/HFm5l1e5jAPRu3YyXb+hCaHONMknNKSguYc6qZN5etpucgmIAhncK5LHh4fpdE1OpLNmRypI4MsMw+HztAV74MZ68whIauTrz6LAOTIjSKJNcHMMw+Gl7OjN/iufg8dKb3XZuaeWJERH0adPc5HQiKkt2pbIk9cHB43k8smAra/aWjjL1ad2Ml2/oSqvmF35zaZGthzJ59vudrE8+AUCAtzvThoZzXfeWKuFSZ6gs2ZHKktQXNpvB52v388KPuzhVVIKnmzOPDQ/ntj6h+gMn5yUt6xQvxySwcHMKAB6uTvzliku4Z0AbPN0c5nak0kCoLNmRypLUNweO5TFtwRbW7jsOQN82paNMIc00yiSVyyss5v3f9vL+f/eQX2QD4LruLZk2rAMtrI1MTidSOZUlO1JZkvrIZjP4NHY/s3763yjT9GsiuLV3K40ySTmbzWDR5hRe/jmB9Ox8oHTR0ydHRtI1xMfccCLnoLJkRypLUp/tP5bLtPlbWZdcOsrU75LmvHh9F40yCev2Hee5H3ay9VAWAMFNGzF9eATXdA7UzW7FIags2ZHKktR3NpvBx2uSeTFmF/lFNrzcnHl8RAS39G6lP4oN0IFjecyKiefHbekANHZ34e9XtmXSZWF4uDqbnE7k/Kks2ZHKkjQUyUdzmbZgS/kVTv3b+jLr+s4EN9UoU0OQnV/E28t2M2dVMoUlNpwscFPvVjw4uD2+jd3NjidywVSW7EhlSRoSm81gzupkXv65dJSpsbsLj18Twc29QzTKVE8Vl9iYt/4gry9J5FhuIQCXt/Pl/0ZEEB6ozzxxXCpLdqSyJA3RvqO5TJu/hQ37S0eZLm/ny6zru9DSR1c+1Sf/TTzCcz/sJDHjJABt/Lx4YkQEV3bwVzkWh6eyZEcqS9JQldgM5qzax8s/J1BQXDrK9MSICMZfqlEmR7f7cA7P/xDP8oQjAPh4uvLA1e24tW8orrrZrdQTKkt2pLIkDd2eIyeZNn8Lmw5kAnBFez9mXdeZII0yOZzjuYW8sTSRz9ceoMRm4OJkYUJUGPdf3Q6rp252K/WLypIdqSyJlI4yfbhyL6/8kkhhsY0m7i48OTKScb2CNcrkAAqLbXyyJpk3f00iO7/0ZreDIwOYPjycNn6NTU4nUjtUluxIZUnkf3YfPsm0BVvYfHqUaWAHP2Ze11mrONdRhmHwy84MZv4YT/KxPAAiWnjz5IgI+rX1NTmdSO1SWbIjlSWRikpsBv/+fS+vLjk9yuRxepSpp0aZ6pIdqVk8+/1OYveWLjjq29idaUPbc0PPEJy1Srs0ACpLdqSyJFK53YdzeGj+VrYczATgyg5+zLyuC4FWD3ODNXCHs/N55ZcE5m88hGGAm4sTky9vzV8HtqWxu252Kw2HypIdqSyJnF1xiY0Pft/H60sSKSyx4e3hwlOjOnJ9j5YaZbKz/KIS/v37Xt5ZsYe8whIARnUN4tFhHbSwqDRIKkt2pLIkcm5JGTk8PH8LW07fR+zqcH9euK4zAd4aZapthmGweEsqL/60i9Ss0pvddgvx4cmRkfQMbWpyOhHzqCzZkcqSyPkpLrHx/n/38s+lSeWjTDNGd2Rsd40y1ZaN+0/w7Pc7iTs9FRpk9eDR4eGM7hqkYy4NnsqSHaksiVyYhPTSUaZtKaWjTIMiAnhhbCf8NcpUYw6dyOPFmAS+25IKgKebM38beAl3Xd5GN7sVOU1lyY5UlkQuXNko0xtLEykqMbA2cuUfoztybTeNeFyMkwXFvLtiN//+fR8FxTYsFhjXM5iHh3RQGRX5E5UlO1JZEqm+XenZPDx/C9tTsoHShRCfH9sJ/yb6w34hSmwG8zcc5JVfEjl6sgCAvm2a8cSISDq1tJqcTqRuUlmyI5UlkYtTVGLjvRV7eHNZEkUlBj6epaNMOq/m/KzefZRnf4gnPq20cIY19+TxayIYHBmg4ydSBZUlO1JZEqkZ8WnZPPSfLew8/Ud/aMcAnhvTGb8m7iYnq5v2HjnJCz/uYml8BgDeHi7cd3U7JkSF4eaim92KnIvKkh2pLInUnKISG+8s38Nby5Iothk09XTlH9d2YlSXFholOS0rr4h//prEJ2uSKbYZODtZuK1PK+4f1J5mXm5mxxNxGCpLdqSyJFLzdqaWnstUNso0vFMgz47phG/jhjvKVFRi4/PY/bzxaxKZeUVA6aro/zcigrb+TUxOJ+J4VJbsSGVJpHYUFtt4e/lu3l6+m2KbQTMvN565tiMjuwSZHc2uDMNgecJhnv8hnj1HcgFoH9CYJ0ZEckV7P5PTiTgulSU7UlkSqV3bU7J4eP4WdqXnAHBN50CevbYTzRvAKNOu9Gye+z6elbuPAtDcy40Hh7RnfK8QXJx1XpLIxVBZsiOVJZHaV1hsY/ayJN5esYcSm0FzLzeeHdOJazq3MDtarTh6soBXf0nkq/UHsBng5uzEpP5h/P3Ktnh7uJodT6ReUFmyI5UlEfv58yjTiC4tePbaTvXmxOb8ohLmrErm7eW7OVlQDJSOpD02LIJWzXWzW5GapLJkRypLIvZVUFzCW7/u5t3f/jfK9NyYTgx34FEmwzD4cVs6M3+K59CJUwB0CbbyxIhIerduZnI6kfpJZcmOVJZEzLH1UCYPz99CYsZJAEZ1DeKZ0R1p6mCjTFsOZvLcDztZn3wCgEBvDx4Z1oEx3Vri5KTlEkRqi8qSHaksiZinoLiEN39N4t0Ve7AZ4NvYjefGdGZYp0Czo51TWtYpXo5JYOHmFAAauTpz94A2/OWKNni6uZicTqT+U1myI5UlEfNtOVg6ypR0uHSU6dpuQcwYVTdHmfIKi3nvt7386797yC+yAXBdj5Y8MjScQKvuiSdiLypLdqSyJFI35BeV8M9fk3j/t7JRJndeGNuJIR3rxiiTzWawcHMKL/+8i4zs0pvdXhrWlCdHRtIl2MfccCINkMqSHaksidQtcQczeeg/ceULOI7t3pKnR0Xi42neKNO6fcd59vudbEvJAiCkWSOmD49geKdA3cZFxCQqS3aksiRS9+QXlfD60kQ++O9ebAb4NXFn5tjODIoMsGuOA8fymPlTPD9tTwegibsLU65qy+39wvBwdbZrFhGpSGXJjlSWROquTQdOMG3+lvJRpuu6t+TpUR2xetbuwo7Z+UXMXrabuauSKSyx4WSBm3u3Yurg9g36/nYidYnKkh2pLInUbflFJby+JJF//b4Xw4AAb3dmXteZq8JrfpSpuMTGl+sP8vqSRI7nFgJweTtfnhgRSYdA3exWpC5RWbIjlSURx7Bxf+ko096jpaNM1/cI5qlRkVgb1cwo02+JR3j+h53l6z5d4ufFEyMiGdjBT+clidRBKkt2pLIk4jjyi0p49ZcE/r1yX/ko06zrunBluH+1X3P34Rye+yGeFQlHAPDxdGXqoPbc0qcVrrrZrUidpbJkRypLIo5nQ/Jxpi3Yyr7To0zjegbzxMgLG2U6nlvIG0sT+XztAUpsBq7OFiZEhXHfVe1q/ZwoEbl4Kkt2pLIk4phOFZbwyi8JfLSqdJQp0NuDWdd3ZmCHqkeZCottfLImmX/+mkROfunNbodEBjD9mgha+3rZI7qI1ACVJTtSWRJxbOuTjzNt/haSj+UBML5XCP83MgJvj4qjQ4Zh8POODGb+FM/+09tGtvDmiZER9LvE1+65ReTiqCzZkcqSiOM7VVjCSz/vYu7qZAwDWlg9ePH6LlzR3g+A7SlZPPfDTmL3HgdK122aNqQD1/cMxlk3uxVxSCpLdqSyJFJ/rN17jGkLtnLgeOnI0U2XhlBiM1iw6RCGAe4uTky+vA33DLyExu662a2II1NZsiOVJZH6Ja+wmJdiEpi7OrnC89d2C+KRYeG09GlkTjARqVHn+/db/ywSEfkTTzcXZozuyLBOgTz97Q6snq48NjycHq2amh1NREygkaUaoJElERERx3O+f7+1WpqIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoOU5ZOnDhBdHQ0VqsVq9VKdHQ0mZmZVe6TkZHBxIkTCQoKwtPTk2HDhpGUlFTptoZhMHz4cCwWC998803NvwERERFxSA5Tlm655Rbi4uKIiYkhJiaGuLg4oqOjz7q9YRiMGTOGvXv38u2337J582ZCQ0MZNGgQubm5Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":25},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]} \ No newline at end of file diff --git a/jobflow_simple.ipynb b/jobflow_simple.ipynb index d650e39..3afbce6 100644 --- a/jobflow_simple.ipynb +++ b/jobflow_simple.ipynb @@ -1,334 +1 @@ -{ - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.12.8", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - } - }, - "nbformat_minor": 5, - "nbformat": 4, - "cells": [ - { - "id": "982a4fbe-7cf9-45dd-84ae-9854149db0b9", - "cell_type": "markdown", - "source": "# jobflow", - "metadata": {} - }, - { - "id": "e6180712-d081-45c7-ba41-fc5191f10427", - "cell_type": "markdown", - "source": "## Define workflow with jobflow", - "metadata": {} - }, - { - "id": "000bbd4a-f53c-4eea-9d85-76f0aa2ca10b", - "cell_type": "code", - "source": "from jobflow import job, Flow", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": "/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n" - } - ], - "execution_count": 1 - }, - { - "id": "06c2bd9e-b2ac-4b88-9158-fa37331c3418", - "cell_type": "code", - "source": "from python_workflow_definition.jobflow import write_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 2 - }, - { - "id": "fb847d49-7bf9-4839-9b99-c116d1b0e9ee", - "cell_type": "code", - "source": [ - "from simple_workflow import (\n", - " add_x_and_y as _add_x_and_y, \n", - " get_prod_and_div as _get_prod_and_div,\n", - ")" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 3 - }, - { - "id": "8f95244e", - "cell_type": "code", - "source": "workflow_json_filename = \"jobflow_simple.json\"", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 4 - }, - { - "id": "07598344-0f75-433b-8902-bea21a42088c", - "cell_type": "code", - "source": [ - "add_x_and_y = job(_add_x_and_y)\n", - "get_prod_and_div = job(_get_prod_and_div, data=[\"prod\", \"div\"])" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 5 - }, - { - "id": "ecef1ed5-a8d3-48c3-9e01-4a40e55c1153", - "cell_type": "code", - "source": "obj = get_prod_and_div(x=1, y=2)", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 6 - }, - { - "id": "2b88a30a-e26b-4802-89b7-79ca08cc0af9", - "cell_type": "code", - "source": "w = add_x_and_y(x=obj.output.prod, y=obj.output.div)", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 7 - }, - { - "id": "a5e5ca63-2906-47c9-bac6-adebf8643cba", - "cell_type": "code", - "source": "flow = Flow([obj, w])", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 8 - }, - { - "id": "e464da97-16a1-4772-9a07-0a47f152781d", - "cell_type": "code", - "source": "write_workflow_json(flow=flow, file_name=workflow_json_filename)", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 9 - }, - { - "id": "bca646b2-0a9a-4271-966a-e5903a8c9031", - "cell_type": "code", - "source": "!cat {workflow_json_filename}", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": "{\"nodes\": {\"0\": \"simple_workflow.add_x_and_y\", \"1\": \"simple_workflow.add_x_and_y_and_z\", \"2\": 1, \"3\": 2}, \"edges\": [{\"tn\": 0, \"th\": \"x\", \"sn\": 2, \"sh\": null}, {\"tn\": 0, \"th\": \"y\", \"sn\": 3, \"sh\": null}, {\"tn\": 1, \"th\": \"x\", \"sn\": 0, \"sh\": \"x\"}, {\"tn\": 1, \"th\": \"y\", \"sn\": 0, \"sh\": \"y\"}, {\"tn\": 1, \"th\": \"z\", \"sn\": 0, \"sh\": \"z\"}]}" - } - ], - "execution_count": 10 - }, - { - "id": "87a27540-c390-4d34-ae75-4739bfc4c1b7", - "cell_type": "markdown", - "source": "## Load Workflow with aiida", - "metadata": {} - }, - { - "id": "66a1b3a6-3d3b-4caa-b58f-d8bc089b1074", - "cell_type": "code", - "source": "from aiida import load_profile\n\nload_profile()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "execution_count": 11, - "output_type": "execute_result", - "data": { - "text/plain": "Profile" - }, - "metadata": {} - } - ], - "execution_count": 11 - }, - { - "id": "4679693b-039b-45cf-8c67-5b2b3d705a83", - "cell_type": "code", - "source": "from python_workflow_definition.aiida import load_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 12 - }, - { - "id": "68c41a61-d185-47e8-ba31-eeff71d8b2c6", - "cell_type": "code", - "source": "wg = load_workflow_json(file_name=workflow_json_filename)\nwg", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "execution_count": 13, - "output_type": "execute_result", - "data": { - "text/plain": "NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 1, - "model_id": "14e9a03e426b468dbfe338d7f734a41a" - } - }, - "metadata": {} - } - ], - "execution_count": 13 - }, - { - "id": "05228ece-643c-420c-8df8-4ce3df379515", - "cell_type": "code", - "source": "wg.run()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": "04/02/2025 02:37:38 PM <422> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y1\n04/02/2025 02:37:38 PM <422> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: add_x_and_y1, type: PyFunction, finished.\n04/02/2025 02:37:38 PM <422> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y_and_z2\n04/02/2025 02:37:39 PM <422> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|update_task_state]: Task: add_x_and_y_and_z2, type: PyFunction, finished.\n04/02/2025 02:37:39 PM <422> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/02/2025 02:37:39 PM <422> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [16|WorkGraphEngine|finalize]: Finalize workgraph.\n" - } - ], - "execution_count": 14 - }, - { - "id": "2c942094-61b4-4e94-859a-64f87b5bec64", - "cell_type": "markdown", - "source": "## Load Workflow with pyiron_base", - "metadata": {} - }, - { - "id": "40672826-23bf-4c24-84e2-a6b9d87e2a3f", - "cell_type": "code", - "source": "from pyiron_base import Project", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 15 - }, - { - "id": "ea102341-84f7-4156-a7d1-c3ab1ea613a5", - "cell_type": "code", - "source": "from python_workflow_definition.pyiron_base import load_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 16 - }, - { - "id": "f45684a8-2613-415a-ab0a-5cb2bafaffea", - "cell_type": "code", - "source": "pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "0it [00:00, ?it/s]", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "f4514974ee9546f788ea311ec80db1c9" - } - }, - "metadata": {} - } - ], - "execution_count": 17 - }, - { - "id": "8f2a621d-b533-4ddd-8bcd-c22db2f922ec", - "cell_type": "code", - "source": "delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": "", - "image/svg+xml": "\n\n\n\n\ncreate_function_job_988efa8422518ba29903b66c63607fb8\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x75516fcff020>\n\n\n\nx_b8003ea81f8e4a9bdbfd3b4eb1e68e2b\n\nx=<pyiron_base.project.delayed.DelayedObject object at 0x75516fcfebd0>\n\n\n\nx_b8003ea81f8e4a9bdbfd3b4eb1e68e2b->create_function_job_988efa8422518ba29903b66c63607fb8\n\n\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce\n\nx=1\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->x_b8003ea81f8e4a9bdbfd3b4eb1e68e2b\n\n\n\n\n\ny_f60ae41b1c92823db71999ac596241ab\n\ny=<pyiron_base.project.delayed.DelayedObject object at 0x75516fcfeba0>\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->y_f60ae41b1c92823db71999ac596241ab\n\n\n\n\n\nz_a926da40ec18154feb3f3bb147af8220\n\nz=<pyiron_base.project.delayed.DelayedObject object at 0x75516fcfe810>\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->z_a926da40ec18154feb3f3bb147af8220\n\n\n\n\n\ny_f60ae41b1c92823db71999ac596241ab->create_function_job_988efa8422518ba29903b66c63607fb8\n\n\n\n\n\nz_a926da40ec18154feb3f3bb147af8220->create_function_job_988efa8422518ba29903b66c63607fb8\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6\n\ny=2\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->x_b8003ea81f8e4a9bdbfd3b4eb1e68e2b\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->y_f60ae41b1c92823db71999ac596241ab\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->z_a926da40ec18154feb3f3bb147af8220\n\n\n\n\n" - }, - "metadata": {} - } - ], - "execution_count": 18 - }, - { - "id": "cf80267d-c2b0-4236-bf1d-a57596985fc1", - "cell_type": "code", - "source": "delayed_object.pull()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": "The job add_x_and_y_68901482a2c5221cc845f828aabebd27 was saved and received the ID: 1\nThe job add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d was saved and received the ID: 2\n" - }, - { - "execution_count": 19, - "output_type": "execute_result", - "data": { - "text/plain": "6" - }, - "metadata": {} - } - ], - "execution_count": 19 - }, - { - "id": "9d819ed0-689c-46a7-9eff-0afb5ed66efc", - "cell_type": "code", - "source": "", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": null - } - ] -} +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"982a4fbe-7cf9-45dd-84ae-9854149db0b9","cell_type":"markdown","source":"# jobflow","metadata":{}},{"id":"e6180712-d081-45c7-ba41-fc5191f10427","cell_type":"markdown","source":"## Define workflow with jobflow","metadata":{}},{"id":"000bbd4a-f53c-4eea-9d85-76f0aa2ca10b","cell_type":"code","source":"from jobflow import job, Flow","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":1},{"id":"06c2bd9e-b2ac-4b88-9158-fa37331c3418","cell_type":"code","source":"from python_workflow_definition.jobflow import write_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"fb847d49-7bf9-4839-9b99-c116d1b0e9ee","cell_type":"code","source":"from simple_workflow import (\n add_x_and_y as _add_x_and_y, \n get_prod_and_div as _get_prod_and_div,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"8f95244e","cell_type":"code","source":"workflow_json_filename = \"jobflow_simple.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"07598344-0f75-433b-8902-bea21a42088c","cell_type":"code","source":"add_x_and_y = job(_add_x_and_y)\nget_prod_and_div = job(_get_prod_and_div, data=[\"prod\", \"div\"])","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"ecef1ed5-a8d3-48c3-9e01-4a40e55c1153","cell_type":"code","source":"obj = get_prod_and_div(x=1, y=2)","metadata":{"trusted":true},"outputs":[],"execution_count":6},{"id":"2b88a30a-e26b-4802-89b7-79ca08cc0af9","cell_type":"code","source":"w = add_x_and_y(x=obj.output.prod, y=obj.output.div)","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"id":"a5e5ca63-2906-47c9-bac6-adebf8643cba","cell_type":"code","source":"flow = Flow([obj, w])","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"id":"e464da97-16a1-4772-9a07-0a47f152781d","cell_type":"code","source":"write_workflow_json(flow=flow, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"id":"bca646b2-0a9a-4271-966a-e5903a8c9031","cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\"nodes\": [{\"id\": 0, \"function\": \"simple_workflow.get_prod_and_div\"}, {\"id\": 1, \"function\": \"simple_workflow.add_x_and_y\"}, {\"id\": 2, \"value\": 1}, {\"id\": 3, \"value\": 2}], \"edges\": [{\"target\": 0, \"targetPort\": \"x\", \"source\": 2, \"sourcePort\": null}, {\"target\": 0, \"targetPort\": \"y\", \"source\": 3, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"x\", \"source\": 0, \"sourcePort\": \"prod\"}, {\"target\": 1, \"targetPort\": \"y\", \"source\": 0, \"sourcePort\": \"div\"}]}"}],"execution_count":10},{"id":"87a27540-c390-4d34-ae75-4739bfc4c1b7","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"66a1b3a6-3d3b-4caa-b58f-d8bc089b1074","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":11,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":11},{"id":"4679693b-039b-45cf-8c67-5b2b3d705a83","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"68c41a61-d185-47e8-ba31-eeff71d8b2c6","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)\nwg","metadata":{"trusted":true},"outputs":[{"execution_count":13,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"446bdf6725a9438e91af6f0ca4bd55ed"}},"metadata":{}}],"execution_count":13},{"id":"05228ece-643c-420c-8df8-4ce3df379515","cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 11:27:56 AM <381> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_prod_and_div1\n04/12/2025 11:27:57 AM <381> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|update_task_state]: Task: get_prod_and_div1, type: PyFunction, finished.\n04/12/2025 11:27:57 AM <381> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y2\n04/12/2025 11:27:58 AM <381> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|update_task_state]: Task: add_x_and_y2, type: PyFunction, finished.\n04/12/2025 11:27:58 AM <381> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 11:27:58 AM <381> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":14},{"id":"2c942094-61b4-4e94-859a-64f87b5bec64","cell_type":"markdown","source":"## Load Workflow with pyiron_base","metadata":{}},{"id":"40672826-23bf-4c24-84e2-a6b9d87e2a3f","cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"ea102341-84f7-4156-a7d1-c3ab1ea613a5","cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":16},{"id":"f45684a8-2613-415a-ab0a-5cb2bafaffea","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"abd26e6c402949569a7bdc1d627eb7ee"}},"metadata":{}}],"execution_count":17},{"id":"8f2a621d-b533-4ddd-8bcd-c22db2f922ec","cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=workflow_json_filename)\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_65c7f45cff3952fa90203cdbc4f68274\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f47fd2f3c50>\n\n\n\nx_497c5ebc48033cf60f366c0fd3763723\n\nx=<pyiron_base.project.delayed.DelayedObject object at 0x7f47fd2f3980>\n\n\n\nx_497c5ebc48033cf60f366c0fd3763723->create_function_job_65c7f45cff3952fa90203cdbc4f68274\n\n\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce\n\nx=1\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->x_497c5ebc48033cf60f366c0fd3763723\n\n\n\n\n\ny_2aeb6a5422726bc4dfbbbadc099f1760\n\ny=<pyiron_base.project.delayed.DelayedObject object at 0x7f47fd2f3950>\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->y_2aeb6a5422726bc4dfbbbadc099f1760\n\n\n\n\n\ny_2aeb6a5422726bc4dfbbbadc099f1760->create_function_job_65c7f45cff3952fa90203cdbc4f68274\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6\n\ny=2\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->x_497c5ebc48033cf60f366c0fd3763723\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->y_2aeb6a5422726bc4dfbbbadc099f1760\n\n\n\n\n"},"metadata":{}}],"execution_count":18},{"id":"cf80267d-c2b0-4236-bf1d-a57596985fc1","cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_prod_and_div_5e64acfa88dc01309cd4ba60143865e3 was saved and received the ID: 1\nThe job add_x_and_y_82c0f2025c97ddd328aaebe50fb30c48 was saved and received the ID: 2\n"},{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"2.5"},"metadata":{}}],"execution_count":19},{"id":"9d819ed0-689c-46a7-9eff-0afb5ed66efc","cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]} \ No newline at end of file diff --git a/postBuild b/postBuild index 60a1ee3..e48e9f4 100644 --- a/postBuild +++ b/postBuild @@ -1,7 +1,7 @@ -pip install -e qe_xml_parser -pip install -e python_workflow_definition -verdi presto --profile-name pwd conda env create -n preprocessing -f source/envs/preprocessing.yaml -y conda env create -n processing -f source/envs/processing.yaml -y conda env create -n postprocessing -f source/envs/postprocessing.yaml -y -conda env update --name notebooks --file environment_qe.yml +conda env update --name base --file environment_qe.yml +pip install -e qe_xml_parser +pip install -e python_workflow_definition +verdi presto --profile-name pwd diff --git a/pyiron_base_nfdi.ipynb b/pyiron_base_nfdi.ipynb index 72cbcec..07cbce8 100644 --- a/pyiron_base_nfdi.ipynb +++ b/pyiron_base_nfdi.ipynb @@ -1 +1 @@ -{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"106ded66-d202-46ac-82b0-2755ca309bdd","cell_type":"markdown","source":"# pyiron\n\nhttps://github.com/BAMresearch/NFDI4IngScientificWorkflowRequirements","metadata":{}},{"id":"91dd48ea-aa7e-4937-a68e-59fc5017eb1e","cell_type":"markdown","source":"## Define workflow with pyiron_base","metadata":{}},{"id":"a76e6c0a-98f2-4436-af10-8097da183341","cell_type":"code","source":"from nfdi_ing_workflow import (\n generate_mesh as _generate_mesh, \n convert_to_xdmf as _convert_to_xdmf,\n poisson as _poisson,\n plot_over_line as _plot_over_line,\n substitute_macros as _substitute_macros,\n compile_paper as _compile_paper,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"id":"89c02460-b543-442c-a27e-f1757dc2262e","cell_type":"code","source":"from pyiron_base import Project, job\n\nfrom python_workflow_definition.pyiron_base import write_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"549ecf27-88ef-4e77-8bd4-b616cfdda2e4","cell_type":"code","source":"generate_mesh = job(_generate_mesh)\nconvert_to_xdmf = job(_convert_to_xdmf, output_key_lst=[\"xdmf_file\", \"h5_file\"])\npoisson = job(_poisson, output_key_lst=[\"numdofs\", \"pvd_file\", \"vtu_file\"])\nplot_over_line = job(_plot_over_line)\nsubstitute_macros = job(_substitute_macros)\ncompile_paper = job(_compile_paper)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"508e6549-f7b8-492b-8c88-9e46c08ffca9","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"df061dc9c1a14295b2a3aee30b619a5f"}},"metadata":{}}],"execution_count":4},{"id":"8d911f98-3b80-457f-a0f4-3cb37ebf1691","cell_type":"code","source":"domain_size = 2.0","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"71d411b6-cbec-489e-99e3-ba71680bcb5b","cell_type":"code","source":"gmsh_output_file = generate_mesh(\n domain_size=domain_size,\n pyiron_project=pr\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":6},{"id":"1d0d9804-f250-48b3-a5d0-a546d520f79b","cell_type":"code","source":"meshio_output_dict = convert_to_xdmf(\n gmsh_output_file=gmsh_output_file,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":7},{"id":"7b69bcff-e2b1-4d4a-b62c-6a1c86eeb590","cell_type":"code","source":"poisson_dict = poisson(\n meshio_output_xdmf=meshio_output_dict.output.xdmf_file, \n meshio_output_h5=meshio_output_dict.output.h5_file,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":8},{"id":"3c4a29b0-eb1e-490a-8be0-e03cfff15e0a","cell_type":"code","source":"pvbatch_output_file = plot_over_line(\n poisson_output_pvd_file=poisson_dict.output.pvd_file, \n poisson_output_vtu_file=poisson_dict.output.vtu_file,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":9},{"id":"a0a4c233-322d-4723-9627-62ca2487bfa9","cell_type":"code","source":"macros_tex_file = substitute_macros( \n pvbatch_output_file=pvbatch_output_file, \n ndofs=poisson_dict.output.numdofs, \n domain_size=domain_size,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":10},{"id":"c281408f-e63d-4380-a7e6-c595d49fbb8f","cell_type":"code","source":"paper_output = compile_paper(\n macros_tex=macros_tex_file, \n plot_file=pvbatch_output_file,\n pyiron_project=pr,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"63f29646-3846-4a97-a033-20e9df0ac214","cell_type":"code","source":"workflow_json_filename = \"pyiron_base_nfdi.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"f62111ba-9271-4987-9c7e-3b1c9f9eae7a","cell_type":"code","source":"write_workflow_json(delayed_object=paper_output, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"d789971e-8f41-45fa-832a-11fd72dea96e","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"a6e85e89-5d7a-40eb-809c-ac44974e3fd7","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":14},{"id":"3de84fb7-b01b-4541-868a-92e881eb6e77","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"b33f5528-10cd-47c8-8723-622902978859","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)\nwg","metadata":{"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"02c7a6f0732b44d3b1265dd09f0b7bf2"}},"metadata":{}}],"execution_count":16},{"id":"15282ca1-d339-40e7-ad68-8a7613ed08da","cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/04/2025 02:49:20 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_mesh6\n04/04/2025 02:49:22 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|update_task_state]: Task: generate_mesh6, type: PyFunction, finished.\n04/04/2025 02:49:22 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: convert_to_xdmf5\n04/04/2025 02:49:24 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|update_task_state]: Task: convert_to_xdmf5, type: PyFunction, finished.\n04/04/2025 02:49:24 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: poisson4\n04/04/2025 02:49:28 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|update_task_state]: Task: poisson4, type: PyFunction, finished.\n04/04/2025 02:49:28 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_over_line3\n04/04/2025 02:49:31 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|update_task_state]: Task: plot_over_line3, type: PyFunction, finished.\n04/04/2025 02:49:31 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: substitute_macros2\n04/04/2025 02:49:33 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|update_task_state]: Task: substitute_macros2, type: PyFunction, finished.\n04/04/2025 02:49:33 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: compile_paper1\n04/04/2025 02:49:36 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|update_task_state]: Task: compile_paper1, type: PyFunction, finished.\n04/04/2025 02:49:36 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/04/2025 02:49:36 PM <3075> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [31|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":17},{"id":"55dc8d12-dfe6-4465-a368-b7e590ae6800","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"dff46eb8-e0e7-49bb-8c40-0db2df133124","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":18},{"id":"6a189459-84e4-4738-ada1-37ee8c65b2ab","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":19},{"id":"6e7f3614-c971-4e2d-83f0-96f0d0fc04de","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":20},{"id":"2d87ed45-f5d9-403f-a03a-26be4a47a3ef","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-04 14:49:38,125 INFO Started executing jobs locally\n2025-04-04 14:49:39,097 INFO Starting job - generate_mesh (96c2a02e-82a1-4ec2-8c8f-03aaaaaa2199)\n2025-04-04 14:49:40,737 INFO Finished job - generate_mesh (96c2a02e-82a1-4ec2-8c8f-03aaaaaa2199)\n2025-04-04 14:49:40,738 INFO Starting job - convert_to_xdmf (27e8a0e1-b612-4ab4-8dec-f13a2e92c152)\n2025-04-04 14:49:42,432 INFO Finished job - convert_to_xdmf (27e8a0e1-b612-4ab4-8dec-f13a2e92c152)\n2025-04-04 14:49:42,433 INFO Starting job - poisson (45f843da-fde4-4fc1-8eda-5a6595fa6f53)\n2025-04-04 14:49:45,325 INFO Finished job - poisson (45f843da-fde4-4fc1-8eda-5a6595fa6f53)\n2025-04-04 14:49:45,326 INFO Starting job - plot_over_line (18182edf-93cd-4ee3-b8ec-2babbac189be)\n2025-04-04 14:49:47,301 INFO Finished job - plot_over_line (18182edf-93cd-4ee3-b8ec-2babbac189be)\n2025-04-04 14:49:47,302 INFO Starting job - substitute_macros (b94580b0-329b-4043-bc8e-04dfcc5e8443)\n2025-04-04 14:49:48,572 INFO Finished job - substitute_macros (b94580b0-329b-4043-bc8e-04dfcc5e8443)\n2025-04-04 14:49:48,573 INFO Starting job - compile_paper (173f8ae0-845a-424f-b181-2c73a5cde7df)\n2025-04-04 14:49:51,030 INFO Finished job - compile_paper (173f8ae0-845a-424f-b181-2c73a5cde7df)\n2025-04-04 14:49:51,032 INFO Finished executing jobs locally\n"},{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"{'96c2a02e-82a1-4ec2-8c8f-03aaaaaa2199': {1: Response(output='/home/jovyan/preprocessing/square.msh', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '27e8a0e1-b612-4ab4-8dec-f13a2e92c152': {1: Response(output={'xdmf_file': '/home/jovyan/preprocessing/square.xdmf', 'h5_file': '/home/jovyan/preprocessing/square.h5'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '45f843da-fde4-4fc1-8eda-5a6595fa6f53': {1: Response(output={'numdofs': 357, 'pvd_file': '/home/jovyan/processing/poisson.pvd', 'vtu_file': '/home/jovyan/processing/poisson000000.vtu'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '18182edf-93cd-4ee3-b8ec-2babbac189be': {1: Response(output='/home/jovyan/postprocessing/plotoverline.csv', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b94580b0-329b-4043-bc8e-04dfcc5e8443': {1: Response(output='/home/jovyan/postprocessing/macros.tex', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '173f8ae0-845a-424f-b181-2c73a5cde7df': {1: Response(output='/home/jovyan/postprocessing/paper.pdf', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":21}]} \ No newline at end of file +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"106ded66-d202-46ac-82b0-2755ca309bdd","cell_type":"markdown","source":"# pyiron\n\nhttps://github.com/BAMresearch/NFDI4IngScientificWorkflowRequirements","metadata":{}},{"id":"91dd48ea-aa7e-4937-a68e-59fc5017eb1e","cell_type":"markdown","source":"## Define workflow with pyiron_base","metadata":{}},{"id":"a76e6c0a-98f2-4436-af10-8097da183341","cell_type":"code","source":"from nfdi_ing_workflow import (\n generate_mesh as _generate_mesh, \n convert_to_xdmf as _convert_to_xdmf,\n poisson as _poisson,\n plot_over_line as _plot_over_line,\n substitute_macros as _substitute_macros,\n compile_paper as _compile_paper,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"id":"89c02460-b543-442c-a27e-f1757dc2262e","cell_type":"code","source":"from pyiron_base import Project, job\n\nfrom python_workflow_definition.pyiron_base import write_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"549ecf27-88ef-4e77-8bd4-b616cfdda2e4","cell_type":"code","source":"generate_mesh = job(_generate_mesh)\nconvert_to_xdmf = job(_convert_to_xdmf, output_key_lst=[\"xdmf_file\", \"h5_file\"])\npoisson = job(_poisson, output_key_lst=[\"numdofs\", \"pvd_file\", \"vtu_file\"])\nplot_over_line = job(_plot_over_line)\nsubstitute_macros = job(_substitute_macros)\ncompile_paper = job(_compile_paper)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"508e6549-f7b8-492b-8c88-9e46c08ffca9","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"ff6d4bafbd7c4f0f9ac5a1bef732e8a9"}},"metadata":{}}],"execution_count":4},{"id":"8d911f98-3b80-457f-a0f4-3cb37ebf1691","cell_type":"code","source":"domain_size = 2.0","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"71d411b6-cbec-489e-99e3-ba71680bcb5b","cell_type":"code","source":"gmsh_output_file = generate_mesh(\n domain_size=domain_size,\n pyiron_project=pr\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":6},{"id":"1d0d9804-f250-48b3-a5d0-a546d520f79b","cell_type":"code","source":"meshio_output_dict = convert_to_xdmf(\n gmsh_output_file=gmsh_output_file,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":7},{"id":"7b69bcff-e2b1-4d4a-b62c-6a1c86eeb590","cell_type":"code","source":"poisson_dict = poisson(\n meshio_output_xdmf=meshio_output_dict.output.xdmf_file, \n meshio_output_h5=meshio_output_dict.output.h5_file,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":8},{"id":"3c4a29b0-eb1e-490a-8be0-e03cfff15e0a","cell_type":"code","source":"pvbatch_output_file = plot_over_line(\n poisson_output_pvd_file=poisson_dict.output.pvd_file, \n poisson_output_vtu_file=poisson_dict.output.vtu_file,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":9},{"id":"a0a4c233-322d-4723-9627-62ca2487bfa9","cell_type":"code","source":"macros_tex_file = substitute_macros( \n pvbatch_output_file=pvbatch_output_file, \n ndofs=poisson_dict.output.numdofs, \n domain_size=domain_size,\n pyiron_project=pr,\n)","metadata":{"tags":[],"trusted":true},"outputs":[],"execution_count":10},{"id":"c281408f-e63d-4380-a7e6-c595d49fbb8f","cell_type":"code","source":"paper_output = compile_paper(\n macros_tex=macros_tex_file, \n plot_file=pvbatch_output_file,\n pyiron_project=pr,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"63f29646-3846-4a97-a033-20e9df0ac214","cell_type":"code","source":"workflow_json_filename = \"pyiron_base_nfdi.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"f62111ba-9271-4987-9c7e-3b1c9f9eae7a","cell_type":"code","source":"write_workflow_json(delayed_object=paper_output, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"id":"d789971e-8f41-45fa-832a-11fd72dea96e","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"a6e85e89-5d7a-40eb-809c-ac44974e3fd7","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":14},{"id":"3de84fb7-b01b-4541-868a-92e881eb6e77","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"b33f5528-10cd-47c8-8723-622902978859","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)\nwg","metadata":{"trusted":true},"outputs":[{"execution_count":16,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"847486e5747d4b499613d102658fee70"}},"metadata":{}}],"execution_count":16},{"id":"15282ca1-d339-40e7-ad68-8a7613ed08da","cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 11:35:01 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_mesh6\n04/12/2025 11:35:04 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|update_task_state]: Task: generate_mesh6, type: PyFunction, finished.\n04/12/2025 11:35:04 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: convert_to_xdmf5\n04/12/2025 11:35:08 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|update_task_state]: Task: convert_to_xdmf5, type: PyFunction, finished.\n04/12/2025 11:35:08 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: poisson4\n04/12/2025 11:35:14 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|update_task_state]: Task: poisson4, type: PyFunction, finished.\n04/12/2025 11:35:14 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_over_line3\n04/12/2025 11:35:18 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|update_task_state]: Task: plot_over_line3, type: PyFunction, finished.\n04/12/2025 11:35:19 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: substitute_macros2\n04/12/2025 11:35:21 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|update_task_state]: Task: substitute_macros2, type: PyFunction, finished.\n04/12/2025 11:35:21 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: compile_paper1\n04/12/2025 11:35:28 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|update_task_state]: Task: compile_paper1, type: PyFunction, finished.\n04/12/2025 11:35:28 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 11:35:28 AM <4360> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [67|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":17},{"id":"55dc8d12-dfe6-4465-a368-b7e590ae6800","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"dff46eb8-e0e7-49bb-8c40-0db2df133124","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":18},{"id":"6a189459-84e4-4738-ada1-37ee8c65b2ab","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":19},{"id":"6e7f3614-c971-4e2d-83f0-96f0d0fc04de","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":20},{"id":"2d87ed45-f5d9-403f-a03a-26be4a47a3ef","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 11:35:30,136 INFO Started executing jobs locally\n2025-04-12 11:35:30,744 INFO Starting job - generate_mesh (0f80ef51-d669-4847-b983-e66160aec47e)\n2025-04-12 11:35:33,225 INFO Finished job - generate_mesh (0f80ef51-d669-4847-b983-e66160aec47e)\n2025-04-12 11:35:33,227 INFO Starting job - convert_to_xdmf (43598809-0c1f-4860-9eff-0a031fa86860)\n2025-04-12 11:35:35,803 INFO Finished job - convert_to_xdmf (43598809-0c1f-4860-9eff-0a031fa86860)\n2025-04-12 11:35:35,806 INFO Starting job - poisson (b673be67-705a-451e-b756-1580c4a17871)\n2025-04-12 11:35:40,884 INFO Finished job - poisson (b673be67-705a-451e-b756-1580c4a17871)\n2025-04-12 11:35:40,888 INFO Starting job - plot_over_line (dc59e7e8-d7d8-4b7a-ad5e-2b5c9e8eebe1)\n2025-04-12 11:35:44,684 INFO Finished job - plot_over_line (dc59e7e8-d7d8-4b7a-ad5e-2b5c9e8eebe1)\n2025-04-12 11:35:44,687 INFO Starting job - substitute_macros (b16c774a-7742-4305-b583-f4597a02a9ac)\n2025-04-12 11:35:46,424 INFO Finished job - substitute_macros (b16c774a-7742-4305-b583-f4597a02a9ac)\n2025-04-12 11:35:46,426 INFO Starting job - compile_paper (0f8ecf9d-d21f-4b70-9467-e8344a8721e3)\n2025-04-12 11:35:52,494 INFO Finished job - compile_paper (0f8ecf9d-d21f-4b70-9467-e8344a8721e3)\n2025-04-12 11:35:52,496 INFO Finished executing jobs locally\n"},{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"{'0f80ef51-d669-4847-b983-e66160aec47e': {1: Response(output='/home/jovyan/preprocessing/square.msh', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '43598809-0c1f-4860-9eff-0a031fa86860': {1: Response(output={'xdmf_file': '/home/jovyan/preprocessing/square.xdmf', 'h5_file': '/home/jovyan/preprocessing/square.h5'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b673be67-705a-451e-b756-1580c4a17871': {1: Response(output={'numdofs': 357, 'pvd_file': '/home/jovyan/processing/poisson.pvd', 'vtu_file': '/home/jovyan/processing/poisson000000.vtu'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'dc59e7e8-d7d8-4b7a-ad5e-2b5c9e8eebe1': {1: Response(output='/home/jovyan/postprocessing/plotoverline.csv', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b16c774a-7742-4305-b583-f4597a02a9ac': {1: Response(output='/home/jovyan/postprocessing/macros.tex', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '0f8ecf9d-d21f-4b70-9467-e8344a8721e3': {1: Response(output='/home/jovyan/postprocessing/paper.pdf', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":21}]} \ No newline at end of file diff --git a/pyiron_base_qe.ipynb b/pyiron_base_qe.ipynb index 9c98b49..fb8b821 100644 --- a/pyiron_base_qe.ipynb +++ b/pyiron_base_qe.ipynb @@ -1 +1 @@ -{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"be2d61b0-0d47-4349-b4b0-1b767c961644","cell_type":"markdown","source":"# pyiron","metadata":{}},{"id":"0bad2a57-1bd2-4837-94fe-f8c60e211fae","cell_type":"markdown","source":"## Define workflow with pyiron_base","metadata":{}},{"id":"a2ed2608-9e1b-4a81-81cb-5079573ea2d1","cell_type":"code","source":"import numpy as np\nfrom pyiron_base import Project, job\nfrom python_workflow_definition.pyiron_base import write_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":1},{"id":"b75c2530-9b89-4185-838f-a17e517fa68f","cell_type":"code","source":"from quantum_espresso_workflow import (\n calculate_qe as _calculate_qe, \n generate_structures as _generate_structures, \n get_bulk_structure as _get_bulk_structure, \n plot_energy_volume_curve as _plot_energy_volume_curve,\n)","metadata":{"trusted":false},"outputs":[],"execution_count":2},{"id":"07a950ca","cell_type":"code","source":"workflow_json_filename = \"pyiron_base_qe.json\"","metadata":{"trusted":false},"outputs":[],"execution_count":3},{"id":"208ddfb8-dfda-4227-aa1f-3dc29e34ea82","cell_type":"code","source":"calculate_qe = job(_calculate_qe, output_key_lst=[\"energy\", \"volume\", \"structure\"])\ngenerate_structures = job(_generate_structures)\nplot_energy_volume_curve = job(_plot_energy_volume_curve)\nget_bulk_structure = job(_get_bulk_structure)","metadata":{"trusted":false},"outputs":[],"execution_count":4},{"id":"5071d3a0-7c1f-44c5-85e0-dede1566c10c","cell_type":"code","source":"pseudopotentials = {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}","metadata":{"trusted":false},"outputs":[],"execution_count":5},{"id":"13debfcd-362d-4fd0-a91f-5ab33632fceb","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":false},"outputs":[{"data":{"application/vnd.jupyter.widget-view+json":{"model_id":"cc655495af0844928dc62f4f138acd31","version_major":2,"version_minor":0},"text/plain":" 0%| | 0/17 [00:00"},"execution_count":14,"metadata":{},"output_type":"execute_result"}],"execution_count":14},{"id":"a442fe46-057c-469b-a5e0-173ed4829dfb","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":15},{"id":"32fcd4b2-4f0a-442d-b098-827672823796","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":false},"outputs":[],"execution_count":16},{"id":"a80b59bd-fe30-49c6-92ca-35ef2d77a6fb","cell_type":"code","source":"wg.run()","metadata":{"trusted":false},"outputs":[{"name":"stderr","output_type":"stream","text":"04/01/2025 10:56:19 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure8\n04/01/2025 10:56:20 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_bulk_structure8, type: PyFunction, finished.\n04/01/2025 10:56:21 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict7\n04/01/2025 10:56:22 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_dict7, type: PyFunction, finished.\n04/01/2025 10:56:22 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:56:41 AM <3368622> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])\n04/01/2025 10:56:42 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.\n04/01/2025 10:56:42 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures5\n04/01/2025 10:56:44 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: generate_structures5, type: PyFunction, finished.\n04/01/2025 10:56:44 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict4,get_dict10,get_dict12,get_dict14,get_dict16\n04/01/2025 10:56:45 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_dict4, type: PyFunction, finished.\n04/01/2025 10:56:46 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10,get_dict12,get_dict14,get_dict16,calculate_qe3\n04/01/2025 10:56:47 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.\n04/01/2025 10:56:48 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict14,get_dict16,calculate_qe3,calculate_qe9\n04/01/2025 10:56:49 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.\n04/01/2025 10:56:49 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict16,calculate_qe3,calculate_qe9,calculate_qe11\n04/01/2025 10:56:50 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.\n04/01/2025 10:56:51 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict16,calculate_qe3,calculate_qe9,calculate_qe11,calculate_qe13\n04/01/2025 10:56:52 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_dict16, type: PyFunction, finished.\n04/01/2025 10:56:53 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe3,calculate_qe9,calculate_qe11,calculate_qe13,calculate_qe15\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:56:57 AM <3368622> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:56:57 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: calculate_qe3, type: PyFunction, finished.\n04/01/2025 10:56:58 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe9,calculate_qe11,calculate_qe13,calculate_qe15\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:57:02 AM <3368622> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:57:02 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: calculate_qe9, type: PyFunction, finished.\n04/01/2025 10:57:03 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe11,calculate_qe13,calculate_qe15\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:57:07 AM <3368622> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:57:08 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: calculate_qe11, type: PyFunction, finished.\n04/01/2025 10:57:08 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe13,calculate_qe15\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:57:14 AM <3368622> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:57:14 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: calculate_qe13, type: PyFunction, finished.\n04/01/2025 10:57:15 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe15\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/01/2025 10:57:20 AM <3368622> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/01/2025 10:57:20 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: calculate_qe15, type: PyFunction, finished.\n04/01/2025 10:57:21 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list2,get_list17\n04/01/2025 10:57:22 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_list2, type: PyFunction, finished.\n04/01/2025 10:57:23 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17\n04/01/2025 10:57:24 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.\n04/01/2025 10:57:25 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve1\n04/01/2025 10:57:26 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve1, type: PyFunction, finished.\n04/01/2025 10:57:26 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/01/2025 10:57:28 AM <3368622> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51282|WorkGraphEngine|finalize]: Finalize workgraph.\n"},{"data":{"image/png":"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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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","text/plain":"
"},"metadata":{},"output_type":"display_data"}],"execution_count":17},{"id":"c4f5c047-c6da-4b54-9007-415faca7a448","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"b8e3c2ca-2672-4e9d-aada-63344842dbcf","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":false},"outputs":[],"execution_count":18},{"id":"54a24ff6c569094e","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":false},"outputs":[],"execution_count":19},{"id":"48a27146-7372-40ab-8b02-e2a9283d4748","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":false},"outputs":[],"execution_count":20},{"id":"98fa5694-2cc6-44e9-a6e7-2cc71b4f48ce","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":false},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-01 10:57:31,434 INFO Started executing jobs locally\n2025-04-01 10:57:31,534 INFO Starting job - get_bulk_structure (c4dbc1c3-08e2-4517-88b1-55b2b14fae2b)\n2025-04-01 10:57:31,539 INFO Finished job - get_bulk_structure (c4dbc1c3-08e2-4517-88b1-55b2b14fae2b)\n2025-04-01 10:57:31,541 INFO Starting job - get_dict (a6e8e886-8bbb-488a-8125-46cdfb4dedb4)\n2025-04-01 10:57:31,545 INFO Finished job - get_dict (a6e8e886-8bbb-488a-8125-46cdfb4dedb4)\n2025-04-01 10:57:31,545 INFO Starting job - calculate_qe (d0d3f8f7-9c1e-4e26-a49a-9637c759bd64)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:57:49,723 INFO Finished job - calculate_qe (d0d3f8f7-9c1e-4e26-a49a-9637c759bd64)\n2025-04-01 10:57:49,724 INFO Starting job - generate_structures (3c77f030-1b28-45dc-934e-d85147676f34)\n2025-04-01 10:57:49,737 INFO Finished job - generate_structures (3c77f030-1b28-45dc-934e-d85147676f34)\n2025-04-01 10:57:49,738 INFO Starting job - get_dict (5baee8fe-01f3-4a49-b589-8eb2547bd61f)\n2025-04-01 10:57:49,741 INFO Finished job - get_dict (5baee8fe-01f3-4a49-b589-8eb2547bd61f)\n2025-04-01 10:57:49,742 INFO Starting job - get_dict (1c0e5563-998a-4adb-8036-3c3f65dc3e4a)\n2025-04-01 10:57:49,744 INFO Finished job - get_dict (1c0e5563-998a-4adb-8036-3c3f65dc3e4a)\n2025-04-01 10:57:49,745 INFO Starting job - get_dict (e5660385-b8ff-4a58-9349-520757d80a7d)\n2025-04-01 10:57:49,748 INFO Finished job - get_dict (e5660385-b8ff-4a58-9349-520757d80a7d)\n2025-04-01 10:57:49,748 INFO Starting job - get_dict (07bf6634-c9b2-4d98-b6db-96147a5e89f7)\n2025-04-01 10:57:49,751 INFO Finished job - get_dict (07bf6634-c9b2-4d98-b6db-96147a5e89f7)\n2025-04-01 10:57:49,751 INFO Starting job - get_dict (dd376f88-1ac0-41e1-8e75-db0cc598a45e)\n2025-04-01 10:57:49,754 INFO Finished job - get_dict (dd376f88-1ac0-41e1-8e75-db0cc598a45e)\n2025-04-01 10:57:49,755 INFO Starting job - calculate_qe (39512b85-df17-48f3-a064-9f322b68a2ac)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:57:53,583 INFO Finished job - calculate_qe (39512b85-df17-48f3-a064-9f322b68a2ac)\n2025-04-01 10:57:53,584 INFO Starting job - calculate_qe (227561a6-47b5-4ba4-bd3f-2e59c6089e0b)\n2025-04-01 10:57:57,547 INFO Finished job - calculate_qe (227561a6-47b5-4ba4-bd3f-2e59c6089e0b)\n2025-04-01 10:57:57,548 INFO Starting job - calculate_qe (ff2920f8-72e0-4b58-8828-d1b30f60fcb1)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:58:02,366 INFO Finished job - calculate_qe (ff2920f8-72e0-4b58-8828-d1b30f60fcb1)\n2025-04-01 10:58:02,367 INFO Starting job - calculate_qe (bbcd53dc-eb58-4567-b727-476d1b9393d3)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:58:06,956 INFO Finished job - calculate_qe (bbcd53dc-eb58-4567-b727-476d1b9393d3)\n2025-04-01 10:58:06,957 INFO Starting job - calculate_qe (8c3828c4-4687-41c0-906f-fc82bba1c17c)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-01 10:58:10,586 INFO Finished job - calculate_qe (8c3828c4-4687-41c0-906f-fc82bba1c17c)\n2025-04-01 10:58:10,587 INFO Starting job - get_list (e068c427-b5e7-4507-a707-2de7ed1c1583)\n2025-04-01 10:58:10,594 INFO Finished job - get_list (e068c427-b5e7-4507-a707-2de7ed1c1583)\n2025-04-01 10:58:10,595 INFO Starting job - get_list (fc038980-8d36-46d9-a221-b11dadbec44a)\n2025-04-01 10:58:10,600 INFO Finished job - get_list (fc038980-8d36-46d9-a221-b11dadbec44a)\n2025-04-01 10:58:10,601 INFO Starting job - plot_energy_volume_curve (38549ff7-2e75-43c2-aaf2-15f9f85fd3a6)\n2025-04-01 10:58:10,672 INFO Finished job - plot_energy_volume_curve (38549ff7-2e75-43c2-aaf2-15f9f85fd3a6)\n2025-04-01 10:58:10,673 INFO Finished executing jobs locally\n"},{"data":{"text/plain":"{'c4dbc1c3-08e2-4517-88b1-55b2b14fae2b': {1: Response(output='{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'a6e8e886-8bbb-488a-8125-46cdfb4dedb4': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'vc-relax', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'd0d3f8f7-9c1e-4e26-a49a-9637c759bd64': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648352, 0.0, 0.0], [0.0, 4.045637407648352, 0.0], [0.0, 0.0, 4.045637407648352]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.022818703824176, 2.022818703824176], [2.022818703824176, 0.0, 2.022818703824176], [2.022818703824176, 2.022818703824176, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365698416873, 'volume': 66.21568389520257}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '3c77f030-1b28-45dc-934e-d85147676f34': {1: Response(output={'s_0': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.906019971047922, 0.0, 0.0], [0.0, 3.906019971047922, 0.0], [0.0, 0.0, 3.906019971047922]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.953009985523961, 1.953009985523961], [1.953009985523961, 0.0, 1.953009985523961], [1.953009985523961, 1.953009985523961, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_1': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977054032769754, 0.0, 0.0], [0.0, 3.977054032769754, 0.0], [0.0, 0.0, 3.977054032769754]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.988527016384877, 1.988527016384877], [1.988527016384877, 0.0, 1.988527016384877], [1.988527016384877, 1.988527016384877, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_2': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648352, 0.0, 0.0], [0.0, 4.045637407648352, 0.0], [0.0, 0.0, 4.045637407648352]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.022818703824176, 2.022818703824176], [2.022818703824176, 0.0, 2.022818703824176], [2.022818703824176, 2.022818703824176, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_3': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971122127673, 0.0, 0.0], [0.0, 4.111971122127673, 0.0], [0.0, 0.0, 4.111971122127673]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559855610638365, 2.0559855610638365], [2.0559855610638365, 0.0, 2.0559855610638365], [2.0559855610638365, 2.0559855610638365, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_4': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231050261839, 0.0, 0.0], [0.0, 4.176231050261839, 0.0], [0.0, 0.0, 4.176231050261839]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881155251309194, 2.0881155251309194], [2.0881155251309194, 0.0, 2.0881155251309194], [2.0881155251309194, 2.0881155251309194, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '5baee8fe-01f3-4a49-b589-8eb2547bd61f': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977054032769754, 0.0, 0.0], [0.0, 3.977054032769754, 0.0], [0.0, 0.0, 3.977054032769754]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.988527016384877, 1.988527016384877], [1.988527016384877, 0.0, 1.988527016384877], [1.988527016384877, 1.988527016384877, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '1c0e5563-998a-4adb-8036-3c3f65dc3e4a': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648352, 0.0, 0.0], [0.0, 4.045637407648352, 0.0], [0.0, 0.0, 4.045637407648352]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.022818703824176, 2.022818703824176], [2.022818703824176, 0.0, 2.022818703824176], [2.022818703824176, 2.022818703824176, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'e5660385-b8ff-4a58-9349-520757d80a7d': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971122127673, 0.0, 0.0], [0.0, 4.111971122127673, 0.0], [0.0, 0.0, 4.111971122127673]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559855610638365, 2.0559855610638365], [2.0559855610638365, 0.0, 2.0559855610638365], [2.0559855610638365, 2.0559855610638365, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '07bf6634-c9b2-4d98-b6db-96147a5e89f7': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231050261839, 0.0, 0.0], [0.0, 4.176231050261839, 0.0], [0.0, 0.0, 4.176231050261839]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881155251309194, 2.0881155251309194], [2.0881155251309194, 0.0, 2.0881155251309194], [2.0881155251309194, 2.0881155251309194, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'dd376f88-1ac0-41e1-8e75-db0cc598a45e': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.906019971047922, 0.0, 0.0], [0.0, 3.906019971047922, 0.0], [0.0, 0.0, 3.906019971047922]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.953009985523961, 1.953009985523961], [1.953009985523961, 0.0, 1.953009985523961], [1.953009985523961, 1.953009985523961, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '39512b85-df17-48f3-a064-9f322b68a2ac': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770540153862988, 0.0, 0.0], [0.0, 3.9770540153862988, 0.0], [0.0, 0.0, 3.9770540153862988]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885270077082742, 1.9885270077082742], [1.9885270077082742, 0.0, 1.9885270077082742], [1.9885270077082742, 1.9885270077082742, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9161853618164, 'volume': 62.90489887558233}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '227561a6-47b5-4ba4-bd3f-2e59c6089e0b': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637389965126, 0.0, 0.0], [0.0, 4.045637389965126, 0.0], [0.0, 0.0, 4.045637389965126]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186949583877, 2.0228186949583877], [2.0228186949583877, 0.0, 2.0228186949583877], [2.0228186949583877, 2.0228186949583877, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365678763597, 'volume': 66.21568302692893}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'ff2920f8-72e0-4b58-8828-d1b30f60fcb1': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971104154505, 0.0, 0.0], [0.0, 4.111971104154505, 0.0], [0.0, 0.0, 4.111971104154505]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985552113418, 2.055985552113418], [2.055985552113418, 0.0, 2.055985552113418], [2.055985552113418, 2.055985552113418, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9193225358767, 'volume': 69.52646717827525}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'bbcd53dc-eb58-4567-b727-476d1b9393d3': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231032007799, 0.0, 0.0], [0.0, 4.176231032007799, 0.0], [0.0, 0.0, 4.176231032007799]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115515972979, 2.088115515972979], [2.088115515972979, 0.0, 2.088115515972979], [2.088115515972979, 2.088115515972979, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8738270284005, 'volume': 72.83725132962194}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '8c3828c4-4687-41c0-906f-fc82bba1c17c': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060199539749543, 0.0, 0.0], [0.0, 3.9060199539749543, 0.0], [0.0, 0.0, 3.9060199539749543]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099769635174, 1.9530099769635174], [1.9530099769635174, 0.0, 1.9530099769635174], [1.9530099769635174, 1.9530099769635174, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8457811122457, 'volume': 59.59411472423595}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'e068c427-b5e7-4507-a707-2de7ed1c1583': {1: Response(output=[-1074.8457811122457, -1074.9161853618164, -1074.9365678763597, -1074.9193225358767, -1074.8738270284005], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n 'fc038980-8d36-46d9-a221-b11dadbec44a': {1: Response(output=[59.59411472423595, 62.90489887558233, 66.21568302692893, 69.52646717827525, 72.83725132962194], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n '38549ff7-2e75-43c2-aaf2-15f9f85fd3a6': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))}}"},"execution_count":21,"metadata":{},"output_type":"execute_result"},{"data":{"image/png":"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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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","text/plain":"
"},"metadata":{},"output_type":"display_data"}],"execution_count":21}]} \ No newline at end of file +{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"be2d61b0-0d47-4349-b4b0-1b767c961644","cell_type":"markdown","source":"# pyiron","metadata":{}},{"id":"0bad2a57-1bd2-4837-94fe-f8c60e211fae","cell_type":"markdown","source":"## Define workflow with pyiron_base","metadata":{}},{"id":"a2ed2608-9e1b-4a81-81cb-5079573ea2d1","cell_type":"code","source":"import numpy as np\nfrom pyiron_base import Project, job\nfrom python_workflow_definition.pyiron_base import write_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"id":"b75c2530-9b89-4185-838f-a17e517fa68f","cell_type":"code","source":"from quantum_espresso_workflow import (\n calculate_qe as _calculate_qe, \n generate_structures as _generate_structures, \n get_bulk_structure as _get_bulk_structure, \n plot_energy_volume_curve as _plot_energy_volume_curve,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"07a950ca","cell_type":"code","source":"workflow_json_filename = \"pyiron_base_qe.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"208ddfb8-dfda-4227-aa1f-3dc29e34ea82","cell_type":"code","source":"calculate_qe = job(_calculate_qe, output_key_lst=[\"energy\", \"volume\", \"structure\"])\ngenerate_structures = job(_generate_structures)\nplot_energy_volume_curve = job(_plot_energy_volume_curve)\nget_bulk_structure = job(_get_bulk_structure)","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"5071d3a0-7c1f-44c5-85e0-dede1566c10c","cell_type":"code","source":"pseudopotentials = {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"13debfcd-362d-4fd0-a91f-5ab33632fceb","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"a766173c2e694e9e88a0bc99b17844f8"}},"metadata":{}}],"execution_count":6},{"id":"1f1cb12f-4001-478d-8ea0-b369f4f2981a","cell_type":"code","source":"structure = get_bulk_structure(\n element=\"Al\",\n a=4.05,\n cubic=True,\n pyiron_project=pr,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"id":"4140f07b-af54-41ef-be22-df6b5b53bf95","cell_type":"code","source":"calc_mini = calculate_qe(\n working_directory=\"mini\",\n input_dict={\n \"structure\": structure,\n \"pseudopotentials\": pseudopotentials,\n \"kpts\": (3, 3, 3),\n \"calculation\": \"vc-relax\",\n \"smearing\": 0.02,\n },\n pyiron_project=pr,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"id":"3c4dae11-8750-42d5-807c-cd19f2b65706","cell_type":"code","source":"number_of_strains = 5\nstructure_lst = generate_structures( # the generate_structures() function is not available in the workflow graph\n structure=calc_mini.output.structure,\n strain_lst=np.linspace(0.9, 1.1, number_of_strains),\n pyiron_project=pr,\n list_length=number_of_strains,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"id":"fdf3b62d-6cce-4312-8a5b-057224e36aca","cell_type":"code","source":"job_strain_lst = []\nfor i, structure_strain in enumerate(structure_lst):\n calc_strain = calculate_qe(\n working_directory=\"strain_\" + str(i),\n input_dict={\n \"structure\": structure_strain,\n \"pseudopotentials\": pseudopotentials,\n \"kpts\": (3, 3, 3),\n \"calculation\": \"scf\",\n \"smearing\": 0.02,\n },\n pyiron_project=pr,\n )\n job_strain_lst.append(calc_strain)","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"id":"b2823306-0a8a-4ae6-bb1f-104e90e2fe41","cell_type":"code","source":"plot = plot_energy_volume_curve(\n volume_lst=[job.output.volume for job in job_strain_lst],\n energy_lst=[job.output.energy for job in job_strain_lst],\n pyiron_project=pr,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":11},{"id":"52646121-335f-48e6-bd5e-a1d69d00e8bc","cell_type":"code","source":"write_workflow_json(delayed_object=plot, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"72c8e6e6-8e60-4a4f-81f3-968b4b5f36ee","cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\"nodes\": [{\"id\": 0, \"function\": \"quantum_espresso_workflow.plot_energy_volume_curve\"}, {\"id\": 1, \"function\": \"python_workflow_definition.shared.get_list\"}, {\"id\": 2, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 3, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 4, \"function\": \"quantum_espresso_workflow.generate_structures\"}, {\"id\": 5, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 6, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 7, \"function\": \"quantum_espresso_workflow.get_bulk_structure\"}, {\"id\": 8, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 9, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 10, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 11, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 12, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 13, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 14, \"function\": \"quantum_espresso_workflow.calculate_qe\"}, {\"id\": 15, \"function\": \"python_workflow_definition.shared.get_dict\"}, {\"id\": 16, \"function\": \"python_workflow_definition.shared.get_list\"}, {\"id\": 17, \"value\": \"strain_0\"}, {\"id\": 18, \"value\": \"mini\"}, {\"id\": 19, \"value\": \"Al\"}, {\"id\": 20, \"value\": 4.05}, {\"id\": 21, \"value\": true}, {\"id\": 22, \"value\": {\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"}}, {\"id\": 23, \"value\": [3, 3, 3]}, {\"id\": 24, \"value\": \"vc-relax\"}, {\"id\": 25, \"value\": 0.02}, {\"id\": 26, \"value\": [0.9, 0.9500000000000001, 1.0, 1.05, 1.1]}, {\"id\": 27, \"value\": \"scf\"}, {\"id\": 28, \"value\": \"strain_1\"}, {\"id\": 29, \"value\": \"strain_2\"}, {\"id\": 30, \"value\": \"strain_3\"}, {\"id\": 31, \"value\": \"strain_4\"}], \"edges\": [{\"target\": 0, \"targetPort\": \"volume_lst\", \"source\": 1, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"0\", \"source\": 2, \"sourcePort\": \"volume\"}, {\"target\": 2, \"targetPort\": \"working_directory\", \"source\": 17, \"sourcePort\": null}, {\"target\": 2, \"targetPort\": \"input_dict\", \"source\": 3, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"structure\", \"source\": 4, \"sourcePort\": \"s_0\"}, {\"target\": 4, \"targetPort\": \"structure\", \"source\": 5, \"sourcePort\": \"structure\"}, {\"target\": 5, \"targetPort\": \"working_directory\", \"source\": 18, \"sourcePort\": null}, {\"target\": 5, \"targetPort\": \"input_dict\", \"source\": 6, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"structure\", \"source\": 7, \"sourcePort\": null}, {\"target\": 7, \"targetPort\": \"element\", \"source\": 19, \"sourcePort\": null}, {\"target\": 7, \"targetPort\": \"a\", \"source\": 20, \"sourcePort\": null}, {\"target\": 7, \"targetPort\": \"cubic\", \"source\": 21, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"pseudopotentials\", \"source\": 22, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"kpts\", \"source\": 23, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"calculation\", \"source\": 24, \"sourcePort\": null}, {\"target\": 6, \"targetPort\": \"smearing\", \"source\": 25, \"sourcePort\": null}, {\"target\": 4, \"targetPort\": \"strain_lst\", \"source\": 26, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"pseudopotentials\", \"source\": 22, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"kpts\", \"source\": 23, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"calculation\", \"source\": 27, \"sourcePort\": null}, {\"target\": 3, \"targetPort\": \"smearing\", \"source\": 25, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"1\", \"source\": 8, \"sourcePort\": \"volume\"}, {\"target\": 8, \"targetPort\": \"working_directory\", \"source\": 28, \"sourcePort\": null}, {\"target\": 8, \"targetPort\": \"input_dict\", \"source\": 9, \"sourcePort\": null}, {\"target\": 9, \"targetPort\": \"structure\", \"source\": 4, \"sourcePort\": \"s_1\"}, {\"target\": 9, \"targetPort\": \"pseudopotentials\", \"source\": 22, \"sourcePort\": null}, {\"target\": 9, \"targetPort\": \"kpts\", \"source\": 23, \"sourcePort\": null}, {\"target\": 9, \"targetPort\": \"calculation\", \"source\": 27, \"sourcePort\": null}, {\"target\": 9, \"targetPort\": \"smearing\", \"source\": 25, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"2\", \"source\": 10, \"sourcePort\": \"volume\"}, {\"target\": 10, \"targetPort\": \"working_directory\", \"source\": 29, \"sourcePort\": null}, {\"target\": 10, \"targetPort\": \"input_dict\", \"source\": 11, \"sourcePort\": null}, {\"target\": 11, \"targetPort\": \"structure\", \"source\": 4, \"sourcePort\": \"s_2\"}, {\"target\": 11, \"targetPort\": \"pseudopotentials\", \"source\": 22, \"sourcePort\": null}, {\"target\": 11, \"targetPort\": \"kpts\", \"source\": 23, \"sourcePort\": null}, {\"target\": 11, \"targetPort\": \"calculation\", \"source\": 27, \"sourcePort\": null}, {\"target\": 11, \"targetPort\": \"smearing\", \"source\": 25, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"3\", \"source\": 12, \"sourcePort\": \"volume\"}, {\"target\": 12, \"targetPort\": \"working_directory\", \"source\": 30, \"sourcePort\": null}, {\"target\": 12, \"targetPort\": \"input_dict\", \"source\": 13, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"structure\", \"source\": 4, \"sourcePort\": \"s_3\"}, {\"target\": 13, \"targetPort\": \"pseudopotentials\", \"source\": 22, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"kpts\", \"source\": 23, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"calculation\", \"source\": 27, \"sourcePort\": null}, {\"target\": 13, \"targetPort\": \"smearing\", \"source\": 25, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"4\", \"source\": 14, \"sourcePort\": \"volume\"}, {\"target\": 14, \"targetPort\": \"working_directory\", \"source\": 31, \"sourcePort\": null}, {\"target\": 14, \"targetPort\": \"input_dict\", \"source\": 15, \"sourcePort\": null}, {\"target\": 15, \"targetPort\": \"structure\", \"source\": 4, \"sourcePort\": \"s_4\"}, {\"target\": 15, \"targetPort\": \"pseudopotentials\", \"source\": 22, \"sourcePort\": null}, {\"target\": 15, \"targetPort\": \"kpts\", \"source\": 23, \"sourcePort\": null}, {\"target\": 15, \"targetPort\": \"calculation\", \"source\": 27, \"sourcePort\": null}, {\"target\": 15, \"targetPort\": \"smearing\", \"source\": 25, \"sourcePort\": null}, {\"target\": 0, \"targetPort\": \"energy_lst\", \"source\": 16, \"sourcePort\": null}, {\"target\": 16, \"targetPort\": \"0\", \"source\": 2, \"sourcePort\": \"energy\"}, {\"target\": 16, \"targetPort\": \"1\", \"source\": 8, \"sourcePort\": \"energy\"}, {\"target\": 16, \"targetPort\": \"2\", \"source\": 10, \"sourcePort\": \"energy\"}, {\"target\": 16, \"targetPort\": \"3\", \"source\": 12, \"sourcePort\": \"energy\"}, {\"target\": 16, \"targetPort\": \"4\", \"source\": 14, \"sourcePort\": \"energy\"}]}"}],"execution_count":13},{"id":"7d75a2f6-6fad-49c8-bd29-37cca1b84441","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"28760464-2a2c-40c2-9451-20713da2ba2c","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":14},{"id":"a442fe46-057c-469b-a5e0-173ed4829dfb","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"id":"32fcd4b2-4f0a-442d-b098-827672823796","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":16},{"id":"a80b59bd-fe30-49c6-92ca-35ef2d77a6fb","cell_type":"code","source":"wg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 04:06:06 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure8\n04/12/2025 04:06:07 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_bulk_structure8, type: PyFunction, finished.\n04/12/2025 04:06:07 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict7\n04/12/2025 04:06:08 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_dict7, type: PyFunction, finished.\n04/12/2025 04:06:08 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00948] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:06:58 PM <854> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])\n04/12/2025 04:06:58 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.\n04/12/2025 04:06:58 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures5\n04/12/2025 04:07:00 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: generate_structures5, type: PyFunction, finished.\n04/12/2025 04:07:00 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict4,get_dict10,get_dict12,get_dict14,get_dict16\n04/12/2025 04:07:01 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_dict4, type: PyFunction, finished.\n04/12/2025 04:07:01 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe3,get_dict10,get_dict12,get_dict14,get_dict16\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00962] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:07:12 PM <854> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:07:12 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: calculate_qe3, type: PyFunction, finished.\n04/12/2025 04:07:12 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10,get_dict12,get_dict14,get_dict16\n04/12/2025 04:07:13 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.\n04/12/2025 04:07:13 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe9,get_dict12,get_dict14,get_dict16\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00973] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:07:25 PM <854> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:07:25 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: calculate_qe9, type: PyFunction, finished.\n04/12/2025 04:07:25 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict14,get_dict16\n04/12/2025 04:07:26 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.\n04/12/2025 04:07:26 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe11,get_dict14,get_dict16\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:00984] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:07:40 PM <854> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:07:40 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: calculate_qe11, type: PyFunction, finished.\n04/12/2025 04:07:40 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict16\n04/12/2025 04:07:41 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.\n04/12/2025 04:07:41 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe13,get_dict16\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01015] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:07:55 PM <854> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:07:55 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: calculate_qe13, type: PyFunction, finished.\n04/12/2025 04:07:56 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict16\n04/12/2025 04:07:56 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_dict16, type: PyFunction, finished.\n04/12/2025 04:07:57 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01039] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:08:11 PM <854> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:08:12 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: calculate_qe15, type: PyFunction, finished.\n04/12/2025 04:08:12 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list2,get_list17\n04/12/2025 04:08:13 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_list2, type: PyFunction, finished.\n04/12/2025 04:08:13 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17\n04/12/2025 04:08:13 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.\n04/12/2025 04:08:13 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve1\n04/12/2025 04:08:14 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve1, type: PyFunction, finished.\n04/12/2025 04:08:14 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 04:08:14 PM <854> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [109|WorkGraphEngine|finalize]: Finalize workgraph.\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":17},{"id":"c4f5c047-c6da-4b54-9007-415faca7a448","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"b8e3c2ca-2672-4e9d-aada-63344842dbcf","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":18},{"id":"54a24ff6c569094e","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":19},{"id":"48a27146-7372-40ab-8b02-e2a9283d4748","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":20},{"id":"98fa5694-2cc6-44e9-a6e7-2cc71b4f48ce","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 16:08:16,095 INFO Started executing jobs locally\n2025-04-12 16:08:16,242 INFO Starting job - get_bulk_structure (0aea2163-18c9-45b3-b69c-4cb4a14409c2)\n2025-04-12 16:08:16,245 INFO Finished job - get_bulk_structure (0aea2163-18c9-45b3-b69c-4cb4a14409c2)\n2025-04-12 16:08:16,246 INFO Starting job - get_dict (1a753748-7116-4bc3-9263-e3bf979a762e)\n2025-04-12 16:08:16,248 INFO Finished job - get_dict (1a753748-7116-4bc3-9263-e3bf979a762e)\n2025-04-12 16:08:16,249 INFO Starting job - calculate_qe (41038ca1-0f8e-49ac-b020-ae945b0511cd)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01051] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:09:10,796 INFO Finished job - calculate_qe (41038ca1-0f8e-49ac-b020-ae945b0511cd)\n2025-04-12 16:09:10,798 INFO Starting job - generate_structures (3ee12137-6343-40c0-bc18-cb3f981d3b94)\n2025-04-12 16:09:10,803 INFO Finished job - generate_structures (3ee12137-6343-40c0-bc18-cb3f981d3b94)\n2025-04-12 16:09:10,804 INFO Starting job - get_dict (0a9db492-7675-4f49-9ba4-daeb050cbead)\n2025-04-12 16:09:10,806 INFO Finished job - get_dict (0a9db492-7675-4f49-9ba4-daeb050cbead)\n2025-04-12 16:09:10,807 INFO Starting job - get_dict (cd9fc354-11db-46fe-bf68-abffe0f08866)\n2025-04-12 16:09:10,808 INFO Finished job - get_dict (cd9fc354-11db-46fe-bf68-abffe0f08866)\n2025-04-12 16:09:10,809 INFO Starting job - get_dict (4373a923-bbb4-47e0-afc2-8919e7a0481b)\n2025-04-12 16:09:10,810 INFO Finished job - get_dict (4373a923-bbb4-47e0-afc2-8919e7a0481b)\n2025-04-12 16:09:10,811 INFO Starting job - get_dict (d3f73762-097b-4112-8b69-4105473cf956)\n2025-04-12 16:09:10,813 INFO Finished job - get_dict (d3f73762-097b-4112-8b69-4105473cf956)\n2025-04-12 16:09:10,814 INFO Starting job - get_dict (25f164e1-8653-4c82-beb5-1c8eb1a08a6f)\n2025-04-12 16:09:10,815 INFO Finished job - get_dict (25f164e1-8653-4c82-beb5-1c8eb1a08a6f)\n2025-04-12 16:09:10,816 INFO Starting job - calculate_qe (ba752009-2111-460a-bc44-c6171b8c9262)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01066] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:09:21,876 INFO Finished job - calculate_qe (ba752009-2111-460a-bc44-c6171b8c9262)\n2025-04-12 16:09:21,877 INFO Starting job - calculate_qe (359641bf-4356-4129-9d85-85474847a178)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01077] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:09:33,977 INFO Finished job - calculate_qe (359641bf-4356-4129-9d85-85474847a178)\n2025-04-12 16:09:33,978 INFO Starting job - calculate_qe (ef2977e7-7868-4ff9-925b-d7019277d7a9)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01093] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:09:48,601 INFO Finished job - calculate_qe (ef2977e7-7868-4ff9-925b-d7019277d7a9)\n2025-04-12 16:09:48,602 INFO Starting job - calculate_qe (57063079-e27c-4c86-a0e3-4077dad2b7cc)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01104] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:10:02,550 INFO Finished job - calculate_qe (57063079-e27c-4c86-a0e3-4077dad2b7cc)\n2025-04-12 16:10:02,550 INFO Starting job - calculate_qe (710ca9ce-0b6d-4e8e-b8eb-fb2d0c5be52b)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01120] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:10:12,997 INFO Finished job - calculate_qe (710ca9ce-0b6d-4e8e-b8eb-fb2d0c5be52b)\n2025-04-12 16:10:12,999 INFO Starting job - get_list (f69c0782-b3b8-438d-9d6c-31397de00861)\n2025-04-12 16:10:13,006 INFO Finished job - get_list (f69c0782-b3b8-438d-9d6c-31397de00861)\n2025-04-12 16:10:13,007 INFO Starting job - get_list (5a2df4a1-0c1c-4de5-9db8-b6784abd52ef)\n2025-04-12 16:10:13,013 INFO Finished job - get_list (5a2df4a1-0c1c-4de5-9db8-b6784abd52ef)\n2025-04-12 16:10:13,013 INFO Starting job - plot_energy_volume_curve (61603163-9464-46c0-830d-13c496ac1c8b)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:10:13,096 INFO Finished job - plot_energy_volume_curve (61603163-9464-46c0-830d-13c496ac1c8b)\n2025-04-12 16:10:13,097 INFO Finished executing jobs locally\n"},{"execution_count":21,"output_type":"execute_result","data":{"text/plain":"{'0aea2163-18c9-45b3-b69c-4cb4a14409c2': {1: Response(output='{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '1a753748-7116-4bc3-9263-e3bf979a762e': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'vc-relax', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '41038ca1-0f8e-49ac-b020-ae945b0511cd': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637215946897, 0.0, 0.0], [0.0, 4.045637215946897, 0.0], [0.0, 0.0, 4.045637215946897]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186079734485, 2.0228186079734485], [2.0228186079734485, 0.0, 2.0228186079734485], [2.0228186079734485, 2.0228186079734485, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365262253539, 'volume': 66.21567448236523}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '3ee12137-6343-40c0-bc18-cb3f981d3b94': {1: Response(output={'s_0': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060197859622026, 0.0, 0.0], [0.0, 3.9060197859622026, 0.0], [0.0, 0.0, 3.9060197859622026]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098929811013, 1.9530098929811013], [1.9530098929811013, 0.0, 1.9530098929811013], [1.9530098929811013, 1.9530098929811013, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_1': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977053844318104, 0.0, 0.0], [0.0, 3.977053844318104, 0.0], [0.0, 0.0, 3.977053844318104]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.988526922159052, 1.988526922159052], [1.988526922159052, 0.0, 1.988526922159052], [1.988526922159052, 1.988526922159052, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_2': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637215946897, 0.0, 0.0], [0.0, 4.045637215946897, 0.0], [0.0, 0.0, 4.045637215946897]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186079734485, 2.0228186079734485], [2.0228186079734485, 0.0, 2.0228186079734485], [2.0228186079734485, 2.0228186079734485, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_3': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.1119709272830125, 0.0, 0.0], [0.0, 4.1119709272830125, 0.0], [0.0, 0.0, 4.1119709272830125]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854636415063, 2.0559854636415063], [2.0559854636415063, 0.0, 2.0559854636415063], [2.0559854636415063, 2.0559854636415063, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_4': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176230852372239, 0.0, 0.0], [0.0, 4.176230852372239, 0.0], [0.0, 0.0, 4.176230852372239]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881154261861194, 2.0881154261861194], [2.0881154261861194, 0.0, 2.0881154261861194], [2.0881154261861194, 2.0881154261861194, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '0a9db492-7675-4f49-9ba4-daeb050cbead': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977053844318104, 0.0, 0.0], [0.0, 3.977053844318104, 0.0], [0.0, 0.0, 3.977053844318104]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.988526922159052, 1.988526922159052], [1.988526922159052, 0.0, 1.988526922159052], [1.988526922159052, 1.988526922159052, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'cd9fc354-11db-46fe-bf68-abffe0f08866': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637215946897, 0.0, 0.0], [0.0, 4.045637215946897, 0.0], [0.0, 0.0, 4.045637215946897]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186079734485, 2.0228186079734485], [2.0228186079734485, 0.0, 2.0228186079734485], [2.0228186079734485, 2.0228186079734485, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '4373a923-bbb4-47e0-afc2-8919e7a0481b': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.1119709272830125, 0.0, 0.0], [0.0, 4.1119709272830125, 0.0], [0.0, 0.0, 4.1119709272830125]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854636415063, 2.0559854636415063], [2.0559854636415063, 0.0, 2.0559854636415063], [2.0559854636415063, 2.0559854636415063, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'd3f73762-097b-4112-8b69-4105473cf956': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176230852372239, 0.0, 0.0], [0.0, 4.176230852372239, 0.0], [0.0, 0.0, 4.176230852372239]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881154261861194, 2.0881154261861194], [2.0881154261861194, 0.0, 2.0881154261861194], [2.0881154261861194, 2.0881154261861194, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '25f164e1-8653-4c82-beb5-1c8eb1a08a6f': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060197859622026, 0.0, 0.0], [0.0, 3.9060197859622026, 0.0], [0.0, 0.0, 3.9060197859622026]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098929811013, 1.9530098929811013], [1.9530098929811013, 0.0, 1.9530098929811013], [1.9530098929811013, 1.9530098929811013, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'ba752009-2111-460a-bc44-c6171b8c9262': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.97705382693465, 0.0, 0.0], [0.0, 3.97705382693465, 0.0], [0.0, 0.0, 3.97705382693465]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269135082746, 1.9885269135082746], [1.9885269135082746, 0.0, 1.9885269135082746], [1.9885269135082746, 1.9885269135082746, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9161488594589, 'volume': 62.904889933386926}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '359641bf-4356-4129-9d85-85474847a178': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637198263676, 0.0, 0.0], [0.0, 4.045637198263676, 0.0], [0.0, 0.0, 4.045637198263676]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228185991583882, 2.0228185991583882], [2.0228185991583882, 0.0, 2.0228185991583882], [2.0228185991583882, 2.0228185991583882, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365241668352, 'volume': 66.21567361409183}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'ef2977e7-7868-4ff9-925b-d7019277d7a9': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.1119709093098455, 0.0, 0.0], [0.0, 4.1119709093098455, 0.0], [0.0, 0.0, 4.1119709093098455]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854546134178, 2.0559854546134178], [2.0559854546134178, 0.0, 2.0559854546134178], [2.0559854546134178, 2.0559854546134178, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9192860025817, 'volume': 69.52645729479612}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '57063079-e27c-4c86-a0e3-4077dad2b7cc': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.1762308341182, 0.0, 0.0], [0.0, 4.1762308341182, 0.0], [0.0, 0.0, 4.1762308341182]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.08811541707298, 2.08811541707298], [2.08811541707298, 0.0, 2.08811541707298], [2.08811541707298, 2.08811541707298, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8737904693394, 'volume': 72.83724097550093}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '710ca9ce-0b6d-4e8e-b8eb-fb2d0c5be52b': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.906019768889235, 0.0, 0.0], [0.0, 3.906019768889235, 0.0], [0.0, 0.0, 3.906019768889235]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098844635175, 1.9530098844635175], [1.9530098844635175, 0.0, 1.9530098844635175], [1.9530098844635175, 1.9530098844635175, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8457446150633, 'volume': 59.5941062526824}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'f69c0782-b3b8-438d-9d6c-31397de00861': {1: Response(output=[-1074.8457446150633, -1074.9161488594589, -1074.9365241668352, -1074.9192860025817, -1074.8737904693394], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '5a2df4a1-0c1c-4de5-9db8-b6784abd52ef': {1: Response(output=[59.5941062526824, 62.904889933386926, 66.21567361409183, 69.52645729479612, 72.83724097550093], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '61603163-9464-46c0-830d-13c496ac1c8b': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":21}]} \ No newline at end of file diff --git a/pyiron_base_simple.ipynb b/pyiron_base_simple.ipynb index 8f2044c..4668290 100644 --- a/pyiron_base_simple.ipynb +++ b/pyiron_base_simple.ipynb @@ -1,315 +1 @@ -{ - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "name": "python", - "version": "3.12.8", - "mimetype": "text/x-python", - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "pygments_lexer": "ipython3", - "nbconvert_exporter": "python", - "file_extension": ".py" - } - }, - "nbformat_minor": 5, - "nbformat": 4, - "cells": [ - { - "id": "c39b76fb-259f-4e16-a44d-02a295c82386", - "cell_type": "markdown", - "source": "# pyiron", - "metadata": {} - }, - { - "id": "3638419b-a0cb-49e2-b157-7fbb1acde90f", - "cell_type": "markdown", - "source": "## Define workflow with pyiron_base", - "metadata": {} - }, - { - "id": "b4a78447-e87c-4fb4-8d17-d9a280eb7254", - "cell_type": "code", - "source": "from pyiron_base import Project, job", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 1 - }, - { - "id": "06c2bd9e-b2ac-4b88-9158-fa37331c3418", - "cell_type": "code", - "source": "from python_workflow_definition.pyiron_base import write_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 2 - }, - { - "id": "fb847d49-7bf9-4839-9b99-c116d1b0e9ee", - "cell_type": "code", - "source": [ - "from simple_workflow import (\n", - " add_x_and_y as _add_x_and_y, \n", - " get_prod_and_div as _get_prod_and_div,\n", - ")" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 3 - }, - { - "id": "8f95244e", - "cell_type": "code", - "source": "workflow_json_filename = \"pyiron_base_simple.json\"", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 4 - }, - { - "id": "07598344-0f75-433b-8902-bea21a42088c", - "cell_type": "code", - "source": [ - "add_x_and_y = job(_add_x_and_y)\n", - "get_prod_and_div = job(_get_prod_and_div, output_key_lst=[\"prod\", \"div\"])" - ], - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 5 - }, - { - "id": "ecef1ed5-a8d3-48c3-9e01-4a40e55c1153", - "cell_type": "code", - "source": "pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "output_type": "display_data", - "data": { - "text/plain": " 0%| | 0/2 [00:00" - }, - "metadata": {} - } - ], - "execution_count": 11 - }, - { - "id": "68a56b32-9f99-43d7-aaee-0c1cd9522681", - "cell_type": "code", - "source": "from python_workflow_definition.aiida import load_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 12 - }, - { - "id": "8f2a621d-b533-4ddd-8bcd-c22db2f922ec", - "cell_type": "code", - "source": "wg = load_workflow_json(file_name=workflow_json_filename)\nwg", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "execution_count": 13, - "output_type": "execute_result", - "data": { - "text/plain": "NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…", - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 1, - "model_id": "dcfa2451385b4eb2b9204f7e196eeda4" - } - }, - "metadata": {} - } - ], - "execution_count": 13 - }, - { - "id": "cf80267d-c2b0-4236-bf1d-a57596985fc1", - "cell_type": "code", - "source": "\nwg.run()", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": "04/02/2025 02:36:58 PM <248> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y2\n04/02/2025 02:36:59 PM <248> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|update_task_state]: Task: add_x_and_y2, type: PyFunction, finished.\n04/02/2025 02:36:59 PM <248> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y_and_z1\n04/02/2025 02:37:00 PM <248> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|update_task_state]: Task: add_x_and_y_and_z1, type: PyFunction, finished.\n04/02/2025 02:37:00 PM <248> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/02/2025 02:37:00 PM <248> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [3|WorkGraphEngine|finalize]: Finalize workgraph.\n" - } - ], - "execution_count": 14 - }, - { - "id": "0c3503e1-0a32-40e1-845d-3fd9ec3c4c19", - "cell_type": "markdown", - "source": "## Load Workflow with jobflow", - "metadata": {} - }, - { - "id": "4abb0481-8e38-479d-ae61-6c46d091653e", - "cell_type": "code", - "source": "from python_workflow_definition.jobflow import load_workflow_json", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": "/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n" - } - ], - "execution_count": 15 - }, - { - "id": "8253dd7c283bf3f7", - "cell_type": "code", - "source": "from jobflow.managers.local import run_locally", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 16 - }, - { - "id": "4b45e83b-945f-48c5-8e20-9df0ce0a14a1", - "cell_type": "code", - "source": "flow = load_workflow_json(file_name=workflow_json_filename)", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": 17 - }, - { - "id": "8665c39c-220c-4982-b738-c31f6460530f", - "cell_type": "code", - "source": "result = run_locally(flow)\nresult", - "metadata": { - "trusted": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": "2025-04-02 14:37:00,813 INFO Started executing jobs locally\n2025-04-02 14:37:01,234 INFO Starting job - add_x_and_y (3cb63b3e-289b-4c08-a9e4-0ba051181adb)\n2025-04-02 14:37:01,238 INFO Finished job - add_x_and_y (3cb63b3e-289b-4c08-a9e4-0ba051181adb)\n2025-04-02 14:37:01,239 INFO Starting job - add_x_and_y_and_z (bff452ed-d3b3-4d6c-8162-feaa188b5660)\n2025-04-02 14:37:01,242 INFO Finished job - add_x_and_y_and_z (bff452ed-d3b3-4d6c-8162-feaa188b5660)\n2025-04-02 14:37:01,243 INFO Finished executing jobs locally\n" - }, - { - "execution_count": 18, - "output_type": "execute_result", - "data": { - "text/plain": "{'3cb63b3e-289b-4c08-a9e4-0ba051181adb': {1: Response(output={'x': 1, 'y': 2, 'z': 3}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'bff452ed-d3b3-4d6c-8162-feaa188b5660': {1: Response(output=6, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}" - }, - "metadata": {} - } - ], - "execution_count": 18 - }, - { - "id": "cf76f305-24de-45a7-be8e-cfe45cd6458e", - "cell_type": "code", - "source": "", - "metadata": { - "trusted": false - }, - "outputs": [], - "execution_count": null - } - ] -} +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":5,"nbformat":4,"cells":[{"id":"c39b76fb-259f-4e16-a44d-02a295c82386","cell_type":"markdown","source":"# pyiron","metadata":{}},{"id":"3638419b-a0cb-49e2-b157-7fbb1acde90f","cell_type":"markdown","source":"## Define workflow with pyiron_base","metadata":{}},{"id":"b4a78447-e87c-4fb4-8d17-d9a280eb7254","cell_type":"code","source":"from pyiron_base import Project, job","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"id":"06c2bd9e-b2ac-4b88-9158-fa37331c3418","cell_type":"code","source":"from python_workflow_definition.pyiron_base import write_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":2},{"id":"fb847d49-7bf9-4839-9b99-c116d1b0e9ee","cell_type":"code","source":"from simple_workflow import (\n add_x_and_y as _add_x_and_y, \n get_prod_and_div as _get_prod_and_div,\n)","metadata":{"trusted":true},"outputs":[],"execution_count":3},{"id":"8f95244e","cell_type":"code","source":"workflow_json_filename = \"pyiron_base_simple.json\"","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"id":"07598344-0f75-433b-8902-bea21a42088c","cell_type":"code","source":"add_x_and_y = job(_add_x_and_y)\nget_prod_and_div = job(_get_prod_and_div, output_key_lst=[\"prod\", \"div\"])","metadata":{"trusted":true},"outputs":[],"execution_count":5},{"id":"ecef1ed5-a8d3-48c3-9e01-4a40e55c1153","cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"57d2626f4f574042afde6ffccb7cdf5f"}},"metadata":{}}],"execution_count":6},{"id":"2b88a30a-e26b-4802-89b7-79ca08cc0af9","cell_type":"code","source":"obj = get_prod_and_div(x=1, y=2, pyiron_project=pr)","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"id":"a5e5ca63-2906-47c9-bac6-adebf8643cba","cell_type":"code","source":"w = add_x_and_y(x=obj.output.prod, y=obj.output.div, pyiron_project=pr)","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"id":"e464da97-16a1-4772-9a07-0a47f152781d","cell_type":"code","source":"write_workflow_json(delayed_object=w, file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"id":"bca646b2-0a9a-4271-966a-e5903a8c9031","cell_type":"code","source":"!cat {workflow_json_filename}","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"{\"nodes\": [{\"id\": 0, \"function\": \"simple_workflow.add_x_and_y\"}, {\"id\": 1, \"function\": \"simple_workflow.get_prod_and_div\"}, {\"id\": 2, \"value\": 1}, {\"id\": 3, \"value\": 2}], \"edges\": [{\"target\": 0, \"targetPort\": \"x\", \"source\": 1, \"sourcePort\": \"prod\"}, {\"target\": 1, \"targetPort\": \"x\", \"source\": 2, \"sourcePort\": null}, {\"target\": 1, \"targetPort\": \"y\", \"source\": 3, \"sourcePort\": null}, {\"target\": 0, \"targetPort\": \"y\", \"source\": 1, \"sourcePort\": \"div\"}]}"}],"execution_count":10},{"id":"a4c0faaf-e30d-4ded-8e9f-57f97f51b14c","cell_type":"markdown","source":"## Load Workflow with aiida","metadata":{}},{"id":"2ecc229f-daa1-49b9-9279-a6b5ae1aa4f2","cell_type":"code","source":"from aiida import load_profile\n\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":11,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":11},{"id":"68a56b32-9f99-43d7-aaee-0c1cd9522681","cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"id":"8f2a621d-b533-4ddd-8bcd-c22db2f922ec","cell_type":"code","source":"wg = load_workflow_json(file_name=workflow_json_filename)\nwg","metadata":{"trusted":true},"outputs":[{"execution_count":13,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"e429e6d025e44146b69e330b4888358f"}},"metadata":{}}],"execution_count":13},{"id":"cf80267d-c2b0-4236-bf1d-a57596985fc1","cell_type":"code","source":"\nwg.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 11:28:38 AM <641> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [15|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_prod_and_div2\n04/12/2025 11:28:39 AM <641> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [15|WorkGraphEngine|update_task_state]: Task: get_prod_and_div2, type: PyFunction, finished.\n04/12/2025 11:28:39 AM <641> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [15|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y1\n04/12/2025 11:28:40 AM <641> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [15|WorkGraphEngine|update_task_state]: Task: add_x_and_y1, type: PyFunction, finished.\n04/12/2025 11:28:40 AM <641> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [15|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 11:28:40 AM <641> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [15|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":14},{"id":"0c3503e1-0a32-40e1-845d-3fd9ec3c4c19","cell_type":"markdown","source":"## Load Workflow with jobflow","metadata":{}},{"id":"4abb0481-8e38-479d-ae61-6c46d091653e","cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":15},{"id":"8253dd7c283bf3f7","cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[],"execution_count":16},{"id":"4b45e83b-945f-48c5-8e20-9df0ce0a14a1","cell_type":"code","source":"flow = load_workflow_json(file_name=workflow_json_filename)","metadata":{"trusted":true},"outputs":[],"execution_count":17},{"id":"8665c39c-220c-4982-b738-c31f6460530f","cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 11:28:41,600 INFO Started executing jobs locally\n2025-04-12 11:28:42,179 INFO Starting job - get_prod_and_div (a00c2b77-12e1-4ec7-9919-99f65db51848)\n2025-04-12 11:28:42,184 INFO Finished job - get_prod_and_div (a00c2b77-12e1-4ec7-9919-99f65db51848)\n2025-04-12 11:28:42,186 INFO Starting job - add_x_and_y (5e71d195-b5a0-4eda-9279-0587f97ad019)\n2025-04-12 11:28:42,190 INFO Finished job - add_x_and_y (5e71d195-b5a0-4eda-9279-0587f97ad019)\n2025-04-12 11:28:42,191 INFO Finished executing jobs locally\n"},{"execution_count":18,"output_type":"execute_result","data":{"text/plain":"{'a00c2b77-12e1-4ec7-9919-99f65db51848': {1: Response(output={'prod': 2, 'div': 0.5}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '5e71d195-b5a0-4eda-9279-0587f97ad019': {1: Response(output=2.5, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":18},{"id":"cf76f305-24de-45a7-be8e-cfe45cd6458e","cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]} \ No newline at end of file diff --git a/universal_workflow_nfdi.ipynb b/universal_workflow_nfdi.ipynb index 894bb02..d874b1a 100644 --- a/universal_workflow_nfdi.ipynb +++ b/universal_workflow_nfdi.ipynb @@ -1,646 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Load Simple Workflow" - ] - }, - { - "metadata": {}, - "cell_type": "markdown", - "source": "## Plot" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "from python_workflow_definition.plot import plot" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "plot(file_name='workflow_nfdi.json')" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Aiida " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Profile" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from python_workflow_definition.aiida import load_workflow_json\n", - "\n", - "from aiida import load_profile\n", - "load_profile()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "workgraph = load_workflow_json(file_name='workflow_nfdi.json')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c1671fb385e3469ea269044a47160225", - "version_major": 2, - "version_minor": 1 - }, - "text/plain": [ - "NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# TODO: Create inputs rather than tasks out of data nodes\n", - "workgraph" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "03/24/2025 12:15:40 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: pickle_node3,pickle_node4\n", - "03/24/2025 12:15:49 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|on_wait]: Process status: Waiting for child processes: 1076, 1083\n", - "03/24/2025 12:16:27 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: pickle_node3, type: PYTHONJOB, finished.\n", - "03/24/2025 12:16:28 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: pickle_node4, type: PYTHONJOB, finished.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "invalid state\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "03/24/2025 12:16:29 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y1\n", - "03/24/2025 12:16:35 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|on_wait]: Process status: Waiting for child processes: 1098\n", - "03/24/2025 12:16:58 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: add_x_and_y1, type: PYTHONJOB, finished.\n", - "03/24/2025 12:16:59 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y_and_z2\n", - "03/24/2025 12:17:04 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|on_wait]: Process status: Waiting for child processes: 1111\n", - "03/24/2025 12:17:23 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: add_x_and_y_and_z2, type: PYTHONJOB, finished.\n", - "03/24/2025 12:17:25 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n", - "03/24/2025 12:17:25 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|finalize]: Finalize workgraph.\n" - ] - } - ], - "source": [ - "\n", - "workgraph.run()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## executorlib" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from executorlib import SingleNodeExecutor" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.executorlib import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "with SingleNodeExecutor(max_workers=1) as exe:\n", - " result = load_workflow_json(file_name=\"workflow_nfdi.json\", exe=exe).result()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Jobflow" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/jan/mambaforge/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n", - " \"cipher\": algorithms.TripleDES,\n", - "/home/jan/mambaforge/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n", - " \"class\": algorithms.TripleDES,\n" - ] - } - ], - "source": [ - "from jobflow.managers.local import run_locally" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.jobflow import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "flow = load_workflow_json(file_name=\"workflow_nfdi.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-03-24 12:17:31,659 INFO Started executing jobs locally\n", - "2025-03-24 12:17:33,059 INFO Starting job - add_x_and_y (a8004d81-a7b8-41f1-a673-17b4d6e90ebf)\n", - "2025-03-24 12:17:33,061 INFO Finished job - add_x_and_y (a8004d81-a7b8-41f1-a673-17b4d6e90ebf)\n", - "2025-03-24 12:17:33,062 INFO Starting job - add_x_and_y_and_z (26ddcedb-34b3-4b09-883d-311b2689d870)\n", - "2025-03-24 12:17:33,066 INFO Finished job - add_x_and_y_and_z (26ddcedb-34b3-4b09-883d-311b2689d870)\n", - "2025-03-24 12:17:33,070 INFO Finished executing jobs locally\n" - ] - }, - { - "data": { - "text/plain": [ - "{'a8004d81-a7b8-41f1-a673-17b4d6e90ebf': {1: Response(output={'x': 1, 'y': 2, 'z': 3}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jan/notebooks/2025/2025-03-22-compare-workflows'))},\n", - " '26ddcedb-34b3-4b09-883d-311b2689d870': {1: Response(output=6, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jan/notebooks/2025/2025-03-22-compare-workflows'))}}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result = run_locally(flow)\n", - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## pyiron" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "from pyiron_base import Project" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.pyiron_base import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c62706b413eb44a391d2a24366c8ef82", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "0it [00:00, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pr = Project(\"test\")\n", - "pr.remove_jobs(recursive=True, silently=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "create_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346efa3f0>\n", - "\n", - "\n", - "\n", - "x_66de6656099aebbaa5cdc840b1bf9733\n", - "\n", - "x=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346efa030>\n", - "\n", - "\n", - "\n", - "x_66de6656099aebbaa5cdc840b1bf9733->create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce\n", - "\n", - "x=1\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce->x_66de6656099aebbaa5cdc840b1bf9733\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_12cc51ee4250f1b82f9bc22e047ad944\n", - "\n", - "y=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346efa000>\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce->y_12cc51ee4250f1b82f9bc22e047ad944\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z_91b561a78a57aad1d943f498a3c737ed\n", - "\n", - "z=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346ef9ee0>\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce->z_91b561a78a57aad1d943f498a3c737ed\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_12cc51ee4250f1b82f9bc22e047ad944->create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z_91b561a78a57aad1d943f498a3c737ed->create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6\n", - "\n", - "y=2\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6->x_66de6656099aebbaa5cdc840b1bf9733\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6->y_12cc51ee4250f1b82f9bc22e047ad944\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6->z_91b561a78a57aad1d943f498a3c737ed\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "delayed_object = load_workflow_json(project=pr, file_name=\"workflow_nfdi.json\")\n", - "delayed_object.draw()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job add_x_and_y_68901482a2c5221cc845f828aabebd27 was saved and received the ID: 8\n", - "The job add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d was saved and received the ID: 9\n" - ] - }, - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "delayed_object.pull()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
08finishedNoneadd_x_and_y_68901482a2c5221cc845f828aabebd27/add_x_and_y_68901482a2c5221cc845f828aabebd27None/home/jan/notebooks/2025/2025-03-22-compare-workflows/test/2025-03-24 12:17:37.412001NoneNonepyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1PythonFunctionContainerJob0.4NoneNone
19finishedNoneadd_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d/add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8dNone/home/jan/notebooks/2025/2025-03-22-compare-workflows/test/2025-03-24 12:17:39.161717NoneNonepyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1PythonFunctionContainerJob0.4NoneNone
\n", - "
" - ], - "text/plain": [ - " id status chemicalformula \\\n", - "0 8 finished None \n", - "1 9 finished None \n", - "\n", - " job \\\n", - "0 add_x_and_y_68901482a2c5221cc845f828aabebd27 \n", - "1 add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d \n", - "\n", - " subjob projectpath \\\n", - "0 /add_x_and_y_68901482a2c5221cc845f828aabebd27 None \n", - "1 /add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d None \n", - "\n", - " project \\\n", - "0 /home/jan/notebooks/2025/2025-03-22-compare-workflows/test/ \n", - "1 /home/jan/notebooks/2025/2025-03-22-compare-workflows/test/ \n", - "\n", - " timestart timestop totalcputime \\\n", - "0 2025-03-24 12:17:37.412001 None None \n", - "1 2025-03-24 12:17:39.161717 None None \n", - "\n", - " computer \\\n", - "0 pyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1 \n", - "1 pyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1 \n", - "\n", - " hamilton hamversion parentid masterid \n", - "0 PythonFunctionContainerJob 0.4 None None \n", - "1 PythonFunctionContainerJob 0.4 None None " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pr.job_table()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Python" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.purepython import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "load_workflow_json(file_name=\"workflow_nfdi.json\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Load Simple Workflow","metadata":{}},{"cell_type":"markdown","source":"## Plot","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.plot import plot","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"cell_type":"code","source":"plot(file_name='workflow_nfdi.json')","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\n0\n\nnfdi_ing_workflow.generate_mesh\n\n\n\n1\n\nnfdi_ing_workflow.convert_to_xdmf\n\n\n\n0->1\n\n\ngmsh_output_file\n\n\n\n2\n\nnfdi_ing_workflow.poisson\n\n\n\n1->2\n\n\nxdmf_file=meshio_output_xdmf, h5_file=meshio_output_h5\n\n\n\n3\n\nnfdi_ing_workflow.plot_over_line\n\n\n\n2->3\n\n\npvd_file=poisson_output_pvd_file, vtu_file=poisson_output_vtu_file\n\n\n\n4\n\nnfdi_ing_workflow.substitute_macros\n\n\n\n2->4\n\n\nnumdofs=ndofs\n\n\n\n3->4\n\n\npvbatch_output_file\n\n\n\n5\n\nnfdi_ing_workflow.compile_paper\n\n\n\n3->5\n\n\nplot_file\n\n\n\n4->5\n\n\nmacros_tex\n\n\n\n6\n\n2.0\n\n\n\n6->0\n\n\ndomain_size\n\n\n\n6->4\n\n\ndomain_size\n\n\n"},"metadata":{}}],"execution_count":2},{"cell_type":"markdown","source":"## Aiida ","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json\n\nfrom aiida import load_profile\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":3},{"cell_type":"code","source":"workgraph = load_workflow_json(file_name='workflow_nfdi.json')","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"cell_type":"code","source":"# TODO: Create inputs rather than tasks out of data nodes\nworkgraph","metadata":{"trusted":true},"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"bf4300375ee04d28a25cfc523c7b3771"}},"metadata":{}}],"execution_count":5},{"cell_type":"code","source":"\nworkgraph.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 11:36:26 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_mesh1\n04/12/2025 11:36:30 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|update_task_state]: Task: generate_mesh1, type: PyFunction, finished.\n04/12/2025 11:36:30 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: convert_to_xdmf2\n04/12/2025 11:36:34 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|update_task_state]: Task: convert_to_xdmf2, type: PyFunction, finished.\n04/12/2025 11:36:34 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: poisson3\n04/12/2025 11:36:40 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|update_task_state]: Task: poisson3, type: PyFunction, finished.\n04/12/2025 11:36:40 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_over_line4\n04/12/2025 11:36:45 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|update_task_state]: Task: plot_over_line4, type: PyFunction, finished.\n04/12/2025 11:36:45 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: substitute_macros5\n04/12/2025 11:36:48 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|update_task_state]: Task: substitute_macros5, type: PyFunction, finished.\n04/12/2025 11:36:48 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: compile_paper6\n04/12/2025 11:36:54 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|update_task_state]: Task: compile_paper6, type: PyFunction, finished.\n04/12/2025 11:36:54 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 11:36:55 AM <5813> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [96|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":6},{"cell_type":"markdown","source":"## executorlib","metadata":{}},{"cell_type":"code","source":"from executorlib import SingleNodeExecutor","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"cell_type":"code","source":"from python_workflow_definition.executorlib import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"cell_type":"code","source":"with SingleNodeExecutor(max_workers=1) as exe:\n result = load_workflow_json(file_name=\"workflow_nfdi.json\", exe=exe).result()","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"cell_type":"code","source":"result","metadata":{"trusted":true},"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":10},{"cell_type":"markdown","source":"## Jobflow","metadata":{}},{"cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":11},{"cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"cell_type":"code","source":"flow = load_workflow_json(file_name=\"workflow_nfdi.json\")","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 11:37:24,699 INFO Started executing jobs locally\n2025-04-12 11:37:24,909 INFO Starting job - generate_mesh (e49c3ef7-293f-4056-8e1d-ed987845c1d2)\n2025-04-12 11:37:27,427 INFO Finished job - generate_mesh (e49c3ef7-293f-4056-8e1d-ed987845c1d2)\n2025-04-12 11:37:27,429 INFO Starting job - convert_to_xdmf (38394736-3ae0-4e20-9896-2257c3c509e5)\n2025-04-12 11:37:30,083 INFO Finished job - convert_to_xdmf (38394736-3ae0-4e20-9896-2257c3c509e5)\n2025-04-12 11:37:30,084 INFO Starting job - poisson (1f372075-3e92-4307-9f7e-40eed034a1bd)\n2025-04-12 11:37:34,914 INFO Finished job - poisson (1f372075-3e92-4307-9f7e-40eed034a1bd)\n2025-04-12 11:37:34,915 INFO Starting job - plot_over_line (d912b64e-3d95-46cb-87ba-a9243fce854d)\n2025-04-12 11:37:38,549 INFO Finished job - plot_over_line (d912b64e-3d95-46cb-87ba-a9243fce854d)\n2025-04-12 11:37:38,551 INFO Starting job - substitute_macros (aaca9788-f092-439f-b83f-e4f565446723)\n2025-04-12 11:37:40,346 INFO Finished job - substitute_macros (aaca9788-f092-439f-b83f-e4f565446723)\n2025-04-12 11:37:40,348 INFO Starting job - compile_paper (e10f1f8c-218e-4cef-9ae9-9e6f06c9f658)\n2025-04-12 11:37:46,320 INFO Finished job - compile_paper (e10f1f8c-218e-4cef-9ae9-9e6f06c9f658)\n2025-04-12 11:37:46,325 INFO Finished executing jobs locally\n"},{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"{'e49c3ef7-293f-4056-8e1d-ed987845c1d2': {1: Response(output='/home/jovyan/preprocessing/square.msh', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '38394736-3ae0-4e20-9896-2257c3c509e5': {1: Response(output={'xdmf_file': '/home/jovyan/preprocessing/square.xdmf', 'h5_file': '/home/jovyan/preprocessing/square.h5'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '1f372075-3e92-4307-9f7e-40eed034a1bd': {1: Response(output={'numdofs': 357, 'pvd_file': '/home/jovyan/processing/poisson.pvd', 'vtu_file': '/home/jovyan/processing/poisson000000.vtu'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'd912b64e-3d95-46cb-87ba-a9243fce854d': {1: Response(output='/home/jovyan/postprocessing/plotoverline.csv', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'aaca9788-f092-439f-b83f-e4f565446723': {1: Response(output='/home/jovyan/postprocessing/macros.tex', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'e10f1f8c-218e-4cef-9ae9-9e6f06c9f658': {1: Response(output='/home/jovyan/postprocessing/paper.pdf', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":14},{"cell_type":"markdown","source":"## pyiron","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":16},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"7692a4252507481dad2eb36bd782383d"}},"metadata":{}}],"execution_count":17},{"cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=\"workflow_nfdi.json\")\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3afc0>\n\n\n\nmacros_tex_d7e91609122a5793f44a95d7162f82c5\n\nmacros_tex=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3ad50>\n\n\n\nmacros_tex_d7e91609122a5793f44a95d7162f82c5->create_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\n\n\n\n\npvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\npvbatch_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3aa20>\n\n\n\npvbatch_output_file_f6679ca13153e695cd36070d492d8182->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\npoisson_output_pvd_file=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3a6c0>\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006->pvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nplot_file_f6679ca13153e695cd36070d492d8182\n\nplot_file=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3aa20>\n\n\n\npoisson_output_pvd_file_41d40612f4bc22f2593e670f29125006->plot_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nplot_file_f6679ca13153e695cd36070d492d8182->create_function_job_dae750e8dda36ce20c8f461aa2b9d570\n\n\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c\n\nmeshio_output_xdmf=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3a270>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->poisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\npoisson_output_vtu_file=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3a690>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->poisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\n\n\n\n\nndofs_c902b1da86c67e7079cdd6e960396773\n\nndofs=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3aab0>\n\n\n\nmeshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c->ndofs_c902b1da86c67e7079cdd6e960396773\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512->pvbatch_output_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\npoisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512->plot_file_f6679ca13153e695cd36070d492d8182\n\n\n\n\n\nndofs_c902b1da86c67e7079cdd6e960396773->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3\n\ngmsh_output_file=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3a120>\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3->meshio_output_xdmf_e20be8f29bc4ca911e1e857f5d76741c\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe\n\nmeshio_output_h5=<pyiron_base.project.delayed.DelayedObject object at 0x7efc8dc3a300>\n\n\n\ngmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3->meshio_output_h5_70513360c325554f1fb9101a93e5febe\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->poisson_output_pvd_file_41d40612f4bc22f2593e670f29125006\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->poisson_output_vtu_file_fba6f167ab9d57bbcafccf92fb371512\n\n\n\n\n\nmeshio_output_h5_70513360c325554f1fb9101a93e5febe->ndofs_c902b1da86c67e7079cdd6e960396773\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20\n\ndomain_size=2.0\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->macros_tex_d7e91609122a5793f44a95d7162f82c5\n\n\n\n\n\ndomain_size_f12a7f1986b9dd058dfc666dbe230b20->gmsh_output_file_1cb82d5adda4ad37cdf5ce6e8136f5d3\n\n\n\n\n"},"metadata":{}}],"execution_count":18},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job generate_mesh_0b48cf5155cd6802c17d20bb58104132 was saved and received the ID: 1\nThe job convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 was saved and received the ID: 2\nThe job poisson_a0224b23ceb2119d105a5d98ef37f93e was saved and received the ID: 3\nThe job plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b was saved and received the ID: 4\nThe job substitute_macros_874fc185ecec04b4cb9537c58b7efb7b was saved and received the ID: 5\nThe job compile_paper_3cee534ffe692833d37faf1fd2170cb6 was saved and received the ID: 6\n"},{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":19},{"cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n2 3 finished None \n3 4 finished None \n4 5 finished None \n5 6 finished None \n\n job \\\n0 generate_mesh_0b48cf5155cd6802c17d20bb58104132 \n1 convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 \n2 poisson_a0224b23ceb2119d105a5d98ef37f93e \n3 plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b \n4 substitute_macros_874fc185ecec04b4cb9537c58b7efb7b \n5 compile_paper_3cee534ffe692833d37faf1fd2170cb6 \n\n subjob projectpath \\\n0 /generate_mesh_0b48cf5155cd6802c17d20bb58104132 None \n1 /convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43 None \n2 /poisson_a0224b23ceb2119d105a5d98ef37f93e None \n3 /plot_over_line_82b37a42e0747f11d9a7f6318f63ac6b None \n4 /substitute_macros_874fc185ecec04b4cb9537c58b7efb7b None \n5 /compile_paper_3cee534ffe692833d37faf1fd2170cb6 None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-12 11:37:47.484698 None None \n1 /home/jovyan/test/ 2025-04-12 11:37:50.298635 None None \n2 /home/jovyan/test/ 2025-04-12 11:37:53.385644 None None \n3 /home/jovyan/test/ 2025-04-12 11:37:58.722025 None None \n4 /home/jovyan/test/ 2025-04-12 11:38:02.952659 None None \n5 /home/jovyan/test/ 2025-04-12 11:38:04.909139 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n2 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n3 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n4 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n5 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None \n2 PythonFunctionContainerJob 0.4 None None \n3 PythonFunctionContainerJob 0.4 None None \n4 PythonFunctionContainerJob 0.4 None None \n5 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNonegenerate_mesh_0b48cf5155cd6802c17d20bb58104132/generate_mesh_0b48cf5155cd6802c17d20bb58104132None/home/jovyan/test/2025-04-12 11:37:47.484698NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneconvert_to_xdmf_29ad6ec6927268429dc9aef8166fde43/convert_to_xdmf_29ad6ec6927268429dc9aef8166fde43None/home/jovyan/test/2025-04-12 11:37:50.298635NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
23finishedNonepoisson_a0224b23ceb2119d105a5d98ef37f93e/poisson_a0224b23ceb2119d105a5d98ef37f93eNone/home/jovyan/test/2025-04-12 11:37:53.385644NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
34finishedNoneplot_over_line_82b37a42e0747f11d9a7f6318f63ac6b/plot_over_line_82b37a42e0747f11d9a7f6318f63ac6bNone/home/jovyan/test/2025-04-12 11:37:58.722025NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
45finishedNonesubstitute_macros_874fc185ecec04b4cb9537c58b7efb7b/substitute_macros_874fc185ecec04b4cb9537c58b7efb7bNone/home/jovyan/test/2025-04-12 11:38:02.952659NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
56finishedNonecompile_paper_3cee534ffe692833d37faf1fd2170cb6/compile_paper_3cee534ffe692833d37faf1fd2170cb6None/home/jovyan/test/2025-04-12 11:38:04.909139NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":20},{"cell_type":"markdown","source":"## Python","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.purepython import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"cell_type":"code","source":"load_workflow_json(file_name=\"workflow_nfdi.json\")","metadata":{"trusted":true},"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"'/home/jovyan/postprocessing/paper.pdf'"},"metadata":{}}],"execution_count":22}]} \ No newline at end of file diff --git a/universal_workflow_qe.ipynb b/universal_workflow_qe.ipynb index 182229d..d423994 100644 --- a/universal_workflow_qe.ipynb +++ b/universal_workflow_qe.ipynb @@ -1,1865 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Load Quantum Espresso Energy Volume Curve Workflow" - ] - }, - { - "metadata": {}, - "cell_type": "markdown", - "source": "## Plot" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "from python_workflow_definition.plot import plot" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "plot(file_name='workflow_qe.json')" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Aiida " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Profile" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from python_workflow_definition.aiida import load_workflow_json\n", - "from aiida import load_profile\n", - "load_profile()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "wg = load_workflow_json(file_name='workflow_qe.json')" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "0878f4037df646f280e7a410c0119254", - "version_major": 2, - "version_minor": 1 - }, - "text/plain": [ - "NodeGraphWidget(positions={'get_list17': [30, 30]}, settings={'minimap': True}, states={'get_dict10': 'FINISHE…" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wg" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "04/01/2025 10:47:35 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure1\n", - "04/01/2025 10:47:36 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_bulk_structure1, type: PyFunction, finished.\n", - "04/01/2025 10:47:36 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10\n", - "04/01/2025 10:47:38 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.\n", - "04/01/2025 10:47:38 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe2\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "04/01/2025 10:47:57 AM <3350393> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])\n", - "04/01/2025 10:47:58 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: calculate_qe2, type: PyFunction, finished.\n", - "04/01/2025 10:47:58 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures3\n", - "04/01/2025 10:47:59 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: generate_structures3, type: PyFunction, finished.\n", - "04/01/2025 10:48:00 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict11,get_dict12,get_dict13,get_dict14,get_dict15\n", - "04/01/2025 10:48:01 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_dict11, type: PyFunction, finished.\n", - "04/01/2025 10:48:02 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict13,get_dict14,get_dict15,calculate_qe4\n", - "04/01/2025 10:48:03 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.\n", - "04/01/2025 10:48:03 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict13,get_dict14,get_dict15,calculate_qe4,calculate_qe5\n", - "04/01/2025 10:48:05 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_dict13, type: PyFunction, finished.\n", - "04/01/2025 10:48:05 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict15,calculate_qe4,calculate_qe5,calculate_qe6\n", - "04/01/2025 10:48:06 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.\n", - "04/01/2025 10:48:07 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict15,calculate_qe4,calculate_qe5,calculate_qe6,calculate_qe7\n", - "04/01/2025 10:48:08 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_dict15, type: PyFunction, finished.\n", - "04/01/2025 10:48:08 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe4,calculate_qe5,calculate_qe6,calculate_qe7,calculate_qe8\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "04/01/2025 10:48:13 AM <3350393> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n", - "04/01/2025 10:48:13 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: calculate_qe4, type: PyFunction, finished.\n", - "04/01/2025 10:48:14 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe5,calculate_qe6,calculate_qe7,calculate_qe8\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "04/01/2025 10:48:18 AM <3350393> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n", - "04/01/2025 10:48:18 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: calculate_qe5, type: PyFunction, finished.\n", - "04/01/2025 10:48:19 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6,calculate_qe7,calculate_qe8\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "04/01/2025 10:48:24 AM <3350393> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n", - "04/01/2025 10:48:24 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.\n", - "04/01/2025 10:48:25 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe7,calculate_qe8\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "04/01/2025 10:48:30 AM <3350393> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n", - "04/01/2025 10:48:30 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: calculate_qe7, type: PyFunction, finished.\n", - "04/01/2025 10:48:31 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe8\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "04/01/2025 10:48:36 AM <3350393> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n", - "04/01/2025 10:48:37 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: calculate_qe8, type: PyFunction, finished.\n", - "04/01/2025 10:48:37 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list16,get_list17\n", - "04/01/2025 10:48:38 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_list16, type: PyFunction, finished.\n", - "04/01/2025 10:48:39 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17\n", - "04/01/2025 10:48:40 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.\n", - "04/01/2025 10:48:40 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve9\n", - "04/01/2025 10:48:41 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve9, type: PyFunction, finished.\n", - "04/01/2025 10:48:42 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n", - "04/01/2025 10:48:43 AM <3350393> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [51096|WorkGraphEngine|finalize]: Finalize workgraph.\n" - ] - }, - { - "data": { - "image/png": "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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "wg.run()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## executorlib" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from executorlib import SingleNodeExecutor" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.executorlib import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - } - ], - "source": [ - "with SingleNodeExecutor(max_workers=1) as exe:\n", - " result = load_workflow_json(file_name=\"workflow_qe.json\", exe=exe).result()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## jobflow" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "from jobflow.managers.local import run_locally" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.jobflow import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "flow = load_workflow_json(file_name=\"workflow_qe.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:00,064 INFO Started executing jobs locally\n", - "2025-04-01 10:43:00,178 INFO Starting job - get_bulk_structure (fec37bcc-80c3-4dd6-a3fd-edec25d0b82e)\n", - "2025-04-01 10:43:00,181 INFO Finished job - get_bulk_structure (fec37bcc-80c3-4dd6-a3fd-edec25d0b82e)\n", - "2025-04-01 10:43:00,182 INFO Starting job - get_dict (d81a1fa8-1abd-435a-a866-ea84fc3b19b0)\n", - "2025-04-01 10:43:00,184 INFO Finished job - get_dict (d81a1fa8-1abd-435a-a866-ea84fc3b19b0)\n", - "2025-04-01 10:43:00,185 INFO Starting job - calculate_qe (ae08905c-3313-4ba0-bc13-7d2ee7f17f76)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:18,785 INFO Finished job - calculate_qe (ae08905c-3313-4ba0-bc13-7d2ee7f17f76)\n", - "2025-04-01 10:43:18,786 INFO Starting job - generate_structures (a94dfe7c-a3c6-4276-9a9d-a3f2b9d57faf)\n", - "2025-04-01 10:43:18,791 INFO Finished job - generate_structures (a94dfe7c-a3c6-4276-9a9d-a3f2b9d57faf)\n", - "2025-04-01 10:43:18,792 INFO Starting job - get_dict (8f7a52da-85ea-4fbe-b673-93e74bd25dc6)\n", - "2025-04-01 10:43:18,794 INFO Finished job - get_dict (8f7a52da-85ea-4fbe-b673-93e74bd25dc6)\n", - "2025-04-01 10:43:18,794 INFO Starting job - get_dict (1564a9fe-5128-42cf-af00-8b41d1c83237)\n", - "2025-04-01 10:43:18,796 INFO Finished job - get_dict (1564a9fe-5128-42cf-af00-8b41d1c83237)\n", - "2025-04-01 10:43:18,796 INFO Starting job - get_dict (a423bcf6-944b-4b47-8a47-66034c635343)\n", - "2025-04-01 10:43:18,798 INFO Finished job - get_dict (a423bcf6-944b-4b47-8a47-66034c635343)\n", - "2025-04-01 10:43:18,798 INFO Starting job - get_dict (f52a0a77-c42b-4ad4-8228-fd07bad376b8)\n", - "2025-04-01 10:43:18,800 INFO Finished job - get_dict (f52a0a77-c42b-4ad4-8228-fd07bad376b8)\n", - "2025-04-01 10:43:18,801 INFO Starting job - get_dict (383a4fa1-ad7a-46b5-8f79-c1d0d5838e86)\n", - "2025-04-01 10:43:18,803 INFO Finished job - get_dict (383a4fa1-ad7a-46b5-8f79-c1d0d5838e86)\n", - "2025-04-01 10:43:18,804 INFO Starting job - calculate_qe (ae034efc-02cc-4f9f-a2b8-7cf9a38cc452)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:22,459 INFO Finished job - calculate_qe (ae034efc-02cc-4f9f-a2b8-7cf9a38cc452)\n", - "2025-04-01 10:43:22,459 INFO Starting job - calculate_qe (7903c4a6-4838-48b3-9330-94c9f8390840)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:26,324 INFO Finished job - calculate_qe (7903c4a6-4838-48b3-9330-94c9f8390840)\n", - "2025-04-01 10:43:26,325 INFO Starting job - calculate_qe (1c624fa8-835f-4c64-a2e2-995cd14daad3)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:30,554 INFO Finished job - calculate_qe (1c624fa8-835f-4c64-a2e2-995cd14daad3)\n", - "2025-04-01 10:43:30,555 INFO Starting job - calculate_qe (60fbb50c-f3a1-4c4d-b91a-4fcfc5709d38)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:35,103 INFO Finished job - calculate_qe (60fbb50c-f3a1-4c4d-b91a-4fcfc5709d38)\n", - "2025-04-01 10:43:35,104 INFO Starting job - calculate_qe (fbc7193a-584b-4a82-8f3f-b3aeed2c8656)\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-04-01 10:43:39,720 INFO Finished job - calculate_qe (fbc7193a-584b-4a82-8f3f-b3aeed2c8656)\n", - "2025-04-01 10:43:39,721 INFO Starting job - get_list (3581ffb6-39f7-4774-a4a0-e13f59fe1405)\n", - "2025-04-01 10:43:39,724 INFO Finished job - get_list (3581ffb6-39f7-4774-a4a0-e13f59fe1405)\n", - "2025-04-01 10:43:39,725 INFO Starting job - get_list (c43d797a-af0a-493e-be09-5314c72cbc15)\n", - "2025-04-01 10:43:39,728 INFO Finished job - get_list (c43d797a-af0a-493e-be09-5314c72cbc15)\n", - "2025-04-01 10:43:39,729 INFO Starting job - plot_energy_volume_curve (ba52cebe-8686-41c4-aa62-2f09dcfc7d06)\n", - "2025-04-01 10:43:39,798 INFO Finished job - plot_energy_volume_curve (ba52cebe-8686-41c4-aa62-2f09dcfc7d06)\n", - "2025-04-01 10:43:39,799 INFO Finished executing jobs locally\n" - ] - }, - { - "data": { - "text/plain": [ - "{'fec37bcc-80c3-4dd6-a3fd-edec25d0b82e': {1: Response(output='{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'd81a1fa8-1abd-435a-a866-ea84fc3b19b0': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'vc-relax', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'ae08905c-3313-4ba0-bc13-7d2ee7f17f76': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648324, 0.0, 0.0], [0.0, 4.045637407648324, 0.0], [0.0, 0.0, 4.045637407648324]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228187038241616, 2.0228187038241616], [2.0228187038241616, 0.0, 2.0228187038241616], [2.0228187038241616, 2.0228187038241616, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365698416889, 'volume': 66.21568389520128}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'a94dfe7c-a3c6-4276-9a9d-a3f2b9d57faf': {1: Response(output={'s_0': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060199710478956, 0.0, 0.0], [0.0, 3.9060199710478956, 0.0], [0.0, 0.0, 3.9060199710478956]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099855239473, 1.9530099855239473], [1.9530099855239473, 0.0, 1.9530099855239473], [1.9530099855239473, 1.9530099855239473, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_1': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977054032769727, 0.0, 0.0], [0.0, 3.977054032769727, 0.0], [0.0, 0.0, 3.977054032769727]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.988527016384863, 1.988527016384863], [1.988527016384863, 0.0, 1.988527016384863], [1.988527016384863, 1.988527016384863, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_2': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648324, 0.0, 0.0], [0.0, 4.045637407648324, 0.0], [0.0, 0.0, 4.045637407648324]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228187038241616, 2.0228187038241616], [2.0228187038241616, 0.0, 2.0228187038241616], [2.0228187038241616, 2.0228187038241616, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_3': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971122127645, 0.0, 0.0], [0.0, 4.111971122127645, 0.0], [0.0, 0.0, 4.111971122127645]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559855610638222, 2.0559855610638222], [2.0559855610638222, 0.0, 2.0559855610638222], [2.0559855610638222, 2.0559855610638222, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_4': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.17623105026181, 0.0, 0.0], [0.0, 4.17623105026181, 0.0], [0.0, 0.0, 4.17623105026181]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881155251309047, 2.0881155251309047], [2.0881155251309047, 0.0, 2.0881155251309047], [2.0881155251309047, 2.0881155251309047, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '8f7a52da-85ea-4fbe-b673-93e74bd25dc6': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060199710478956, 0.0, 0.0], [0.0, 3.9060199710478956, 0.0], [0.0, 0.0, 3.9060199710478956]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099855239473, 1.9530099855239473], [1.9530099855239473, 0.0, 1.9530099855239473], [1.9530099855239473, 1.9530099855239473, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '1564a9fe-5128-42cf-af00-8b41d1c83237': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977054032769727, 0.0, 0.0], [0.0, 3.977054032769727, 0.0], [0.0, 0.0, 3.977054032769727]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.988527016384863, 1.988527016384863], [1.988527016384863, 0.0, 1.988527016384863], [1.988527016384863, 1.988527016384863, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'a423bcf6-944b-4b47-8a47-66034c635343': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637407648324, 0.0, 0.0], [0.0, 4.045637407648324, 0.0], [0.0, 0.0, 4.045637407648324]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228187038241616, 2.0228187038241616], [2.0228187038241616, 0.0, 2.0228187038241616], [2.0228187038241616, 2.0228187038241616, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'f52a0a77-c42b-4ad4-8228-fd07bad376b8': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971122127645, 0.0, 0.0], [0.0, 4.111971122127645, 0.0], [0.0, 0.0, 4.111971122127645]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559855610638222, 2.0559855610638222], [2.0559855610638222, 0.0, 2.0559855610638222], [2.0559855610638222, 2.0559855610638222, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '383a4fa1-ad7a-46b5-8f79-c1d0d5838e86': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.17623105026181, 0.0, 0.0], [0.0, 4.17623105026181, 0.0], [0.0, 0.0, 4.17623105026181]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0881155251309047, 2.0881155251309047], [2.0881155251309047, 0.0, 2.0881155251309047], [2.0881155251309047, 2.0881155251309047, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'ae034efc-02cc-4f9f-a2b8-7cf9a38cc452': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060199539749347, 0.0, 0.0], [0.0, 3.9060199539749347, 0.0], [0.0, 0.0, 3.9060199539749347]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530099769635174, 1.9530099769635174], [1.9530099769635174, 0.0, 1.9530099769635174], [1.9530099769635174, 1.9530099769635174, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.845781112243, 'volume': 59.59411472423505}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '7903c4a6-4838-48b3-9330-94c9f8390840': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.977054015386279, 0.0, 0.0], [0.0, 3.977054015386279, 0.0], [0.0, 0.0, 3.977054015386279]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885270077082742, 1.9885270077082742], [1.9885270077082742, 0.0, 1.9885270077082742], [1.9885270077082742, 1.9885270077082742, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9161853618166, 'volume': 62.90489887558133}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '1c624fa8-835f-4c64-a2e2-995cd14daad3': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637389965095, 0.0, 0.0], [0.0, 4.045637389965095, 0.0], [0.0, 0.0, 4.045637389965095]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186949583877, 2.0228186949583877], [2.0228186949583877, 0.0, 2.0228186949583877], [2.0228186949583877, 2.0228186949583877, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.936567876359, 'volume': 66.21568302692734}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '60fbb50c-f3a1-4c4d-b91a-4fcfc5709d38': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111971104154485, 0.0, 0.0], [0.0, 4.111971104154485, 0.0], [0.0, 0.0, 4.111971104154485]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.055985552113418, 2.055985552113418], [2.055985552113418, 0.0, 2.055985552113418], [2.055985552113418, 2.055985552113418, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.919322535877, 'volume': 69.5264671782742}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'fbc7193a-584b-4a82-8f3f-b3aeed2c8656': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176231032007769, 0.0, 0.0], [0.0, 4.176231032007769, 0.0], [0.0, 0.0, 4.176231032007769]], \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115515972979, 2.088115515972979], [2.088115515972979, 0.0, 2.088115515972979], [2.088115515972979, 2.088115515972979, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8738270284027, 'volume': 72.83725132962039}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " '3581ffb6-39f7-4774-a4a0-e13f59fe1405': {1: Response(output=[59.59411472423505, 62.90489887558133, 66.21568302692734, 69.5264671782742, 72.83725132962039], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'c43d797a-af0a-493e-be09-5314c72cbc15': {1: Response(output=[-1074.845781112243, -1074.9161853618166, -1074.936567876359, -1074.919322535877, -1074.8738270284027], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))},\n", - " 'ba52cebe-8686-41c4-aa62-2f09dcfc7d06': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/wang_x3/repos/superstar54/python-workflow-definition'))}}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "result = run_locally(flow)\n", - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## pyiron_base" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "from pyiron_base import Project" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.pyiron_base import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "35f0ffe2c94b43ce94ee1550e32501ca", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - " 0%| | 0/2 [00:00\n", - "\n", - "\n", - "\n", - "\n", - "create_function_job_3d27da40bddadd3edd45d5e6c0d57512\n", - "\n", - "create_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b5610>\n", - "\n", - "\n", - "\n", - "volume_lst_70fd51f664342c511043158d0e168a55\n", - "\n", - "volume_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b4d90>\n", - "\n", - "\n", - "\n", - "volume_lst_70fd51f664342c511043158d0e168a55->create_function_job_3d27da40bddadd3edd45d5e6c0d57512\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0_f6ef7427d92ecdcf2c43466a234fcc51\n", - "\n", - "0=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b42d0>\n", - "\n", - "\n", - "\n", - "0_f6ef7427d92ecdcf2c43466a234fcc51->volume_lst_70fd51f664342c511043158d0e168a55\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_2e9abb255f1a31f7d29b4451ad422add\n", - "\n", - "working_directory=strain_0\n", - "\n", - "\n", - "\n", - "working_directory_2e9abb255f1a31f7d29b4451ad422add->0_f6ef7427d92ecdcf2c43466a234fcc51\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "0_c412af19d72fb2041c2fa185c813679b\n", - "\n", - "0=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49af5d0>\n", - "\n", - "\n", - "\n", - "working_directory_2e9abb255f1a31f7d29b4451ad422add->0_c412af19d72fb2041c2fa185c813679b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "energy_lst_c0f3144dce6a367e8e12f23f81bfba7d\n", - "\n", - "energy_lst=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b4e10>\n", - "\n", - "\n", - "\n", - "0_c412af19d72fb2041c2fa185c813679b->energy_lst_c0f3144dce6a367e8e12f23f81bfba7d\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_7eb326a68f2767d61992ca095f5ae573\n", - "\n", - "input_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49af090>\n", - "\n", - "\n", - "\n", - "input_dict_7eb326a68f2767d61992ca095f5ae573->0_f6ef7427d92ecdcf2c43466a234fcc51\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_7eb326a68f2767d61992ca095f5ae573->0_c412af19d72fb2041c2fa185c813679b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_92bcc897203e919791e3926c1ac6dc33\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49ac610>\n", - "\n", - "\n", - "\n", - "structure_92bcc897203e919791e3926c1ac6dc33->input_dict_7eb326a68f2767d61992ca095f5ae573\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_c113e8251b29845018e428419a1d2698\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49ac910>\n", - "\n", - "\n", - "\n", - "structure_c113e8251b29845018e428419a1d2698->structure_92bcc897203e919791e3926c1ac6dc33\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_c57ef8eb53ade41024ed57ceb19de992\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a4968410>\n", - "\n", - "\n", - "\n", - "structure_c113e8251b29845018e428419a1d2698->structure_c57ef8eb53ade41024ed57ceb19de992\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_d87118b7e8a16d4b9f1970d74eebcd4a\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a4997050>\n", - "\n", - "\n", - "\n", - "structure_c113e8251b29845018e428419a1d2698->structure_d87118b7e8a16d4b9f1970d74eebcd4a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_0db2c02e1f78152a302f07a5784d979b\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49ad510>\n", - "\n", - "\n", - "\n", - "structure_c113e8251b29845018e428419a1d2698->structure_0db2c02e1f78152a302f07a5784d979b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_0ba669c87c6baed5472eeb14e938e174\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49aced0>\n", - "\n", - "\n", - "\n", - "structure_c113e8251b29845018e428419a1d2698->structure_0ba669c87c6baed5472eeb14e938e174\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_991069882fac1d245d1924779399df6a\n", - "\n", - "input_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49aeb50>\n", - "\n", - "\n", - "\n", - "structure_c57ef8eb53ade41024ed57ceb19de992->input_dict_991069882fac1d245d1924779399df6a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_474fdecd8b5e79a571b3a9a982619be2\n", - "\n", - "input_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49ae610>\n", - "\n", - "\n", - "\n", - "structure_d87118b7e8a16d4b9f1970d74eebcd4a->input_dict_474fdecd8b5e79a571b3a9a982619be2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_967a439953a07cbdde0ac01dbbc1fbe5\n", - "\n", - "input_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49ae0d0>\n", - "\n", - "\n", - "\n", - "structure_0db2c02e1f78152a302f07a5784d979b->input_dict_967a439953a07cbdde0ac01dbbc1fbe5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2\n", - "\n", - "input_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49adc10>\n", - "\n", - "\n", - "\n", - "structure_0ba669c87c6baed5472eeb14e938e174->input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_a17ade9a563d8dcadb655fb2e1c743a7\n", - "\n", - "working_directory=mini\n", - "\n", - "\n", - "\n", - "working_directory_a17ade9a563d8dcadb655fb2e1c743a7->structure_c113e8251b29845018e428419a1d2698\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n", - "\n", - "input_dict=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49ac3d0>\n", - "\n", - "\n", - "\n", - "input_dict_41dfbc5759c1782c1aadb6df0b0ee06b->structure_c113e8251b29845018e428419a1d2698\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "structure_f4511b90f1d10b2338ab6a9d2263a4f7\n", - "\n", - "structure=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a588fa50>\n", - "\n", - "\n", - "\n", - "structure_f4511b90f1d10b2338ab6a9d2263a4f7->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "element_467734216d9bd2497ffd28d5cd6daba0\n", - "\n", - "element=Al\n", - "\n", - "\n", - "\n", - "element_467734216d9bd2497ffd28d5cd6daba0->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "a_aea0574e321c6f75f923c059730e9537\n", - "\n", - "a=4.05\n", - "\n", - "\n", - "\n", - "a_aea0574e321c6f75f923c059730e9537->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "cubic_bad787c53fa02a5559fe570238fdb23a\n", - "\n", - "cubic=True\n", - "\n", - "\n", - "\n", - "cubic_bad787c53fa02a5559fe570238fdb23a->structure_f4511b90f1d10b2338ab6a9d2263a4f7\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10\n", - "\n", - "pseudopotentials={'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_7eb326a68f2767d61992ca095f5ae573\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_991069882fac1d245d1924779399df6a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_474fdecd8b5e79a571b3a9a982619be2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_967a439953a07cbdde0ac01dbbc1fbe5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "pseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "1_060a0900996ca2d406633f9f041281d2\n", - "\n", - "1=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b4250>\n", - "\n", - "\n", - "\n", - "input_dict_991069882fac1d245d1924779399df6a->1_060a0900996ca2d406633f9f041281d2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "1_9410adc6989ced07e32f20a6eab16304\n", - "\n", - "1=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49af690>\n", - "\n", - "\n", - "\n", - "input_dict_991069882fac1d245d1924779399df6a->1_9410adc6989ced07e32f20a6eab16304\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2_cb00ee30718cce62f5c73646a29c4814\n", - "\n", - "2=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b4390>\n", - "\n", - "\n", - "\n", - "input_dict_474fdecd8b5e79a571b3a9a982619be2->2_cb00ee30718cce62f5c73646a29c4814\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2_e9cb3727843a8b76f4fa0384f1b3287a\n", - "\n", - "2=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49af590>\n", - "\n", - "\n", - "\n", - "input_dict_474fdecd8b5e79a571b3a9a982619be2->2_e9cb3727843a8b76f4fa0384f1b3287a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "3_1ecd36da87a4d67e4b8dbb8cfcd2228e\n", - "\n", - "3=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b4510>\n", - "\n", - "\n", - "\n", - "input_dict_967a439953a07cbdde0ac01dbbc1fbe5->3_1ecd36da87a4d67e4b8dbb8cfcd2228e\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "3_b4a37f37bd8f9d13d667830e898445e3\n", - "\n", - "3=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49af890>\n", - "\n", - "\n", - "\n", - "input_dict_967a439953a07cbdde0ac01dbbc1fbe5->3_b4a37f37bd8f9d13d667830e898445e3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "4_d3ced1d52107ce8f9410d04fdfa2e648\n", - "\n", - "4=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a47b4690>\n", - "\n", - "\n", - "\n", - "input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2->4_d3ced1d52107ce8f9410d04fdfa2e648\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "4_bdf3014bce0ac0d1649f8e318db85c05\n", - "\n", - "4=<pyiron_base.project.delayed.DelayedObject object at 0x7f55a49afa10>\n", - "\n", - "\n", - "\n", - "input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2->4_bdf3014bce0ac0d1649f8e318db85c05\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa\n", - "\n", - "kpts=[3, 3, 3]\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_7eb326a68f2767d61992ca095f5ae573\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_991069882fac1d245d1924779399df6a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_474fdecd8b5e79a571b3a9a982619be2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_967a439953a07cbdde0ac01dbbc1fbe5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "kpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "calculation_77b75a01e65d83962d14fa8a882d6c34\n", - "\n", - "calculation=vc-relax\n", - "\n", - "\n", - "\n", - "calculation_77b75a01e65d83962d14fa8a882d6c34->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9\n", - "\n", - "smearing=0.02\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_7eb326a68f2767d61992ca095f5ae573\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_41dfbc5759c1782c1aadb6df0b0ee06b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_991069882fac1d245d1924779399df6a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_474fdecd8b5e79a571b3a9a982619be2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_967a439953a07cbdde0ac01dbbc1fbe5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "smearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "strain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781\n", - "\n", - "strain_lst=[0.9, 0.95, 1.0, 1.05, 1.1]\n", - "\n", - "\n", - "\n", - "strain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_92bcc897203e919791e3926c1ac6dc33\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "strain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_c57ef8eb53ade41024ed57ceb19de992\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "strain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_d87118b7e8a16d4b9f1970d74eebcd4a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "strain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_0db2c02e1f78152a302f07a5784d979b\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "strain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_0ba669c87c6baed5472eeb14e938e174\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "calculation_bc91e0ce7227762f507f47b85f2f0a83\n", - "\n", - "calculation=scf\n", - "\n", - "\n", - "\n", - "calculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_7eb326a68f2767d61992ca095f5ae573\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "calculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_991069882fac1d245d1924779399df6a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "calculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_474fdecd8b5e79a571b3a9a982619be2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "calculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_967a439953a07cbdde0ac01dbbc1fbe5\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "calculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_c0278eac12f9bad4ca8ad2f65e54b4e2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "1_060a0900996ca2d406633f9f041281d2->volume_lst_70fd51f664342c511043158d0e168a55\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_5423d2cc67129a6d0383af6f347df5bd\n", - "\n", - "working_directory=strain_1\n", - "\n", - "\n", - "\n", - "working_directory_5423d2cc67129a6d0383af6f347df5bd->1_060a0900996ca2d406633f9f041281d2\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_5423d2cc67129a6d0383af6f347df5bd->1_9410adc6989ced07e32f20a6eab16304\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "1_9410adc6989ced07e32f20a6eab16304->energy_lst_c0f3144dce6a367e8e12f23f81bfba7d\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2_cb00ee30718cce62f5c73646a29c4814->volume_lst_70fd51f664342c511043158d0e168a55\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_cc646e064ddfc4b2811aba3d86d27992\n", - "\n", - "working_directory=strain_2\n", - "\n", - "\n", - "\n", - "working_directory_cc646e064ddfc4b2811aba3d86d27992->2_cb00ee30718cce62f5c73646a29c4814\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_cc646e064ddfc4b2811aba3d86d27992->2_e9cb3727843a8b76f4fa0384f1b3287a\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "2_e9cb3727843a8b76f4fa0384f1b3287a->energy_lst_c0f3144dce6a367e8e12f23f81bfba7d\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "3_1ecd36da87a4d67e4b8dbb8cfcd2228e->volume_lst_70fd51f664342c511043158d0e168a55\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_e27768d53df6cd8dc245c52054ecf31f\n", - "\n", - "working_directory=strain_3\n", - "\n", - "\n", - "\n", - "working_directory_e27768d53df6cd8dc245c52054ecf31f->3_1ecd36da87a4d67e4b8dbb8cfcd2228e\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_e27768d53df6cd8dc245c52054ecf31f->3_b4a37f37bd8f9d13d667830e898445e3\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "3_b4a37f37bd8f9d13d667830e898445e3->energy_lst_c0f3144dce6a367e8e12f23f81bfba7d\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "4_d3ced1d52107ce8f9410d04fdfa2e648->volume_lst_70fd51f664342c511043158d0e168a55\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_72bba39b22d2b7ce154d37c7e8c658b7\n", - "\n", - "working_directory=strain_4\n", - "\n", - "\n", - "\n", - "working_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_d3ced1d52107ce8f9410d04fdfa2e648\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "working_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_bdf3014bce0ac0d1649f8e318db85c05\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "4_bdf3014bce0ac0d1649f8e318db85c05->energy_lst_c0f3144dce6a367e8e12f23f81bfba7d\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "energy_lst_c0f3144dce6a367e8e12f23f81bfba7d->create_function_job_3d27da40bddadd3edd45d5e6c0d57512\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "delayed_object = load_workflow_json(project=pr, file_name=\"workflow_qe.json\")\n", - "delayed_object.draw()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f was saved and received the ID: 4\n", - "The job get_dict_bbed7e528d369f5fa02591748be3166d was saved and received the ID: 5\n", - "The job calculate_qe_a8254d13768b11f13ee9368124819d22 was saved and received the ID: 6\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job generate_structures_3f6d1168b6bf78842f871ac2ac64785e was saved and received the ID: 7\n", - "The job get_dict_78147dcf9cf97bce89b29b9156be481e was saved and received the ID: 8\n", - "The job calculate_qe_6a905eb237355b37736372ba371d1cd7 was saved and received the ID: 9\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job get_dict_03156dccf3d708cfc4ea579c84410584 was saved and received the ID: 10\n", - "The job calculate_qe_0d18bdb479313067edc04c18ad5e9350 was saved and received the ID: 11\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job get_dict_cb8acebdccdbf43c1274bc0f369e20d2 was saved and received the ID: 12\n", - "The job calculate_qe_fd424c0e14c41f389a8a2f16aeed1727 was saved and received the ID: 13\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job get_dict_ffb00753416ab53a8c9996d34f96d94f was saved and received the ID: 14\n", - "The job calculate_qe_7d7624485601eea5e9b9025e8a169f3f was saved and received the ID: 15\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job get_dict_182ad0e25ad107a0be68d34a5da97797 was saved and received the ID: 16\n", - "The job calculate_qe_f58ce5cbc0e9ad20d31940dc6b3dab89 was saved and received the ID: 17\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job get_list_f3b45e6d3522e7481032cd4c04ea8038 was saved and received the ID: 18\n", - "The job get_list_5b2a5697807693999f4f7fd11cbc24e1 was saved and received the ID: 19\n", - "The job plot_energy_volume_curve_c833d5a782334c26202e03241a80020b was saved and received the ID: 20\n" - ] - }, - { - "data": { - "image/png": "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q9/+SGVJTNeqkQ99WzbAZpTeYFdERBxLRl4hT39dOv32wDXNa92dGVSWpEY4u4zAZ5sSyCssNjeMiIhclheW7OF4dgEtAr14/KbWZsepcipLUiPc0KYhYfU9ycovZvFviWbHERGRS7RiTwrfbE/CaoE5Y66qVdNvZ6ksSY1gtVq498y5S/OjDmOzaUULEZGa7lRuIc98vRuAh65rwVUh/uYGqiYqS1Jj3Na1Kd5uzsQdz2X9wRNmxxERkYt4fskeTuQU0KqhN4/1b2V2nGqjsiQ1ho+7C7d11TICIiKOYPnuZJbsSMLJamH26E64Ode+6bezVJakRhnfOwyLBdbGHufQ8Ryz44iIyHmk5xby7Del028PX9ecTrV0+u0slSWpUcIaeHFjm4YALNgQb24YERE5r+e+3c2JnELaNPLhL/1q7/TbWSpLUuOMP7OMwJdbj5GVX2RuGBERKef7Xcks3ZlcJ6bfzlJZkhqnb8sGtGroTW5hCYu2HDM7joiInHEip6Bs+u2R61vQoamfyYnso1JlKTc3t6pziJSxWCxlo0sLNsRTomUERERqhOe+3U16biERQT48emPtn347q1JlqVGjRtx3332sX7++qvOIADCycxP8PFxISM9jTUya2XFEROq8pTuT+H5XCs5npt9cnevO5FSlPunHH39Meno6N954I61bt2bWrFkkJSVVdTapwzxdnbnj6hAA5m/QMgIiImY6nl3AjLPTbze0pH2TujH9dlalytKIESP45ptvSExM5OGHH+aTTz6hWbNmDB06lK+++oriYt3bS67cuF7NsFog6uBJYlOyzY4jIlInGYbBjG92cyqviMjGvky6oaXZkezuisbQAgMDeeKJJ9i5cyd/+9vfWL16NbfddhvBwcE899xz5OXlVVVOqYOaBngysF0QoNElERGzfLczmeV7zk6/daxT029nXdEnTk1N5Y033qBt27ZMmzaN2267jR9//JE5c+bw1VdfMWLEiCqKKXXVhD7hAHz1WyKncgtNTiMiUrekZefz3Lel02+TbmxJu+C6Nf12lnNldvrqq6+YN28eK1asoG3btjzyyCPcfffd+Pv7l72md+/eREZGVlVOqaOuDgugbWNf9iZn8dnmo/zp+hZmRxIRqRMMw+DZr3eTkVdE28a+/LkOTr+dVamRpQkTJhAcHExUVBTbt29n0qRJ5YoS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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "delayed_object.pull()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
04finishedNoneget_bulk_structure_f1e730ed97e30e5439e855d2ac41396f/get_bulk_structure_f1e730ed97e30e5439e855d2ac41396fNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:43:41.139368NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
15finishedNoneget_dict_bbed7e528d369f5fa02591748be3166d/get_dict_bbed7e528d369f5fa02591748be3166dNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:43:41.518318NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
26finishedNonecalculate_qe_a8254d13768b11f13ee9368124819d22/calculate_qe_a8254d13768b11f13ee9368124819d22None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:43:41.889294NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
37finishedNonegenerate_structures_3f6d1168b6bf78842f871ac2ac64785e/generate_structures_3f6d1168b6bf78842f871ac2ac64785eNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:00.853623NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
48finishedNoneget_dict_78147dcf9cf97bce89b29b9156be481e/get_dict_78147dcf9cf97bce89b29b9156be481eNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:01.221846NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
59finishedNonecalculate_qe_6a905eb237355b37736372ba371d1cd7/calculate_qe_6a905eb237355b37736372ba371d1cd7None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:01.618681NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
610finishedNoneget_dict_03156dccf3d708cfc4ea579c84410584/get_dict_03156dccf3d708cfc4ea579c84410584None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:05.671596NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
711finishedNonecalculate_qe_0d18bdb479313067edc04c18ad5e9350/calculate_qe_0d18bdb479313067edc04c18ad5e9350None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:06.074751NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
812finishedNoneget_dict_cb8acebdccdbf43c1274bc0f369e20d2/get_dict_cb8acebdccdbf43c1274bc0f369e20d2None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:10.316256NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
913finishedNonecalculate_qe_fd424c0e14c41f389a8a2f16aeed1727/calculate_qe_fd424c0e14c41f389a8a2f16aeed1727None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:10.699333NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1014finishedNoneget_dict_ffb00753416ab53a8c9996d34f96d94f/get_dict_ffb00753416ab53a8c9996d34f96d94fNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:15.056345NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1115finishedNonecalculate_qe_7d7624485601eea5e9b9025e8a169f3f/calculate_qe_7d7624485601eea5e9b9025e8a169f3fNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:15.452264NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1216finishedNoneget_dict_182ad0e25ad107a0be68d34a5da97797/get_dict_182ad0e25ad107a0be68d34a5da97797None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:20.443877NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1317finishedNonecalculate_qe_f58ce5cbc0e9ad20d31940dc6b3dab89/calculate_qe_f58ce5cbc0e9ad20d31940dc6b3dab89None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:20.872942NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1418finishedNoneget_list_f3b45e6d3522e7481032cd4c04ea8038/get_list_f3b45e6d3522e7481032cd4c04ea8038None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:26.032279NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1519finishedNoneget_list_5b2a5697807693999f4f7fd11cbc24e1/get_list_5b2a5697807693999f4f7fd11cbc24e1None/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:26.615405NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
1620finishedNoneplot_energy_volume_curve_c833d5a782334c26202e03241a80020b/plot_energy_volume_curve_c833d5a782334c26202e03241a80020bNone/home/wang_x3/repos/superstar54/python-workflow-definition/test/2025-04-01 10:44:27.049045NoneNonepyiron@mpc3088#1PythonFunctionContainerJob0.4NoneNone
\n", - "
" - ], - "text/plain": [ - " id status chemicalformula \\\n", - "0 4 finished None \n", - "1 5 finished None \n", - "2 6 finished None \n", - "3 7 finished None \n", - "4 8 finished None \n", - "5 9 finished None \n", - "6 10 finished None \n", - "7 11 finished None \n", - "8 12 finished None \n", - "9 13 finished None \n", - "10 14 finished None \n", - "11 15 finished None \n", - "12 16 finished None \n", - "13 17 finished None \n", - "14 18 finished None \n", - "15 19 finished None \n", - "16 20 finished None \n", - "\n", - " job \\\n", - "0 get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f \n", - "1 get_dict_bbed7e528d369f5fa02591748be3166d \n", - "2 calculate_qe_a8254d13768b11f13ee9368124819d22 \n", - "3 generate_structures_3f6d1168b6bf78842f871ac2ac64785e \n", - "4 get_dict_78147dcf9cf97bce89b29b9156be481e \n", - "5 calculate_qe_6a905eb237355b37736372ba371d1cd7 \n", - "6 get_dict_03156dccf3d708cfc4ea579c84410584 \n", - "7 calculate_qe_0d18bdb479313067edc04c18ad5e9350 \n", - "8 get_dict_cb8acebdccdbf43c1274bc0f369e20d2 \n", - "9 calculate_qe_fd424c0e14c41f389a8a2f16aeed1727 \n", - "10 get_dict_ffb00753416ab53a8c9996d34f96d94f \n", - "11 calculate_qe_7d7624485601eea5e9b9025e8a169f3f \n", - "12 get_dict_182ad0e25ad107a0be68d34a5da97797 \n", - "13 calculate_qe_f58ce5cbc0e9ad20d31940dc6b3dab89 \n", - "14 get_list_f3b45e6d3522e7481032cd4c04ea8038 \n", - "15 get_list_5b2a5697807693999f4f7fd11cbc24e1 \n", - "16 plot_energy_volume_curve_c833d5a782334c26202e03241a80020b \n", - "\n", - " subjob projectpath \\\n", - "0 /get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f None \n", - "1 /get_dict_bbed7e528d369f5fa02591748be3166d None \n", - "2 /calculate_qe_a8254d13768b11f13ee9368124819d22 None \n", - "3 /generate_structures_3f6d1168b6bf78842f871ac2ac64785e None \n", - "4 /get_dict_78147dcf9cf97bce89b29b9156be481e None \n", - "5 /calculate_qe_6a905eb237355b37736372ba371d1cd7 None \n", - "6 /get_dict_03156dccf3d708cfc4ea579c84410584 None \n", - "7 /calculate_qe_0d18bdb479313067edc04c18ad5e9350 None \n", - "8 /get_dict_cb8acebdccdbf43c1274bc0f369e20d2 None \n", - "9 /calculate_qe_fd424c0e14c41f389a8a2f16aeed1727 None \n", - "10 /get_dict_ffb00753416ab53a8c9996d34f96d94f None \n", - "11 /calculate_qe_7d7624485601eea5e9b9025e8a169f3f None \n", - "12 /get_dict_182ad0e25ad107a0be68d34a5da97797 None \n", - "13 /calculate_qe_f58ce5cbc0e9ad20d31940dc6b3dab89 None \n", - "14 /get_list_f3b45e6d3522e7481032cd4c04ea8038 None \n", - "15 /get_list_5b2a5697807693999f4f7fd11cbc24e1 None \n", - "16 /plot_energy_volume_curve_c833d5a782334c26202e03241a80020b None \n", - "\n", - " project \\\n", - "0 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "1 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "2 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "3 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "4 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "5 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "6 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "7 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "8 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "9 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "10 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "11 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "12 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "13 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "14 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "15 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "16 /home/wang_x3/repos/superstar54/python-workflow-definition/test/ \n", - "\n", - " timestart timestop totalcputime computer \\\n", - "0 2025-04-01 10:43:41.139368 None None pyiron@mpc3088#1 \n", - "1 2025-04-01 10:43:41.518318 None None pyiron@mpc3088#1 \n", - "2 2025-04-01 10:43:41.889294 None None pyiron@mpc3088#1 \n", - "3 2025-04-01 10:44:00.853623 None None pyiron@mpc3088#1 \n", - "4 2025-04-01 10:44:01.221846 None None pyiron@mpc3088#1 \n", - "5 2025-04-01 10:44:01.618681 None None pyiron@mpc3088#1 \n", - "6 2025-04-01 10:44:05.671596 None None pyiron@mpc3088#1 \n", - "7 2025-04-01 10:44:06.074751 None None pyiron@mpc3088#1 \n", - "8 2025-04-01 10:44:10.316256 None None pyiron@mpc3088#1 \n", - "9 2025-04-01 10:44:10.699333 None None pyiron@mpc3088#1 \n", - "10 2025-04-01 10:44:15.056345 None None pyiron@mpc3088#1 \n", - "11 2025-04-01 10:44:15.452264 None None pyiron@mpc3088#1 \n", - "12 2025-04-01 10:44:20.443877 None None pyiron@mpc3088#1 \n", - "13 2025-04-01 10:44:20.872942 None None pyiron@mpc3088#1 \n", - "14 2025-04-01 10:44:26.032279 None None pyiron@mpc3088#1 \n", - "15 2025-04-01 10:44:26.615405 None None pyiron@mpc3088#1 \n", - "16 2025-04-01 10:44:27.049045 None None pyiron@mpc3088#1 \n", - "\n", - " hamilton hamversion parentid masterid \n", - "0 PythonFunctionContainerJob 0.4 None None \n", - "1 PythonFunctionContainerJob 0.4 None None \n", - "2 PythonFunctionContainerJob 0.4 None None \n", - "3 PythonFunctionContainerJob 0.4 None None \n", - "4 PythonFunctionContainerJob 0.4 None None \n", - "5 PythonFunctionContainerJob 0.4 None None \n", - "6 PythonFunctionContainerJob 0.4 None None \n", - "7 PythonFunctionContainerJob 0.4 None None \n", - "8 PythonFunctionContainerJob 0.4 None None \n", - "9 PythonFunctionContainerJob 0.4 None None \n", - "10 PythonFunctionContainerJob 0.4 None None \n", - "11 PythonFunctionContainerJob 0.4 None None \n", - "12 PythonFunctionContainerJob 0.4 None None \n", - "13 PythonFunctionContainerJob 0.4 None None \n", - "14 PythonFunctionContainerJob 0.4 None None \n", - "15 PythonFunctionContainerJob 0.4 None None \n", - "16 PythonFunctionContainerJob 0.4 None None " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pr.job_table()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Python" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.purepython import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n", - "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n" - ] - } - ], - "source": [ - "load_workflow_json(file_name=\"workflow_qe.json\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Load Quantum Espresso Energy Volume Curve Workflow","metadata":{}},{"cell_type":"markdown","source":"## Plot","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.plot import plot","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"cell_type":"code","source":"plot(file_name='workflow_qe.json')","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\n0\n\nquantum_espresso_workflow.get_bulk_structure\n\n\n\n13\n\npython_workflow_definition.shared.get_dict\n\n\n\n0->13\n\n\nstructure\n\n\n\n1\n\nquantum_espresso_workflow.calculate_qe\n\n\n\n13->1\n\n\ninput_dict\n\n\n\n2\n\nquantum_espresso_workflow.generate_structures\n\n\n\n1->2\n\n\nstructure=structure\n\n\n\n20\n\npython_workflow_definition.shared.get_dict\n\n\n\n2->20\n\n\ns_0=structure\n\n\n\n23\n\npython_workflow_definition.shared.get_dict\n\n\n\n2->23\n\n\ns_1=structure\n\n\n\n25\n\npython_workflow_definition.shared.get_dict\n\n\n\n2->25\n\n\ns_2=structure\n\n\n\n27\n\npython_workflow_definition.shared.get_dict\n\n\n\n2->27\n\n\ns_3=structure\n\n\n\n29\n\npython_workflow_definition.shared.get_dict\n\n\n\n2->29\n\n\ns_4=structure\n\n\n\n3\n\nquantum_espresso_workflow.calculate_qe\n\n\n\n20->3\n\n\ninput_dict\n\n\n\n4\n\nquantum_espresso_workflow.calculate_qe\n\n\n\n23->4\n\n\ninput_dict\n\n\n\n5\n\nquantum_espresso_workflow.calculate_qe\n\n\n\n25->5\n\n\ninput_dict\n\n\n\n6\n\nquantum_espresso_workflow.calculate_qe\n\n\n\n27->6\n\n\ninput_dict\n\n\n\n7\n\nquantum_espresso_workflow.calculate_qe\n\n\n\n29->7\n\n\ninput_dict\n\n\n\n30\n\npython_workflow_definition.shared.get_list\n\n\n\n3->30\n\n\nvolume=0\n\n\n\n31\n\npython_workflow_definition.shared.get_list\n\n\n\n3->31\n\n\nenergy=0\n\n\n\n8\n\nquantum_espresso_workflow.plot_energy_volume_curve\n\n\n\n30->8\n\n\nvolume_lst\n\n\n\n31->8\n\n\nenergy_lst\n\n\n\n4->30\n\n\nvolume=1\n\n\n\n4->31\n\n\nenergy=1\n\n\n\n5->30\n\n\nvolume=2\n\n\n\n5->31\n\n\nenergy=2\n\n\n\n6->30\n\n\nvolume=3\n\n\n\n6->31\n\n\nenergy=3\n\n\n\n7->30\n\n\nvolume=4\n\n\n\n7->31\n\n\nenergy=4\n\n\n\n9\n\nAl\n\n\n\n9->0\n\n\nelement\n\n\n\n10\n\n4.05\n\n\n\n10->0\n\n\na\n\n\n\n11\n\nTrue\n\n\n\n11->0\n\n\ncubic\n\n\n\n12\n\nmini\n\n\n\n12->1\n\n\nworking_directory\n\n\n\n14\n\n{'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n\n\n\n14->13\n\n\npseudopotentials\n\n\n\n14->20\n\n\npseudopotentials\n\n\n\n14->23\n\n\npseudopotentials\n\n\n\n14->25\n\n\npseudopotentials\n\n\n\n14->27\n\n\npseudopotentials\n\n\n\n14->29\n\n\npseudopotentials\n\n\n\n15\n\n[3, 3, 3]\n\n\n\n15->13\n\n\nkpts\n\n\n\n15->20\n\n\nkpts\n\n\n\n15->23\n\n\nkpts\n\n\n\n15->25\n\n\nkpts\n\n\n\n15->27\n\n\nkpts\n\n\n\n15->29\n\n\nkpts\n\n\n\n16\n\nvc-relax\n\n\n\n16->13\n\n\ncalculation\n\n\n\n17\n\n0.02\n\n\n\n17->13\n\n\nsmearing\n\n\n\n17->20\n\n\nsmearing\n\n\n\n17->23\n\n\nsmearing\n\n\n\n17->25\n\n\nsmearing\n\n\n\n17->27\n\n\nsmearing\n\n\n\n17->29\n\n\nsmearing\n\n\n\n18\n\n[0.9, 0.95, 1.0, 1.05, 1.1]\n\n\n\n18->2\n\n\nstrain_lst\n\n\n\n19\n\nstrain_0\n\n\n\n19->3\n\n\nworking_directory\n\n\n\n21\n\nscf\n\n\n\n21->20\n\n\ncalculation\n\n\n\n21->23\n\n\ncalculation\n\n\n\n21->25\n\n\ncalculation\n\n\n\n21->27\n\n\ncalculation\n\n\n\n21->29\n\n\ncalculation\n\n\n\n22\n\nstrain_1\n\n\n\n22->4\n\n\nworking_directory\n\n\n\n24\n\nstrain_2\n\n\n\n24->5\n\n\nworking_directory\n\n\n\n26\n\nstrain_3\n\n\n\n26->6\n\n\nworking_directory\n\n\n\n28\n\nstrain_4\n\n\n\n28->7\n\n\nworking_directory\n\n\n"},"metadata":{}}],"execution_count":2},{"cell_type":"markdown","source":"## Aiida ","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json\nfrom aiida import load_profile\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":3},{"cell_type":"code","source":"wg = load_workflow_json(file_name='workflow_qe.json')","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"cell_type":"code","source":"wg","metadata":{"trusted":true},"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"dbcd832cec8a410f9b4c3a65e1d14b7a"}},"metadata":{}}],"execution_count":5},{"cell_type":"code","source":"wg.run()\n","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 04:10:39 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure1\n04/12/2025 04:10:40 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_bulk_structure1, type: PyFunction, finished.\n04/12/2025 04:10:40 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10\n04/12/2025 04:10:40 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.\n04/12/2025 04:10:40 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe2\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01227] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:11:35 PM <1152> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])\n04/12/2025 04:11:35 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: calculate_qe2, type: PyFunction, finished.\n04/12/2025 04:11:36 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures3\n04/12/2025 04:11:37 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: generate_structures3, type: PyFunction, finished.\n04/12/2025 04:11:37 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict11,get_dict12,get_dict13,get_dict14,get_dict15\n04/12/2025 04:11:38 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_dict11, type: PyFunction, finished.\n04/12/2025 04:11:38 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe4,get_dict12,get_dict13,get_dict14,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01247] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:11:51 PM <1152> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:11:51 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: calculate_qe4, type: PyFunction, finished.\n04/12/2025 04:11:51 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict13,get_dict14,get_dict15\n04/12/2025 04:11:52 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.\n04/12/2025 04:11:52 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe5,get_dict13,get_dict14,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01259] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:12:05 PM <1152> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:12:05 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: calculate_qe5, type: PyFunction, finished.\n04/12/2025 04:12:05 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict13,get_dict14,get_dict15\n04/12/2025 04:12:06 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_dict13, type: PyFunction, finished.\n04/12/2025 04:12:06 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6,get_dict14,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01270] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:12:19 PM <1152> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:12:19 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.\n04/12/2025 04:12:19 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict15\n04/12/2025 04:12:20 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.\n04/12/2025 04:12:20 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe7,get_dict15\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01281] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:12:34 PM <1152> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:12:34 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: calculate_qe7, type: PyFunction, finished.\n04/12/2025 04:12:34 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict15\n04/12/2025 04:12:35 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_dict15, type: PyFunction, finished.\n04/12/2025 04:12:35 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe8\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01293] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n04/12/2025 04:12:52 PM <1152> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])\n04/12/2025 04:12:52 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: calculate_qe8, type: PyFunction, finished.\n04/12/2025 04:12:53 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list16,get_list17\n04/12/2025 04:12:53 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_list16, type: PyFunction, finished.\n04/12/2025 04:12:53 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17\n04/12/2025 04:12:54 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.\n04/12/2025 04:12:54 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve9\n04/12/2025 04:12:55 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve9, type: PyFunction, finished.\n04/12/2025 04:12:55 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 04:12:55 PM <1152> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [202|WorkGraphEngine|finalize]: Finalize workgraph.\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXuY2bHERERaZBUluowbw9XbugZDMCcVftMTiMiItIwqSzVcbf3CwNgWcJhko/mmhtGRESkAVJZquPa+DVmYAc/DAPmrk42O46IiEiDo7LkACZd1hqABRsPkZNfZHIaERGRhkVlyQFc0c6XS/y8OFlQzIKNh8yOIyIi0qCoLDkAi8XCxNPnLn28OhmbTcsIiIiI2IvKkoO4rkcwTTxcSD6Wx/KEw2bHERERaTBUlhyEl7sLN10aAuhEbxEREXtSWXIgE6LCcLLA70lHScrIMTuOiIhIg6Cy5EBCmnkyKCIAgDkaXRIREbELlSUHU7aMwMJNh8jMKzQ5jYiISP2nsuRg+rZpRnhgE/KLbHy1/qDZcUREROo9lSUHY7FYuOP06NIna/ZTXGIzOZGIiEj9prLkgEZ3C6KppyspmadYsjPD7DgiIiL1msqSA/JwdeaWPq0AmLMq2dwwIiIi9ZzKkoOK7huGi5OFdcnH2Z6SZXYcERGRektlyUEFWj0Y3rkFoEUqRUREapPKkgMru1/c4rhUjp4sMDeMiIhIPaWy5MB6tPKha7CVwhIbX6w9YHYcERGRekllyYFZLJbyRSo/i91PYbGWERAREalpKksO7prOLfBr4s7hnAJ+2p5mdhwREZF6R2XJwbm5OHFbn1AAPtIyAiIiIjVOZakeuKVPK9ycndhyMJPNB06YHUdERKReUVmqB/yauDOqaxCgRSpFRERqmspSPTHpsjAAftyWRnpWvrlhRERE6hGVpXqiU0srl4Y1pdhm8FnsfrPjiIiI1BsqS/VI2TICX6w7QH5RiclpRERE6geVpXpkSGQALX0acTy3kMVbUs2OIyIiUi+oLNUjLs5OREeVLiMwZ1UyhmGYnEhERMTxqSzVMzddGoKHqxPxadms3Xfc7DgiIiIOT2WpnvHxdGNs92AA5moZARERkYumslQPlS0j8MvOdA4ezzM3jIiIiINTWaqH2gc0oX9bX2wGfKplBERERC6KylI9NbFfGADz1h0gr7DY3DAiIiIOTGWpnroq3J/Q5p5k5xezcFOK2XFEREQclspSPeXkZOH2qDAA5q7WMgIiIiLVpbJUj43rFYyXmzO7D5/k96SjZscRERFxSCpL9VgTD1fG9QoBYM6qfSanERERcUwqS/Xc7f3CsFhgecIR9h3NNTuOiIiIw1FZquda+3pxZQd/AD5enWxuGBEREQekstQAlC0jMH/DQbLzi8wNIyIi4mBUlhqAy9v50ta/MbmFJczfcMjsOCIiIg5FZakBsFgs5aNLH69OpsSmZQRERETOl8pSA3Fdj5Z4e7hw4Hgey3cdNjuOiIiIw1BZaiA83Vy4qXcrAOas1jICIiIi50tlqQGZEBWKkwVW7T5GYkaO2XFEREQcgsOUpRMnThAdHY3VasVqtRIdHU1mZmaV+5w8eZIpU6YQHBxMo0aNiIiI4N133z1juzVr1nDVVVfh5eWFj48PAwcO5NSpU7X0TswT3NSTIZGBAMxZlWxuGBEREQfhMGXplltuIS4ujpiYGGJiYoiLiyM6OrrKfaZOnUpMTAyfffYZ8fHxTJ06lXvvvZdvv/22fJs1a9YwbNgwhgwZwrp161i/fj1TpkzByclhDs0FmXRZGACLNh8iM6/Q3DAiIiIOwGI4wB1W4+PjiYyMJDY2lj59+gAQGxtLVFQUu3btokOHDpXu16lTJ8aPH8+TTz5Z/lzPnj255pprePbZZwHo27cvgwcPLv+6OrKzs7FarWRlZeHt7V3t17EHwzC45s2VxKdl8+iwcP468BKzI4mIiJjifP9+O8TwyZo1a7BareVFCUpLjtVqZfXq1Wfdr3///ixevJiUlBQMw2D58uUkJiYydOhQAA4fPszatWvx9/enX79+BAQEMGDAAFauXFnr78ksFoulfHTp0zXJFJfYzA0kIiJSxzlEWUpPT8ff3/+M5/39/UlPTz/rfm+++SaRkZEEBwfj5ubGsGHDeOedd+jfvz8Ae/fuBWDGjBlMnjyZmJgYevTowdVXX01SUtJZX7egoIDs7OwKD0cyumsQzb3cSM3K55edGWbHERERqdNMLUszZszAYrFU+diwYQNQOiLyZ4ZhVPp8mTfffJPY2FgWL17Mxo0befXVV/nb3/7G0qVLAbDZSkdV7r77biZNmkT37t15/fXX6dChAx999NFZX3fmzJnlJ5pbrVZCQkIu5jDYnYerM7f0Ob2MwCotIyAiIlIVFzN/+JQpU7jpppuq3CYsLIytW7eSkXHmCMiRI0cICAiodL9Tp07x+OOPs2jRIkaMGAFAly5diIuL45VXXmHQoEG0aNECgMjIyAr7RkREcODAgbNmmj59Og8++GD519nZ2Q5XmG7rG8q7K/awPvkE21Oy6NTSanYkERGROsnUsuTr64uvr+85t4uKiiIrK4t169bRu3dvANauXUtWVhb9+vWrdJ+ioiKKiorOuKrN2dm5fEQpLCyMoKAgEhISKmyTmJjI8OHDz5rH3d0dd3f3c+auywK8PbimcwsWb0llzqpkXr2xq9mRRERE6iSHOGcpIiKCYcOGMXnyZGJjY4mNjWXy5MmMHDmywpVw4eHhLFq0CABvb28GDBjAtGnTWLFiBfv27WPu3Ll88sknjB07Fiid2ps2bRpvvvkmCxYsYPfu3Tz55JPs2rWLO++805T3ak9lJ3p/tyWVIzkF5oYRERGpo0wdWboQn3/+Offddx9DhgwBYPTo0cyePbvCNgkJCWRlZZV/PW/ePKZPn86tt97K8ePHCQ0N5fnnn+eee+4p3+aBBx4gPz+fqVOncvz4cbp27cqSJUu45JL6f0l991ZN6RbiQ9zBTL5Ye4D7B7UzO5KIiEid4xDrLNV1jrTO0p99G5fC/fPi8GvizqpHr8LNxSEGG0VERC5avVpnSWrP8E4t8G/izpGcAn7clmZ2HBERkTpHZamBc3NxIrpvKFC6jIAGGkVERCpSWRJu6dMKNxcnthzKYtOBTLPjiIiI1CkqS0Lzxu6M7hoEaJFKERGRP1NZEuB/ywj8tD2dtKxT5oYRERGpQ1SWBICOQVZ6t25Gic3gs9j9ZscRERGpM1SWpNwdp0eXvlh7gPyiEnPDiIiI1BEqS1JuUEQALX0acSKviG/jUsyOIyIiUieoLEk5F2cnJkSVLSOQrGUEREREUFmSP7np0lY0cnVmV3oOsXuPmx1HRETEdCpLUoHV05XrerQEtIyAiIgIqCxJJSb2CwNgaXwGB4/nmRtGRETEZCpLcoZ2AU24vJ0vNgM+WZNsdhwRERFTqSxJpcoWqZy3/iC5BcXmhhERETGRypJUamB7f8Kae5KTX8zCTYfMjiMiImIalSWplJOThdtPn7s0d3UyNpuWERARkYZJZUnO6oaewTR2d2HPkVx+333U7DgiIiKmUFmSs2ri4cq4XsGAlhEQEZGGS2VJqnR7VBgWC6xIOMKeIyfNjiMiImJ3KktSpTBfL67q4A/AJ6uTzQ0jIiJiApUlOadJl7UGYMHGQ2TnF5mcRkRExL5UluScLmvbnHb+jcktLOE/6w+aHUdERMSuVJbknCwWCxNPL1L58ZpkSrSMgIiINCAqS3JerusejLWRKwePn2LZrsNmxxEREbEblSU5L43cnLmpdwigZQRERKRhUVmS8zYhKgwnC6zec4xd6dlmxxEREbELlSU5by19GjG0YyAAc1clmxtGRETETlSW5IKULSOwaHMKJ3ILTU4jIiJS+1SW5IJcGtaUjkHeFBTb+HL9AbPjiIiI1DqVJbkgFoulfHTp0zX7KSqxmZxIRESkdqksyQUb2aUFzb3cSMvK5+cd6WbHERERqVUqS3LBPFydubVPK0AneouISP2nsiTVclvfUFydLWzYf4Jth7LMjiMiIlJrVJakWvy9PRjRuQWgRSpFRKR+U1mSapt4+kTv77amcjgn3+Q0IiIitUNlSaqtW4gP3Vv5UFRi8MVaLSMgIiL1k8qSXJSyZQQ+iz1AQXGJyWlERERqnsqSXJThnQIJ8Hbn6MkCftiaZnYcERGRGqeyJBfF1dmJ6L6hAMxZlYxhGCYnEhERqVkqS3LRbu7dCjcXJ7alZLHpwAmz44iIiNQolSW5aM0buzOmWxAAH2mRShERqWdUlqRGTOxXeqJ3zPZ0UjNPmZxGRESk5qgsSY2IDPKmT+tmlNgMPovdb3YcERGRGqOyJDWmbBmBL9cdIL9IywiIiMjFO3g8jzmr9mGzmXcBkcqS1JjBkQEEN23EibwivtmcYnYcERFxcDabwbQFW/jHdzt54cd403KoLEmNcXaycHtUGKBlBERE5OJ9tnY/sXuP08jVmeioUNNyqCxJjbqxVwiNXJ1JyMhhzd5jZscREREHdeBYHjN/3AXAY8PDCW3uZVoWlSWpUVZPV67v2RIoHV0SERG5UDabwcMLtnCqqIS+bZqVL35sFpUlqXFlywgsjc/gwLE8k9OIiIij+WRNMuv2HcfTzZmXru+Kk5PF1DwqS1Lj2vo35or2fhgGfLwm2ew4IiLiQJKP5jIrpnT6bfrwcFo19zQ5kcqS1JJJ/cIA+M/6g+QWFJsbRkREHILNZvDIgq3kF9mIatOcW/uYO/1WRmVJasWA9n608fUip6CYrzcdMjuOiIg4gLmrk1mXfBwvN2deuqGL6dNvZVSWpFY4OVm4/fTo0txVyaYuJiYiInXfvqO5vPTz6em3ayIIaWb+9FsZlSWpNdf3DKaJuwt7j+byW9IRs+OIiEgdVWIzmDZ/C/lFNvq39eXWPq3MjlSBypLUmsbuLozrFQKUji6JiIhUZs6qfWzYf4LG7i7Mur4zFkvdmH4ro7IktWpivzAsFvgt8Qi7D580O46IiNQxe46c5OWfEwB4/JoIgpvWnem3MipLUqtaNffk6vAAAD5enWxuGBERqVPKpt8Kim1c3s6Xm3uHmB2pUipLUusmXRYGwNebDpF1qsjcMCIiUmd8tHIfmw5knp5+61Lnpt/KqCxJret3SXM6BDQhr7CE+RsOmh1HRETqgN2HT/LyL6XTb0+MiKClTyOTE52dypLUOovFwsTTo0tzVydTomUEREQatBKbwcPzt1BYbOOK9n6Mv7RuTr+VUVkSuxjTrSU+nq4cOnGKpfEZZscRERETffD7XuIOZtLE3YUX6+DVb3+msiR20cjNmZsuLV03Q8sIiIg0XLsP5/DakkQAnhwVSQtr3Z1+K6OyJHYzISoUZycLa/YeIz4t2+w4IiJiZ8UlNh6av5XCYhtXdvBjXM9gsyOdF4cpSydOnCA6Ohqr1YrVaiU6OprMzMwq9zl58iRTpkwhODiYRo0aERERwbvvvlthm/T0dKKjowkMDMTLy4sePXqwYMGCWnwnDVeQTyOGdQwENLokItIQ/ev3vWw5mEkTDxdmXld3r377M4cpS7fccgtxcXHExMQQExNDXFwc0dHRVe4zdepUYmJi+Oyzz4iPj2fq1Knce++9fPvtt+XbREdHk5CQwOLFi9m2bRvXXXcd48ePZ/PmzbX9lhqksmUEvolL4XhuoblhRETEbhIzcnhjSRIAT4/qSKDVw+RE588hylJ8fDwxMTH8+9//JioqiqioKD744AO+//57EhISzrrfmjVruP322xk4cCBhYWH85S9/oWvXrmzYsKHCNvfeey+9e/emTZs2PPHEE/j4+LBp0yZ7vLUGp2doUzq19Kag2MaX6w6YHUdEROyguMRWevVbiY2rwv25vkdLsyNdEIcoS2vWrMFqtdKnT5/y5/r27YvVamX16tVn3a9///4sXryYlJQUDMNg+fLlJCYmMnTo0ArbfPXVVxw/fhybzca8efMoKChg4MCBtfmWGiyLxcKkfq0B+HTNfopKbCYnEhGR2vb+f/ey9VAW3h4uzLyu7l/99mcOUZbS09Px9/c/43l/f3/S09PPut+bb75JZGQkwcHBuLm5MWzYMN555x369+9fvs1XX31FcXExzZs3x93dnbvvvptFixZxySWXnPV1CwoKyM7OrvCQ8zeyawt8G7uTnp1PzPaz//cTERHHtys9mzeWll79NmN0RwK8HWf6rYypZWnGjBlYLJYqH2VTZpW1UMMwqmynb775JrGxsSxevJiNGzfy6quv8re//Y2lS5eWb/PEE09w4sQJli5dyoYNG3jwwQcZN24c27ZtO+vrzpw5s/xEc6vVSkhI3V5Mq65xd3Hm1j6lywjMWbXP5DQiIlJbik5PvxWVGAyK8Gdsd8eafitjMQzDtOWUjx49ytGjR6vcJiwsjC+++IIHH3zwjKvffHx8eP3115k0adIZ+506dQqr1cqiRYsYMWJE+fN33XUXhw4dIiYmhj179tC2bVu2b99Ox44dy7cZNGgQbdu25b333qs0U0FBAQUFBeVfZ2dnExISQlZWFt7e3ufz1hu8wzn5XDZrGUUlBt/+/TK6hviYHUlERGrYW78m8eqSRKyNXFky9Qr869ioUnZ2Nlar9Zx/v13smOkMvr6++Pr6nnO7qKgosrKyWLduHb179wZg7dq1ZGVl0a9fv0r3KSoqoqioCCenioNnzs7O2Gyl58nk5eUBVLlNZdzd3XF3dz9nbjk7/yYejOwSxKLNKcxdnczr47uZHUlERGpQfFo2by4rvfrtH6M71rmidCEc4pyliIgIhg0bxuTJk4mNjSU2NpbJkyczcuRIOnToUL5deHg4ixYtAsDb25sBAwYwbdo0VqxYwb59+5g7dy6ffPIJY8eOLd++bdu23H333axbt449e/bw6quvsmTJEsaMGWPGW21QypYR+H5rKoez880NIyIiNeaP02+DIwO4tluQ2ZEuikOUJYDPP/+czp07M2TIEIYMGUKXLl349NNPK2yTkJBAVlZW+dfz5s3j0ksv5dZbbyUyMpJZs2bx/PPPc8899wDg6urKjz/+iJ+fH6NGjaJLly588sknfPzxx1xzzTV2fX8NUZdgH3qGNqWoxOCztVpGQESkvnhn+R52pGbj4+nK82M7OdzVb39m6jlL9cX5znnKmb7bksq9X27Gt7Ebqx67CncXZ7MjiYjIRdiRmsW1s1dRbDP4503duLZb3T2p+3z/fjvMyJLUT8M6BRLo7cHRk4V8vyXN7DgiInIRCottPDx/K8U2g6EdAxjd1bGn38qoLImpXJ2diI4KBWDO6n1ooFNExHG9vXw38WnZNPV05bkxjrf45NmoLInpbu7dCncXJ7anZLNh/wmz44iISDVsT8ni7eW7AXjm2k74Nak/V42rLInpmnm5Meb0nPbcVcnmhhERkQtWOv22hWKbwfBOgYzs0sLsSDVKZUnqhEn9wwCI2ZFOauYpc8OIiMgFmb0siV3pOTTzcuPZMY5/9dufqSxJnRAe6E1Um+aU2Aw+WbPf7DgiInKeth3K4u0VewB49tpO+DauP9NvZVSWpM4oW6Tyy3UHOFVYYm4YERE5p4LiEh6ev4USm8GILi0YUc+m38qoLEmdcXVEACHNGpF1qohv4lLMjiMiIufw1q+7ScjIobmXG8+M7njuHRyUypLUGc5OFm6PCgNgziotIyAiUpdtPZTJu7+VTr89N6YTzevh9FsZlSWpU8b1CsHTzZnEjJOs3nPM7DgiIlKJP06/jeoaxPDO9XP6rYzKktQp1kau3NAzGIA5WkZARKRO+ufSJBIzTuLb2I1/1OPptzIqS1Ln3N4vDIBfd2Ww/1iuuWFERKSCuIOZvFc+/daZZl5uJieqfSpLUudc4teYAe39MAz4eLWWERARqSvyi0qn32wGXNstiGGdAs2OZBfVKku5ufrXvtSusmUE5m84yMmCYnPDiIgIAK8vTWT34ZP4NnZnxqj6P/1WplplKSAggDvuuIOVK1fWdB4RAK5o50cbXy9yCor5euMhs+OIiDR4mw6c4IP/7gXghbGdaNoApt/KVKssffnll2RlZXH11VfTvn17Zs2aRWpqak1nkwbMycnCxNOjS3NXJ2OzaRkBERGz5BeVMO309NvY7i0Z0rFhTL+VqVZZGjVqFF9//TWpqan89a9/5csvvyQ0NJSRI0eycOFCios1bSIX7/oewTTxcGHf0Vx+SzxidhwRkQbrtSWJ7DmSi18Td54eFWl2HLu7qBO8mzdvztSpU9myZQuvvfYaS5cu5YYbbiAoKIinnnqKvLy8msopDZCXuwvje4UA8NGqfSanERFpmDbuP8EHv5dOv80c2xkfz4Yz/VbmospSeno6L730EhERETz22GPccMMN/Prrr7z++ussWrSIMWPG1FBMaagmRIVhscDvSUfZfTjH7DgiIg1K2fSbYcB1PVoyKDLA7EimcKnOTgsXLmTOnDn8/PPPREZG8ve//53bbrsNHx+f8m26detG9+7dayqnNFCtmnsyKCKAJTszmLs6mefGdDY7kohIg/HKzwnsPZpLgLc7T49sOFe//Vm1RpYmTZpEUFAQq1atIi4ujilTplQoSgBt2rTh//7v/2oiozRwZcsIfL0xhay8InPDiIg0EBuSj/Ph6VMgZl7XGaunq8mJzFOtkaW0tDQ8PT2r3KZRo0Y8/fTT1Qol8kdRbZoTHtiEXek5fLXhAH+54hKzI4mI1GunCksXnzQMuKFnMFeFN8zptzLVGlkqLi4mOzv7jEdOTg6FhYU1nVEaOIvFwsTTt0D5ePV+SrSMgIhIrXr55wSSj+UR6O3BkyMb3tVvf1atsuTj40PTpk3PePj4+NCoUSNCQ0N5+umnsdlsNZ1XGqgx3VvS1NOVlMxTLNmZYXYcEZF6a92+48xZfXr67frOWBs13Om3MtUqS3PnziUoKIjHH3+cb775hkWLFvH444/TsmVL3n33Xf7yl7/w5ptvMmvWrJrOKw2Uh6szN/duBcAcLSMgIlIr8gqLmbagdPrtxl7BXNnB3+xIdUK1zln6+OOPefXVV7nxxhvLnxs9ejSdO3fm/fff59dff6VVq1Y8//zzPP744zUWVhq26KhQ3v/vXtbuO86O1Cw6BlnNjiQiUq+8FJPA/mN5tLB68ISm38pVa2RpzZo1lS4L0L17d9asWQNA//79OXDgwMWlE/mDFtZG5Xe4/nh1srlhRETqmdi9x5h7+rN11vVd8PbQ9FuZapWl4OBgPvzwwzOe//DDDwkJKV1x+dixYzRt2vTi0on8yR2nlxH4Ji6VYycLzA0jIlJP5BUW88iCrQDcdGkIA9r7mZyobqnWNNwrr7zCuHHj+Omnn7j00kuxWCysX7+eXbt2sWDBAgDWr1/P+PHjazSsSI9WTekSbGXroSy+XHeAKVe1MzuSiIjDe/GnXRw4nkeQ1YP/GxFhdpw6x2IYRrWuw96/fz/vvfceCQkJGIZBeHg4d999N2FhYTUcse7Lzs7GarWSlZWFt7e32XHqvUWbDzH1qy0EeLuz8tGrcHW+qLv2iIg0aKv3HOWWD9YC8Omdvbm8XcMZVTrfv98XPLJUVFTEkCFDeP/995k5c+ZFhRSpjms6t+D5H3aRkV3AT9vTGd01yOxIIiIOKbfgf9Nvt/Rp1aCK0oW44H+Su7q6sn37diwWS23kETkndxdnbuurZQRERC7WrJ92cejEKVr6NOLxazT9djbVmr+YMGFCpSd4i9jLrX1CcXN2YvOBTOIOZpodR0TE4azefZRPY/cD8NINXWjsXq3TmBuEah2ZwsJC/v3vf7NkyRJ69eqFl5dXhe+/9tprNRJO5Gz8mrgzsmsLFm5KYe6qfbxx05lLWYiISOVOFhQz7fT02219W3FZW1+TE9Vt1SpL27dvp0ePHgAkJiZW+J6m58ReJvVrzcJNKfywLY3Hr4nA39vD7EgiIg5h5o/xpGSeIrhpI6YP1/TbuVSrLC1fvrymc4hcsM7BVnqFNmXD/hN8FrufB4d0MDuSiEidtzLpKJ+vLV00+qUbuuCl6bdzuqhrrnfv3s3PP//MqVOnAKjmKgQi1TbpstYAfL72APlFJSanERGp23Lyi3j069LptwlRofS7RNNv56NaZenYsWNcffXVtG/fnmuuuYa0tDQA7rrrLh566KEaDShSlaEdA2hh9eBYbiHfb00zO46ISJ32wunpt5BmjXh0WLjZcRxGtcrS1KlTcXV15cCBA3h6epY/P378eGJiYmosnMi5uDg7ER0VCpQuI6DRTRGRyv038QhfrjsIwMs3dNX02wWoVln65ZdfePHFFwkODq7wfLt27di/f3+NBBM5Xzdf2goPVyd2pGazPvmE2XFEROqc7PwiHjs9/TaxXxh92zQ3OZFjqVZZys3NrTCiVObo0aO4u7tfdCiRC9HUy42x3VsCWqRSRKQyz38fT2pWPqHNPXlkmC6GuVDVKktXXHEFn3zySfnXFosFm83Gyy+/zJVXXllj4UTO18R+pSd6/7wjnZTMUyanERGpO1YkHOarDQexWEqn3zzdNP12oap1xF5++WUGDhzIhg0bKCws5JFHHmHHjh0cP36cVatW1XRGkXPqENiEfpc0Z/WeY3yyJlnrhoiIAFmninjs621A6fRb79bNTE7kmKo1shQZGcnWrVvp3bs3gwcPJjc3l+uuu47NmzdzySWX1HRGkfNStozAvHUHySssNjmNiIj5nvt+J+nZ+YQ19+SRobr6rbqqPRYXGBjIP/7xj5rMInJRrgr3p1UzTw4cz2PR5hRu7RNqdiQREdMs33WY+RsPlU6/jetKIzdnsyM5rGqXpczMTNatW8fhw4ex2WwVvjdhwoSLDiZyoZydLEyICuW5H+KZuyqZW3q30u13RKRBysor4rGFpVe/3XFZay4N0/TbxahWWfruu++49dZbyc3NpUmTJhX+IFksFpUlMc2Nl4bw+pJEkg6fZNXuY/Rvp9VpRaTheeb7nWRkF9Da14uHdSuoi1atc5Yeeugh7rjjDnJycsjMzOTEiRPlj+PHj9d0RpHz5u3hyg09S9f/0jICItIQ/RqfwdebSqffXhnXRdNvNaBaZSklJYX77ruv0rWWRMx2e78wAJYlHCb5aK65YURE7Cgrr4jpC0uvfrurf2t6hmr6rSZUqywNHTqUDRs21HQWkRrRxq8xAzv4YRjw8Zpks+OIiNjNP77bweGcAtr4efGQpt9qTLXOWRoxYgTTpk1j586ddO7cGVdX1wrfHz16dI2EE6muSZe1ZkXCEeZvOMSDg9vTxMP13DuJiDiwJTszWLg5BScLvDKuKx6umn6rKdUqS5MnTwbgmWeeOeN7FouFkpKSi0slcpGuaOfLJX5e7DmSy4KNh8rXYBIRqY8y8wp5fFHp9Nvky9vQo1VTkxPVL9WahrPZbGd9qChJXWCxWJh4uiB9vDoZm80wOZGISO2ZsXgHR3IKuMTPi6mD25sdp965oLJ0zTXXkJWVVf71888/T2ZmZvnXx44dIzIyssbCiVyM67q3pImHC8nH8liReNjsOCIiteLnHel8E5eKkwVevbGbpt9qwQWVpZ9//pmCgoLyr1988cUKSwUUFxeTkJBQc+lELoKXuws3XRoCwJxVyeaGERGpBSdyC/m/RdsB+MsVl9AtxMfcQPXUBZUlwzCq/FqkrpkQFYaTBX5POkpSRo7ZcUREatTTi3dw9GQB7fwb88CgdmbHqbeqdc6SiKMIaebJ4MgAAOauTjY3jIhIDYrZnsbiLak4O1l09Vstu6CyZLFYzrjXlu69JXXdxH6lJ3ov3JRCVl6RyWlERC7e8dxCnvimdPrtngFt6Krpt1p1QUsHGIbBxIkTcXd3ByA/P5977rkHLy8vgArnM4nUFX3bNCM8sAm70nOYt/4Adw+4xOxIIiIX5alvt3P0ZCEdAppw39WafqttFzSydPvtt+Pv74/VasVqtXLbbbcRFBRU/rW/v79uoit1jsVi4Y7Tywh8smY/xSU2kxOJiFTfj9vS+H5rWvn0m7uLpt9q2wWNLM2ZM6e2cojUqtHdgpgVs4uUzFMsjc9gWKcWZkcSEblgx04W8OTp6be/DbyEzsFWkxM1DDrBWxoED1dnbu5duozAR1pGQEQc1FPf7uBYbiHhgU249ypNv9mLypI0GNF9w3BxsrBu33F2pGadewcRkTrk+62p/LDtf9Nvbi76E24vDnOkT5w4QXR0dPn5UdHR0RVWD69MRkYGEydOJCgoCE9PT4YNG0ZSUlKFbQoKCrj33nvx9fXFy8uL0aNHc+jQoVp8J2KWQKsHwzuXTr9pkUoRcSRHcv43/fb3K9vSqaWm3+zJYcrSLbfcQlxcHDExMcTExBAXF0d0dPRZtzcMgzFjxrB3716+/fZbNm/eTGhoKIMGDSI3N7d8uwceeIBFixYxb948Vq5cycmTJxk5cqTucVdPTbosDIDFcakcPamrN0Wk7jMMgye/2c6JvCIiWngz5cq2ZkdqcCyGAyzDHR8fT2RkJLGxsfTp0weA2NhYoqKi2LVrFx06dDhjn8TERDp06MD27dvp2LEjACUlJfj7+/Piiy9y1113kZWVhZ+fH59++injx48HIDU1lZCQEH788UeGDh16Xvmys7OxWq1kZWXh7e1dQ+9aaoNhGIx5exVbDmXx0OD23KtLbkWkjlu8JZX7vtyMi5OFb6dcRscgjSrVlPP9++0QI0tr1qzBarWWFyWAvn37YrVaWb16daX7lK355OHhUf6cs7Mzbm5urFy5EoCNGzdSVFTEkCFDyrcJCgqiU6dOZ31dcWwWi4VJp5cR+DR2P4XFWkZAROquwzn5PPVt6fTblKvaqiiZxCHKUnp6Ov7+/mc87+/vT3p6eqX7hIeHExoayvTp0zlx4gSFhYXMmjWL9PR00tLSyl/Xzc2Npk2bVtg3ICDgrK8LpUUsOzu7wkMcxzWdW+DfxJ3DOQX8tD3N7DgiIpUyDIMnFm0nM6+IyBbe/F3Tb6YxtSzNmDGj/BYqZ3ts2LABqPy2KoZhnPV2K66urnz99dckJibSrFkzPD09WbFiBcOHD8fZueoFvKp6XYCZM2eWn2hutVoJCQm5gHctZnNzceK2vqGATvQWkbpr8ZZUftmZgatz6dVvrs4OMb5RL13QopQ1bcqUKdx0001VbhMWFsbWrVvJyMg443tHjhwhICDgrPv27NmTuLg4srKyKCwsxM/Pjz59+tCrVy8AAgMDKSws5MSJExVGlw4fPky/fv3O+rrTp0/nwQcfLP86OztbhcnB3Ny7FbOX7SbuYCabD5yge6um595JRMRODmfn89S3OwC496p2RAbpfFgzmVqWfH198fX1Ped2UVFRZGVlsW7dOnr37g3A2rVrycrKqrLUlLFaS+d4k5KS2LBhA88++yxQWqZcXV1ZsmQJN954IwBpaWls376dl1566ayv5+7uXn5/PHFMfk3cGdU1iK83HWLOqmSVJRGpMwzD4PFF28k6VUSnlt78daDuZ2k2hxjTi4iIYNiwYUyePJnY2FhiY2OZPHkyI0eOrHAlXHh4OIsWLSr/ev78+axYsaJ8+YDBgwczZsyY8hO6rVYrd955Jw899BC//vormzdv5rbbbqNz584MGjTI7u9T7KtsGYEft6WRnpVvbhgRkdO+iUthabym3+oSh/kv8Pnnn9O5c2eGDBnCkCFD6NKlC59++mmFbRISEsjK+t/KzGlpaURHRxMeHs59991HdHQ0X375ZYV9Xn/9dcaMGcONN97IZZddhqenJ9999905z2sSx9eppZXeYc0othl8vna/2XFERMjIzmfG4p0A3H91O8IDNf1WFzjEOkt1ndZZclw/bkvjb59vormXG6seuwoPV5VkETGHYRjc9fEGft11mM4trSz6Wz9cNKpUq+rVOksitWVIZAAtfRpxLLeQxVtSzY4jIg3Ywk0p/LrrMG7OTrx6Y1cVpTpE/yWkQXNxdiI66n/LCGigVUTMkJ6Vz4zvSq9+u39QO9oHNDE5kfyRypI0eDddGoKHqxPxadms23fc7Dgi0sAYhsH0hVvJyS+ma7CVu69oY3Yk+ROVJWnwfDzdGNs9GNAilSJifws2HmJ5whHcnJ14ZZym3+oi/RcR4X/LCPyyM52Dx/PMDSMiDUZa1ime+a706repg9vTTtNvdZLKkgjQPqAJ/dv6YjNKb7ArIlLbDMPgsa+3kVNQTLcQHyZf3trsSHIWKksip03sFwbAvHUHyCssNjeMiNR78zcc4rfEI7i5aPqtrtN/GZHTrgr3J7S5J9n5xSzclGJ2HBGpx1IzT/Hs96XTbw8Nbk9b/8YmJ5KqqCyJnObkZOH2qDAA5q7WMgIiUjsMw+DRr7eSU1BM91Y+3HW5rn6r61SWRP5gXK9gvNyc2X34JCt3HzU7jojUQ/PWH+T3pKO4n55+c3aymB1JzkFlSeQPmni4Mq5XCKBlBESk5qVknuL5H+IBmDa0A5f4afrNEagsifzJ7f3CsFhg2a7D7Duaa3YcEaknDMPg0QVbOVlQTK/Qpky6TFe/OQqVJZE/ae3rxZUd/AH4eHWyuWFEpN74Yt0BVu4unX576YYumn5zICpLIpUoW6Ry/oaD5OQXmRtGRBzeweN5vHB6+u2RYeG00fSbQ1FZEqlE/7a+tPVvTG5hCfM3HDI7jog4MJut9Oq33MISLg1ryqTTa7qJ41BZEqmExWIpX6Ty4zXJlNi0jICIVM/n6w6wes8xPFydePmGrjhp+s3hqCyJnMV1PVri7eHC/mN5LN912Ow4IuKADh7PY+aPpdNvjw4LJ8zXy+REUh0qSyJn4enmws29WwGli1SKiFwIm81g2oIt5BWW0Lt1s/JFb8XxqCyJVCE6KhQnC6zcfZTEjByz44iIA/ls7X5i9x6nkaszL9/QRdNvDkxlSaQKwU09GRIZCGiRShE5fweO5THzx10APDY8nNDmmn5zZCpLIudQtozAos2HyMwrNDeMiNR5NpvBwwu2cKqohL5tmhHdN9TsSHKRVJZEzqF362ZEtvAmv8jGvPUHzY4jInXcJ2uSWbfvOJ5uzrx0va5+qw9UlkTOwWKxMPH06NInq5MpLrGZG0hE6qzko7m8GJMAwPTh4bRq7mlyIqkJKksi52F01yCae7mRmpXPLzszzI4jInWQzWbwyIKtnCoqIapNc27to+m3+kJlSeQ8eLg6c0uf0mUE5qzaZ3IaEamL5q5OZl3ycbzcnHlJV7/VKypLIufptr6huDhZWJ98gu0pWWbHEZE6ZN/RXF76ufTqt+nXRBDSTNNv9YnKksh5CvD24JrOLQAtIyAi/1NiM5g2fwv5RTb6t/Xl1tOj0FJ/qCyJXICyZQS+25LKkZwCc8OISJ0wZ9U+Nuw/QWN3F2Zd3xmLRdNv9Y3KksgF6N6qKd1CfCgssfHF2gNmxxERk+05cpKXfy69+u3xayIIbqrpt/pIZUnkApWNLn22dj+FxVpGQKShKpt+Kyi2cXk7X27uHWJ2JKklKksiF2h4pxb4N3HnSE4BP25LMzuOiJjko5X72HQg8/T0WxdNv9VjKksiF8jNxan89gVzVu3DMAyTE4mIve0+fJKXfymdfntiRAQtfRqZnEhqk8qSSDXc0qcVbi5ObDmUxeaDmWbHERE7KrEZTFuwhcJiG1e092P8pZp+q+9UlkSqoXljd67tGgRoGQGRhubfv+9l84FMmri78KKufmsQVJZEqqnsfnE/bUsjPSvf3DAiYhe7D+fw6pJEAJ4cFUkLq6bfGgKVJZFq6hhkpXfrZhTbDD6NTTY7jojUsuISGw/N30phsY0rO/gxrmew2ZHETlSWRC7CHadHl75Ye4D8ohJzw4hIrfrX73vZcjCTJh4uzLxOV781JCpLIhdhUEQALX0acSKviMVxqWbHEZFakpiRwxtLkgB4elRHAq0eJicSe1JZErkILs5OTIgqXUbgIy0jIFIvFZfYeHj+FgpLbFwV7s/1PVqaHUnsTGVJ5CLddGkrGrk6sys9h9i9x82OIyI17P3/7mXroSy8PVyYeZ2ufmuIVJZELpLV05XrTv9Lc+7qfSanEZGalJCewxtLS69+mzG6IwHemn5riFSWRGrAxH5hACzZmcHB43nmhhGRGlF0evqtqMRgUIQ/Y7tr+q2hUlkSqQHtAppweTtfbAZ8sibZ7DgiUgPeW7GHbSlZWBu58sJYTb81ZCpLIjVk0ullBOatP0huQbG5YUTkosSnZfPmstKr3/4xuiP+mn5r0FSWRGrIwPb+hDX3JCe/mIWbU8yOIyLV9Mfpt8GRAVzbLcjsSGIylSWRGuLkZOH20+cuzV21D5tNywiIOKJ3lu9hR2o2Pp6uPD+2k6bfRGVJpCbd0DOYxu4u7DmSy++7j5odR0Qu0I7ULN764/RbE02/icqSSI1q4uHKuF6l94uas0rLCIg4ksJiGw/P30qxzWBoxwBGd9X0m5RSWRKpYbdHhWGxwIqEI+w9ctLsOCJynt5evpv4tGyaerry3Bhd/Sb/o7IkUsPCfL24qoM/AB+vTjY3jIicl+0pWby9fDcAz1zbCb8m7iYnkrpEZUmkFky6rDUACzYeIju/yOQ0IlKV0um3LRTbDIZ3CmRklxZmR5I6RmVJpBZc1rY57QMak1tYwn/WHzQ7johUYfayJHal59DMy41nx+jqNzmTypJILbBYLEzsVzq69PGaZPKLSkxOJCKV2Z6Sxdsr9gDw7LWd8G2s6Tc5k8qSSC0Z270lPp6uHDx+ilFvrWTLwUyzI4nIHxQUl/DQf7ZQYjMY0aUFIzT9JmehsiRSSxq5OTP75h74NnYn6fBJrnt3NS/F7KKgWKNMInXBW7/uJiEjh+ZebjwzuqPZcaQOU1kSqUX92/myZOoVjO4aRInN4J0Vexj11kq2Hso0O5pIg7b1UCbv/lY6/fbcmE401/SbVEFlSaSWNfVy482bu/PebT3wbexGYsZJxr6zmld+TtAok4gJCopLeHh+6fTbqK5BDO+s6TepmsqSiJ0M69SCX6YOYGSXFpTYDGYv383ot1axPSXL7GgiDco/lyaRmHES38Zu/EPTb3IeVJZE7KiZlxuzb+nBu7f2oLmXGwkZOVz79ipe+yWBwmKb2fFE6r24g5m8Vz791plmXm4mJxJHoLIkYoLhnVvwy9QrGNG5dJTpzWW7GT17pUaZRGpRflHp9JvNgGu7BTGsU6DZkcRBqCyJmKR5Y3fevrUHb9/Sg2ZebuxKz2HM26t4bUmiRplEasEbS5PYffgkvo3dmTFK029y/lSWREw2okvpKNPwToEU2wze/DWJa99exc7UbLOjidQbmw6c4F//LZ1+e2FsJ5pq+k0ugMqSSB3g29idd27twVs3d6eppyvxadmMnr2SN5YmUlSiUSaRi5FfVMK009NvY7u3ZEhHTb/JhXGYsnTixAmio6OxWq1YrVaio6PJzMyscp+MjAwmTpxIUFAQnp6eDBs2jKSkpPLvHz9+nHvvvZcOHTrg6elJq1atuO+++8jK0nkjYn8Wi4VRXYP4ZeoAhnUsHWV6Y2kSY95eRXyaRplEquu1JYnsOZKLXxN3nh4VaXYccUAOU5ZuueUW4uLiiImJISYmhri4OKKjo8+6vWEYjBkzhr179/Ltt9+yefNmQkNDGTRoELm5uQCkpqaSmprKK6+8wrZt25g7dy4xMTHceeed9npbImfwa+LOu7f14M2bu+Pj6cqO1NJRpjd/TdIok8gFKCy28e/f9/Lv3/cCMHNsZ3w8Nf0mF85iGIZhdohziY+PJzIyktjYWPr06QNAbGwsUVFR7Nq1iw4dOpyxT2JiIh06dGD79u107Fh6Il9JSQn+/v68+OKL3HXXXZX+rPnz53PbbbeRm5uLi4vLeeXLzs7GarWSlZWFt7d3Nd+lyJkO5+TzxKLt/LIzA4BOLb15ZVxXwgP1eyZyNoZhsGRnBjN/2sW+o6X/OL6xVzAv3dDV5GRS15zv32+HGFlas2YNVqu1vCgB9O3bF6vVyurVqyvdp6CgAAAPD4/y55ydnXFzc2PlypVn/VllB+x8i5JIbfJv4sH70T35503dsDZyZXtKNqPeWsnsZUkUa5RJ5Aw7UrO45YO1/OXTjew7motvY3dmXdeZmdd1MTuaODCHaATp6en4+/uf8by/vz/p6emV7hMeHk5oaCjTp0/n/fffx8vLi9dee4309HTS0tIq3efYsWM8++yz3H333VXmKSgoKC9jUNpMRWqLxWLh2m4tiWrTnMcXbWdpfAav/JLIzzsyeGVcVzoENjE7oojpDmfn8+ovifxn40EMA9xcnLirf2v+dmVbGrs7xJ86qcNMHVmaMWMGFoulyseGDRuA0j8Yf2YYRqXPA7i6uvL111+TmJhIs2bN8PT0ZMWKFQwfPhxnZ+czts/OzmbEiBFERkby9NNPV5l75syZ5SeaW61WQkJCqvHuRS6Mv7cHH0zoyevju2Jt5Mq2lCxGvbWSt5fv1iiTNFj5RSXMXpbEwFdW8NWG0qI0sksLfn1wAI8MC1dRkhph6jlLR48e5ejRo1VuExYWxhdffMGDDz54xtVvPj4+vP7660yaNKnK18jKyqKwsBA/Pz/69OlDr169ePvtt8u/n5OTw9ChQ/H09OT777+vMHVXmcpGlkJCQnTOktjN4ex8Hl+0jaXxhwHoGmzllXFdaRegUSZpGAzDYPGWVF6KSSAl8xQAXUN8eGpkBD1Dm5mcThzF+Z6z5FAneK9du5bevXsDsHbtWvr27XvWE7wrk5SURHh4OD/99BNDhgwBSg/U0KFDcXd358cff8TT0/OC8+kEbzGDYRgs3JTCP77bQXZ+MW7OTkwd3J7Jl7fGxdkhTkcUqZZNB07w7Pc72XwgE4AgqwePDg9nVJcgnJwqn20QqUy9KksAw4cPJzU1lffffx+Av/zlL4SGhvLdd9+VbxMeHs7MmTMZO3YsUHplm5+fH61atWLbtm3cf//99OzZk6+//hooHVEaPHgweXl5LFq0CC8vr/LX8vPzq3S6rjIqS2Km9KzSUaZlu06PMoX48Oq4LrT11yiT1C8pmad48addLN6SCoCnmzN/HXAJd13ehkZu5/d5LfJH5/v322Emcz///HPuu+++8hGh0aNHM3v27ArbJCQkVFhQMi0tjQcffJCMjAxatGjBhAkTePLJJ8u/v3HjRtauXQtA27ZtK7zWvn37CAsLq6V3I1JzAq0efHh7LxZsPMQz3+9ky8FMrnlzJQ8Obs/ky9vgrH9pi4PLLSjm3RV7+OD3vRQU27BY4IYewTw8tAMB3lWfNiFSExxmZKku08iS1BXpWfk8tnArKxKOANC9lQ8v39CVtv6NTU4mcuFKbAYLNh7klV8SOZJTep5on9bNeHJkJJ1aWk1OJ/VBvZuGq8tUlqQuMQyD+RsO8ez3O8kpKMbNxYmHh7Tnzv4aZRLHsXrPUZ77Pp6dp2/1E9rck8eviWBIZMBZr4IWuVAqS3aksiR1UWrmKR5buI3/JpaOMvVo5cPL47pyiZ9GmaTu2nc0lxd+jGfJ6VXrm3i4cP/V7ZgQFYabiy5ckJqlsmRHKktSVxmGwX82HOTZ7+M5WVCMu4sT04Z2YNJlrTXKJHVKVl4Rby5L4pM1yRSVGDg7Wbi1TyseGNSeZl66n5vUDpUlO1JZkrouJfMUj329ld+TStc16xXalJdu6EIbjTKJyYpKbHweu583fk0iM68IgIEd/Pi/ayK0bpjUOpUlO1JZEkdgGAbz1h/k+R80yiTmMwyD5QmHef6HePYcKb3ZbTv/xjwxMpIB7f1MTicNhcqSHaksiSNJyTzFowu2snJ36SjTpWFNefmGroT5ep1jT5GakZCew3M/7Cwf6Wzm5caDg9tz06UhWlBV7EplyY5UlsTRGIbBF+sO8MIP8eQWluDh6sQjQ8OZ2C9MKyBLrTl6soDXliQyb90BbAa4OTsx6bIw/n5VW7w9XM2OJw2QypIdqSyJozp4PI/HFm5l1e5jAPRu3YyXb+hCaHONMknNKSguYc6qZN5etpucgmIAhncK5LHh4fpdE1OpLNmRypI4MsMw+HztAV74MZ68whIauTrz6LAOTIjSKJNcHMMw+Gl7OjN/iufg8dKb3XZuaeWJERH0adPc5HQiKkt2pbIk9cHB43k8smAra/aWjjL1ad2Ml2/oSqvmF35zaZGthzJ59vudrE8+AUCAtzvThoZzXfeWKuFSZ6gs2ZHKktQXNpvB52v388KPuzhVVIKnmzOPDQ/ntj6h+gMn5yUt6xQvxySwcHMKAB6uTvzliku4Z0AbPN0c5nak0kCoLNmRypLUNweO5TFtwRbW7jsOQN82paNMIc00yiSVyyss5v3f9vL+f/eQX2QD4LruLZk2rAMtrI1MTidSOZUlO1JZkvrIZjP4NHY/s3763yjT9GsiuLV3K40ySTmbzWDR5hRe/jmB9Ox8oHTR0ydHRtI1xMfccCLnoLJkRypLUp/tP5bLtPlbWZdcOsrU75LmvHh9F40yCev2Hee5H3ay9VAWAMFNGzF9eATXdA7UzW7FIags2ZHKktR3NpvBx2uSeTFmF/lFNrzcnHl8RAS39G6lP4oN0IFjecyKiefHbekANHZ34e9XtmXSZWF4uDqbnE7k/Kks2ZHKkjQUyUdzmbZgS/kVTv3b+jLr+s4EN9UoU0OQnV/E28t2M2dVMoUlNpwscFPvVjw4uD2+jd3NjidywVSW7EhlSRoSm81gzupkXv65dJSpsbsLj18Twc29QzTKVE8Vl9iYt/4gry9J5FhuIQCXt/Pl/0ZEEB6ozzxxXCpLdqSyJA3RvqO5TJu/hQ37S0eZLm/ny6zru9DSR1c+1Sf/TTzCcz/sJDHjJABt/Lx4YkQEV3bwVzkWh6eyZEcqS9JQldgM5qzax8s/J1BQXDrK9MSICMZfqlEmR7f7cA7P/xDP8oQjAPh4uvLA1e24tW8orrrZrdQTKkt2pLIkDd2eIyeZNn8Lmw5kAnBFez9mXdeZII0yOZzjuYW8sTSRz9ceoMRm4OJkYUJUGPdf3Q6rp252K/WLypIdqSyJlI4yfbhyL6/8kkhhsY0m7i48OTKScb2CNcrkAAqLbXyyJpk3f00iO7/0ZreDIwOYPjycNn6NTU4nUjtUluxIZUnkf3YfPsm0BVvYfHqUaWAHP2Ze11mrONdRhmHwy84MZv4YT/KxPAAiWnjz5IgI+rX1NTmdSO1SWbIjlSWRikpsBv/+fS+vLjk9yuRxepSpp0aZ6pIdqVk8+/1OYveWLjjq29idaUPbc0PPEJy1Srs0ACpLdqSyJFK53YdzeGj+VrYczATgyg5+zLyuC4FWD3ODNXCHs/N55ZcE5m88hGGAm4sTky9vzV8HtqWxu252Kw2HypIdqSyJnF1xiY0Pft/H60sSKSyx4e3hwlOjOnJ9j5YaZbKz/KIS/v37Xt5ZsYe8whIARnUN4tFhHbSwqDRIKkt2pLIkcm5JGTk8PH8LW07fR+zqcH9euK4zAd4aZapthmGweEsqL/60i9Ss0pvddgvx4cmRkfQMbWpyOhHzqCzZkcqSyPkpLrHx/n/38s+lSeWjTDNGd2Rsd40y1ZaN+0/w7Pc7iTs9FRpk9eDR4eGM7hqkYy4NnsqSHaksiVyYhPTSUaZtKaWjTIMiAnhhbCf8NcpUYw6dyOPFmAS+25IKgKebM38beAl3Xd5GN7sVOU1lyY5UlkQuXNko0xtLEykqMbA2cuUfoztybTeNeFyMkwXFvLtiN//+fR8FxTYsFhjXM5iHh3RQGRX5E5UlO1JZEqm+XenZPDx/C9tTsoHShRCfH9sJ/yb6w34hSmwG8zcc5JVfEjl6sgCAvm2a8cSISDq1tJqcTqRuUlmyI5UlkYtTVGLjvRV7eHNZEkUlBj6epaNMOq/m/KzefZRnf4gnPq20cIY19+TxayIYHBmg4ydSBZUlO1JZEqkZ8WnZPPSfLew8/Ud/aMcAnhvTGb8m7iYnq5v2HjnJCz/uYml8BgDeHi7cd3U7JkSF4eaim92KnIvKkh2pLInUnKISG+8s38Nby5Iothk09XTlH9d2YlSXFholOS0rr4h//prEJ2uSKbYZODtZuK1PK+4f1J5mXm5mxxNxGCpLdqSyJFLzdqaWnstUNso0vFMgz47phG/jhjvKVFRi4/PY/bzxaxKZeUVA6aro/zcigrb+TUxOJ+J4VJbsSGVJpHYUFtt4e/lu3l6+m2KbQTMvN565tiMjuwSZHc2uDMNgecJhnv8hnj1HcgFoH9CYJ0ZEckV7P5PTiTgulSU7UlkSqV3bU7J4eP4WdqXnAHBN50CevbYTzRvAKNOu9Gye+z6elbuPAtDcy40Hh7RnfK8QXJx1XpLIxVBZsiOVJZHaV1hsY/ayJN5esYcSm0FzLzeeHdOJazq3MDtarTh6soBXf0nkq/UHsBng5uzEpP5h/P3Ktnh7uJodT6ReUFmyI5UlEfv58yjTiC4tePbaTvXmxOb8ohLmrErm7eW7OVlQDJSOpD02LIJWzXWzW5GapLJkRypLIvZVUFzCW7/u5t3f/jfK9NyYTgx34FEmwzD4cVs6M3+K59CJUwB0CbbyxIhIerduZnI6kfpJZcmOVJZEzLH1UCYPz99CYsZJAEZ1DeKZ0R1p6mCjTFsOZvLcDztZn3wCgEBvDx4Z1oEx3Vri5KTlEkRqi8qSHaksiZinoLiEN39N4t0Ve7AZ4NvYjefGdGZYp0Czo51TWtYpXo5JYOHmFAAauTpz94A2/OWKNni6uZicTqT+U1myI5UlEfNtOVg6ypR0uHSU6dpuQcwYVTdHmfIKi3nvt7386797yC+yAXBdj5Y8MjScQKvuiSdiLypLdqSyJFI35BeV8M9fk3j/t7JRJndeGNuJIR3rxiiTzWawcHMKL/+8i4zs0pvdXhrWlCdHRtIl2MfccCINkMqSHaksidQtcQczeeg/ceULOI7t3pKnR0Xi42neKNO6fcd59vudbEvJAiCkWSOmD49geKdA3cZFxCQqS3aksiRS9+QXlfD60kQ++O9ebAb4NXFn5tjODIoMsGuOA8fymPlTPD9tTwegibsLU65qy+39wvBwdbZrFhGpSGXJjlSWROquTQdOMG3+lvJRpuu6t+TpUR2xetbuwo7Z+UXMXrabuauSKSyx4WSBm3u3Yurg9g36/nYidYnKkh2pLInUbflFJby+JJF//b4Xw4AAb3dmXteZq8JrfpSpuMTGl+sP8vqSRI7nFgJweTtfnhgRSYdA3exWpC5RWbIjlSURx7Bxf+ko096jpaNM1/cI5qlRkVgb1cwo02+JR3j+h53l6z5d4ufFEyMiGdjBT+clidRBKkt2pLIk4jjyi0p49ZcE/r1yX/ko06zrunBluH+1X3P34Rye+yGeFQlHAPDxdGXqoPbc0qcVrrrZrUidpbJkRypLIo5nQ/Jxpi3Yyr7To0zjegbzxMgLG2U6nlvIG0sT+XztAUpsBq7OFiZEhXHfVe1q/ZwoEbl4Kkt2pLIk4phOFZbwyi8JfLSqdJQp0NuDWdd3ZmCHqkeZCottfLImmX/+mkROfunNbodEBjD9mgha+3rZI7qI1ACVJTtSWRJxbOuTjzNt/haSj+UBML5XCP83MgJvj4qjQ4Zh8POODGb+FM/+09tGtvDmiZER9LvE1+65ReTiqCzZkcqSiOM7VVjCSz/vYu7qZAwDWlg9ePH6LlzR3g+A7SlZPPfDTmL3HgdK122aNqQD1/cMxlk3uxVxSCpLdqSyJFJ/rN17jGkLtnLgeOnI0U2XhlBiM1iw6RCGAe4uTky+vA33DLyExu662a2II1NZsiOVJZH6Ja+wmJdiEpi7OrnC89d2C+KRYeG09GlkTjARqVHn+/db/ywSEfkTTzcXZozuyLBOgTz97Q6snq48NjycHq2amh1NREygkaUaoJElERERx3O+f7+1WpqIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoOU5ZOnDhBdHQ0VqsVq9VKdHQ0mZmZVe6TkZHBxIkTCQoKwtPTk2HDhpGUlFTptoZhMHz4cCwWC998803NvwERERFxSA5Tlm655Rbi4uKIiYkhJiaGuLg4oqOjz7q9YRiMGTOGvXv38u2337J582ZCQ0MZNGgQubm5Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":6},{"cell_type":"markdown","source":"## executorlib","metadata":{}},{"cell_type":"code","source":"from executorlib import SingleNodeExecutor","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"cell_type":"code","source":"from python_workflow_definition.executorlib import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"cell_type":"code","source":"with SingleNodeExecutor(max_workers=1) as exe:\n result = load_workflow_json(file_name=\"workflow_qe.json\", exe=exe).result()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01419] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01659] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01725] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01791] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01856] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:01922] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"}],"execution_count":9},{"cell_type":"code","source":"result","metadata":{"trusted":true},"outputs":[],"execution_count":10},{"cell_type":"markdown","source":"## jobflow","metadata":{}},{"cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":11},{"cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"cell_type":"code","source":"flow = load_workflow_json(file_name=\"workflow_qe.json\")","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 16:16:22,866 INFO Started executing jobs locally\n2025-04-12 16:16:22,872 INFO Starting job - get_bulk_structure (e06684a1-8e53-4b40-9d2f-a493aac6a648)\n2025-04-12 16:16:22,875 INFO Finished job - get_bulk_structure (e06684a1-8e53-4b40-9d2f-a493aac6a648)\n2025-04-12 16:16:22,875 INFO Starting job - get_dict (9b10da82-7799-44f2-8095-14607fc5334b)\n2025-04-12 16:16:22,877 INFO Finished job - get_dict (9b10da82-7799-44f2-8095-14607fc5334b)\n2025-04-12 16:16:22,878 INFO Starting job - calculate_qe (f6f57cdd-0ebc-4e89-8280-d00c0f803874)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02576] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:17:16,773 INFO Finished job - calculate_qe (f6f57cdd-0ebc-4e89-8280-d00c0f803874)\n2025-04-12 16:17:16,774 INFO Starting job - generate_structures (66f43fb2-fb63-4276-9f97-7cd1bbe85da1)\n2025-04-12 16:17:16,779 INFO Finished job - generate_structures (66f43fb2-fb63-4276-9f97-7cd1bbe85da1)\n2025-04-12 16:17:16,780 INFO Starting job - get_dict (5588576b-57c5-46b8-a0b9-5e0d1948cd41)\n2025-04-12 16:17:16,782 INFO Finished job - get_dict (5588576b-57c5-46b8-a0b9-5e0d1948cd41)\n2025-04-12 16:17:16,782 INFO Starting job - get_dict (42aae6ff-27a8-4edd-962f-3db2e97f2dee)\n2025-04-12 16:17:16,784 INFO Finished job - get_dict (42aae6ff-27a8-4edd-962f-3db2e97f2dee)\n2025-04-12 16:17:16,784 INFO Starting job - get_dict (5293943c-37f1-4a0f-b587-e0ea89bc97b4)\n2025-04-12 16:17:16,785 INFO Finished job - get_dict (5293943c-37f1-4a0f-b587-e0ea89bc97b4)\n2025-04-12 16:17:16,786 INFO Starting job - get_dict (f608d515-0c30-496c-bbfa-16df44514e4a)\n2025-04-12 16:17:16,788 INFO Finished job - get_dict (f608d515-0c30-496c-bbfa-16df44514e4a)\n2025-04-12 16:17:16,789 INFO Starting job - get_dict (56af291d-7efa-4d32-b765-4bf5a0f4fb76)\n2025-04-12 16:17:16,790 INFO Finished job - get_dict (56af291d-7efa-4d32-b765-4bf5a0f4fb76)\n2025-04-12 16:17:16,791 INFO Starting job - calculate_qe (fdeb1b63-902b-4934-9e80-da238f6928ba)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02592] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:17:28,282 INFO Finished job - calculate_qe (fdeb1b63-902b-4934-9e80-da238f6928ba)\n2025-04-12 16:17:28,283 INFO Starting job - calculate_qe (16c647ff-3257-4a02-86fb-d74fadb896e2)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02603] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:17:41,186 INFO Finished job - calculate_qe (16c647ff-3257-4a02-86fb-d74fadb896e2)\n2025-04-12 16:17:41,187 INFO Starting job - calculate_qe (b41c24aa-b033-430a-a568-1039f9dfb405)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02618] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:17:55,051 INFO Finished job - calculate_qe (b41c24aa-b033-430a-a568-1039f9dfb405)\n2025-04-12 16:17:55,052 INFO Starting job - calculate_qe (176c6420-d3b7-4040-9309-7d2d41607a00)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02630] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:18:09,613 INFO Finished job - calculate_qe (176c6420-d3b7-4040-9309-7d2d41607a00)\n2025-04-12 16:18:09,614 INFO Starting job - calculate_qe (64b4a012-4d4d-4011-a981-3537665b9770)\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02641] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:18:24,806 INFO Finished job - calculate_qe (64b4a012-4d4d-4011-a981-3537665b9770)\n2025-04-12 16:18:24,807 INFO Starting job - get_list (b4ebbf98-034c-4a58-89b8-98369d5ed448)\n2025-04-12 16:18:24,809 INFO Finished job - get_list (b4ebbf98-034c-4a58-89b8-98369d5ed448)\n2025-04-12 16:18:24,810 INFO Starting job - get_list (babda24d-d321-4056-afda-4c4c6919fddc)\n2025-04-12 16:18:24,812 INFO Finished job - get_list (babda24d-d321-4056-afda-4c4c6919fddc)\n2025-04-12 16:18:24,813 INFO Starting job - plot_energy_volume_curve (e051204c-30a7-4fd2-87a9-06d5ab2f58b0)\n"},{"name":"stderr","output_type":"stream","text":"Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"2025-04-12 16:18:24,877 INFO Finished job - plot_energy_volume_curve (e051204c-30a7-4fd2-87a9-06d5ab2f58b0)\n2025-04-12 16:18:24,878 INFO Finished executing jobs locally\n"},{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"{'e06684a1-8e53-4b40-9d2f-a493aac6a648': {1: Response(output='{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '9b10da82-7799-44f2-8095-14607fc5334b': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.05, 0.0, 0.0], [0.0, 4.05, 0.0], [0.0, 0.0, 4.05]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.025, 2.025], [2.025, 0.0, 2.025], [2.025, 2.025, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'vc-relax', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'f6f57cdd-0ebc-4e89-8280-d00c0f803874': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.0456372159469876, 0.0, 0.0], [0.0, 4.0456372159469876, 0.0], [0.0, 0.0, 4.0456372159469876]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186079734938, 2.0228186079734933], [2.0228186079734938, 0.0, 2.0228186079734933], [2.0228186079734938, 2.0228186079734938, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365262253548, 'volume': 66.21567448236969}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '66f43fb2-fb63-4276-9f97-7cd1bbe85da1': {1: Response(output={'s_0': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.90601978596229, 0.0, 0.0], [0.0, 3.90601978596229, 0.0], [0.0, 0.0, 3.90601978596229]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098929811448, 1.9530098929811444], [1.9530098929811448, 0.0, 1.9530098929811444], [1.9530098929811448, 1.9530098929811448, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_1': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770538443181933, 0.0, 0.0], [0.0, 3.9770538443181933, 0.0], [0.0, 0.0, 3.9770538443181933]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269221590967, 1.9885269221590962], [1.9885269221590967, 0.0, 1.9885269221590962], [1.9885269221590967, 1.9885269221590967, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_2': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.0456372159469876, 0.0, 0.0], [0.0, 4.0456372159469876, 0.0], [0.0, 0.0, 4.0456372159469876]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186079734938, 2.0228186079734933], [2.0228186079734938, 0.0, 2.0228186079734933], [2.0228186079734938, 2.0228186079734938, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_3': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111970927283105, 0.0, 0.0], [0.0, 4.111970927283105, 0.0], [0.0, 0.0, 4.111970927283105]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854636415524, 2.055985463641552], [2.0559854636415524, 0.0, 2.055985463641552], [2.0559854636415524, 2.0559854636415524, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 's_4': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176230852372332, 0.0, 0.0], [0.0, 4.176230852372332, 0.0], [0.0, 0.0, 4.176230852372332]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115426186166, 2.0881154261861656], [2.088115426186166, 0.0, 2.0881154261861656], [2.088115426186166, 2.088115426186166, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}'}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '5588576b-57c5-46b8-a0b9-5e0d1948cd41': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.90601978596229, 0.0, 0.0], [0.0, 3.90601978596229, 0.0], [0.0, 0.0, 3.90601978596229]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098929811448, 1.9530098929811444], [1.9530098929811448, 0.0, 1.9530098929811444], [1.9530098929811448, 1.9530098929811448, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '42aae6ff-27a8-4edd-962f-3db2e97f2dee': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770538443181933, 0.0, 0.0], [0.0, 3.9770538443181933, 0.0], [0.0, 0.0, 3.9770538443181933]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269221590967, 1.9885269221590962], [1.9885269221590967, 0.0, 1.9885269221590962], [1.9885269221590967, 1.9885269221590967, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '5293943c-37f1-4a0f-b587-e0ea89bc97b4': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.0456372159469876, 0.0, 0.0], [0.0, 4.0456372159469876, 0.0], [0.0, 0.0, 4.0456372159469876]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228186079734938, 2.0228186079734933], [2.0228186079734938, 0.0, 2.0228186079734933], [2.0228186079734938, 2.0228186079734938, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'f608d515-0c30-496c-bbfa-16df44514e4a': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111970927283105, 0.0, 0.0], [0.0, 4.111970927283105, 0.0], [0.0, 0.0, 4.111970927283105]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854636415524, 2.055985463641552], [2.0559854636415524, 0.0, 2.055985463641552], [2.0559854636415524, 2.0559854636415524, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '56af291d-7efa-4d32-b765-4bf5a0f4fb76': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.176230852372332, 0.0, 0.0], [0.0, 4.176230852372332, 0.0], [0.0, 0.0, 4.176230852372332]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.088115426186166, 2.0881154261861656], [2.088115426186166, 0.0, 2.0881154261861656], [2.088115426186166, 2.088115426186166, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'pseudopotentials': {'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}, 'kpts': [3, 3, 3], 'calculation': 'scf', 'smearing': 0.02}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'fdeb1b63-902b-4934-9e80-da238f6928ba': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9060197688893252, 0.0, 0.0], [0.0, 3.9060197688893252, 0.0], [0.0, 0.0, 3.9060197688893252]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9530098844635175, 1.9530098844635175], [1.9530098844635175, 0.0, 1.9530098844635175], [1.9530098844635175, 1.9530098844635175, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8457446150624, 'volume': 59.59410625268653}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '16c647ff-3257-4a02-86fb-d74fadb896e2': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[3.9770538269347395, 0.0, 0.0], [0.0, 3.9770538269347395, 0.0], [0.0, 0.0, 3.9770538269347395]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 1.9885269135082746, 1.9885269135082746], [1.9885269135082746, 0.0, 1.9885269135082746], [1.9885269135082746, 1.9885269135082746, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9161488594561, 'volume': 62.90488993339117}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b41c24aa-b033-430a-a568-1039f9dfb405': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.045637198263766, 0.0, 0.0], [0.0, 4.045637198263766, 0.0], [0.0, 0.0, 4.045637198263766]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0228185991583882, 2.0228185991583882], [2.0228185991583882, 0.0, 2.0228185991583882], [2.0228185991583882, 2.0228185991583882, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9365241668331, 'volume': 66.21567361409629}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '176c6420-d3b7-4040-9309-7d2d41607a00': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.111970909309936, 0.0, 0.0], [0.0, 4.111970909309936, 0.0], [0.0, 0.0, 4.111970909309936]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.0559854546134178, 2.0559854546134178], [2.0559854546134178, 0.0, 2.0559854546134178], [2.0559854546134178, 2.0559854546134178, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.9192860025803, 'volume': 69.52645729480075}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n '64b4a012-4d4d-4011-a981-3537665b9770': {1: Response(output={'structure': '{\"immutable_id\": null, \"last_modified\": null, \"elements\": [\"Al\"], \"nelements\": 1, \"elements_ratios\": [1.0], \"chemical_formula_descriptive\": \"Al4\", \"chemical_formula_reduced\": \"Al\", \"chemical_formula_hill\": null, \"chemical_formula_anonymous\": \"A\", \"dimension_types\": [1, 1, 1], \"nperiodic_dimensions\": 3, \"lattice_vectors\": [[4.17623083411829, 0.0, 0.0], [0.0, 4.17623083411829, 0.0], [0.0, 0.0, 4.17623083411829]], \"space_group_symmetry_operations_xyz\": null, \"space_group_symbol_hall\": null, \"space_group_symbol_hermann_mauguin\": null, \"space_group_symbol_hermann_mauguin_extended\": null, \"space_group_it_number\": null, \"cartesian_site_positions\": [[0.0, 0.0, 0.0], [0.0, 2.08811541707298, 2.08811541707298], [2.08811541707298, 0.0, 2.08811541707298], [2.08811541707298, 2.08811541707298, 0.0]], \"nsites\": 4, \"species\": [{\"name\": \"Al\", \"chemical_symbols\": [\"Al\"], \"concentration\": [1.0], \"mass\": null, \"original_name\": null, \"attached\": null, \"nattached\": null}], \"species_at_sites\": [\"Al\", \"Al\", \"Al\", \"Al\"], \"assemblies\": null, \"structure_features\": []}', 'energy': -1074.8737904693403, 'volume': 72.83724097550567}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'b4ebbf98-034c-4a58-89b8-98369d5ed448': {1: Response(output=[59.59410625268653, 62.90488993339117, 66.21567361409629, 69.52645729480075, 72.83724097550567], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'babda24d-d321-4056-afda-4c4c6919fddc': {1: Response(output=[-1074.8457446150624, -1074.9161488594561, -1074.9365241668331, -1074.9192860025803, -1074.8737904693403], detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'e051204c-30a7-4fd2-87a9-06d5ab2f58b0': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlB5aSksJtt91G8+bN8fT0pFu3bmzcuLH8+4ZhMGPGDIKCgmjUqBEDBw5kx44dJiauXVUdj6KiIh599FE6d+6Ml5cXQUFBTJgwgdTUVJNT165z/Y780d13343FYuGNN96wb0g7Op/jER8fz+jRo7FarTRp0oS+ffty4MABkxLXrnMdj5MnTzJlyhSCg4Np1KgRERERvPvuuyYmrj1hYWFYLJYzHn//+9+Bhvd5WtXxaIifpypLDurEiRNcdtlluLq68tNPP7Fz505effVVfHx8yrd56aWXeO2115g9ezbr168nMDCQwYMHl9+epT451/HIy8tj06ZNPPnkk2zatImFCxeSmJjI6NGjzQ1ei87nd6TMN998w9q1awkKCrJ/UDs5n+OxZ88e+vfvT3h4OCtWrGDLli08+eSTeHh4mBe8lpzP8Zg6dSoxMTF89tlnxMfHM3XqVO69916+/fZb84LXkvXr15OWllb+WLJkCQDjxo0DGtbnKVR9PBri5ymGOKRHH33U6N+//1m/b7PZjMDAQGPWrFnlz+Xn5xtWq9V477337BHRrs51PCqzbt06AzD2799fS6nMdb7H5NChQ0bLli2N7du3G6Ghocbrr79e++FMcD7HY/z48cZtt91mp0TmOp/j0bFjR+OZZ56p8FyPHj2MJ554ojaj1Qn333+/cckllxg2m63BfZ5W5o/HozL1/fNUI0sOavHixfTq1Ytx48bh7+9P9+7d+eCDD8q/v2/fPtLT08tvPAyla2MMGDCA1atXmxG5Vp3reFQmKysLi8VS6UhLfXA+x8RmsxEdHc20adPo2LGjSUnt41zHw2az8cMPP9C+fXuGDh2Kv78/ffr04ZtvvjEvdC06n9+P/v37s3jxYlJSUjAMg+XLl5OYmMjQoUNNSm0fhYWFfPbZZ9xxxx1YLJYG93n6Z38+HpWp75+nGllyUO7u7oa7u7sxffp0Y9OmTcZ7771neHh4GB9//LFhGIaxatUqAzBSUlIq7Dd58mRjyJAhZkSuVec6Hn926tQpo2fPnsatt95q56T2cz7H5IUXXjAGDx5c/q/F+jyydK7jkZaWZgCGp6en8dprrxmbN282Zs6caVgsFmPFihUmp6955/P7UVBQYEyYMMEADBcXF8PNzc345JNPTExtH1999ZXh7Oxc/vnZ0D5P/+zPx+PPGsLnqcqSg3J1dTWioqIqPHfvvfcaffv2NQzjf//jTk1NrbDNXXfdZQwdOtRuOe3lXMfjjwoLC41rr73W6N69u5GVlWWviHZ3rmOyYcMGIyAgoMIHYH0uS+c6HikpKQZg3HzzzRW2GTVqlHHTTTfZLae9nM//Zl5++WWjffv2xuLFi40tW7YYb731ltG4cWNjyZIl9o5rV0OGDDFGjhxZ/nVD+zz9sz8fjz9qKJ+nmoZzUC1atCAyMrLCcxEREeVX7QQGBgKQnp5eYZvDhw8TEBBgn5B2dK7jUaaoqIgbb7yRffv2sWTJknpxx+yzOdcx+f333zl8+DCtWrXCxcUFFxcX9u/fz0MPPURYWJgJiWvXuY6Hr68vLi4u5/V7VB+c63icOnWKxx9/nNdee41Ro0bRpUsXpkyZwvjx43nllVfMiGwX+/fvZ+nSpdx1113lzzW0z9M/qux4lGlIn6cqSw7qsssuIyEhocJziYmJhIaGAtC6dWsCAwPLr2CA0nnn3377jX79+tk1qz2c63jA//6HnZSUxNKlS2nevLm9Y9rVuY5JdHQ0W7duJS4urvwRFBTEtGnT+Pnnn82IXKvOdTzc3Ny49NJLz/l7VF+c63gUFRVRVFSEk1PFPxPOzs7YbDa75bS3OXPm4O/vz4gRI8qfa2ifp39U2fGAhvd5qmk4B7Vu3TrDxcXFeP75542kpCTj888/Nzw9PY3PPvusfJtZs2YZVqvVWLhwobFt2zbj5ptvNlq0aGFkZ2ebmLx2nOt4FBUVGaNHjzaCg4ONuLg4Iy0trfxRUFBgcvracT6/I39Wn6fhzud4LFy40HB1dTX+9a9/GUlJScZbb71lODs7G7///ruJyWvH+RyPAQMGGB07djSWL19u7N2715gzZ47h4eFhvPPOOyYmrz0lJSVGq1atjEcfffSM7zWkz9MyZzseDfHzVGXJgX333XdGp06dDHd3dyM8PNz417/+VeH7NpvNePrpp43AwEDD3d3duOKKK4xt27aZlLb2VXU89u3bZwCVPpYvX25e6Fp2rt+RP6vPZckwzu94fPjhh0bbtm0NDw8Po2vXrsY333xjQlL7ONfxSEtLMyZOnGgEBQUZHh4eRocOHYxXX331rJePO7qff/7ZAIyEhIQzvtfQPk8N4+zHoyF+nloMwzDMGNESERERcQQ6Z0lERESkCipLIiIiIlVQWRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":14},{"cell_type":"markdown","source":"## pyiron_base","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":16},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"e385b9727fab4c7da7cd9dbadf55a6b0"}},"metadata":{}}],"execution_count":17},{"cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=\"workflow_qe.json\")\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_4d6be3fdbb49d3c5fbd29dd1a00a5fff\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f32d20>\n\n\n\nvolume_lst_a23e33f0343b254532e68343c1dfca26\n\nvolume_lst=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f31490>\n\n\n\nvolume_lst_a23e33f0343b254532e68343c1dfca26->create_function_job_4d6be3fdbb49d3c5fbd29dd1a00a5fff\n\n\n\n\n\n0_7cc1f69389ebd3b7d00d10981c4fe301\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f30fe0>\n\n\n\n0_7cc1f69389ebd3b7d00d10981c4fe301->volume_lst_a23e33f0343b254532e68343c1dfca26\n\n\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add\n\nworking_directory=strain_0\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_7cc1f69389ebd3b7d00d10981c4fe301\n\n\n\n\n\n0_9470692ead72d2e0230b47800a8a0116\n\n0=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f30500>\n\n\n\nworking_directory_2e9abb255f1a31f7d29b4451ad422add->0_9470692ead72d2e0230b47800a8a0116\n\n\n\n\n\nenergy_lst_221c852b0e017a90c4f03e2d6c39d061\n\nenergy_lst=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f309b0>\n\n\n\n0_9470692ead72d2e0230b47800a8a0116->energy_lst_221c852b0e017a90c4f03e2d6c39d061\n\n\n\n\n\ninput_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d950d0>\n\n\n\ninput_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9->0_7cc1f69389ebd3b7d00d10981c4fe301\n\n\n\n\n\ninput_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9->0_9470692ead72d2e0230b47800a8a0116\n\n\n\n\n\nstructure_f6da1073d2040fc3a78af3ad692a22f4\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d94500>\n\n\n\nstructure_f6da1073d2040fc3a78af3ad692a22f4->input_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9\n\n\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d97860>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_f6da1073d2040fc3a78af3ad692a22f4\n\n\n\n\n\nstructure_934d6c38e37879fc339faadda20f6118\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d95d30>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_934d6c38e37879fc339faadda20f6118\n\n\n\n\n\nstructure_60eab8e8190c901f9c78be66583ca889\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d96750>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_60eab8e8190c901f9c78be66583ca889\n\n\n\n\n\nstructure_2da45abe393fea3458150f3d00ae00bc\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d97260>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_2da45abe393fea3458150f3d00ae00bc\n\n\n\n\n\nstructure_5cb245326ef5f71585c5e422bf419d6a\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d94770>\n\n\n\nstructure_3862820bf0d5d11552d0ba636f46b0d7->structure_5cb245326ef5f71585c5e422bf419d6a\n\n\n\n\n\ninput_dict_b7ad0dd12c8b8df040b25c04b27e0d2d\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d94b00>\n\n\n\nstructure_934d6c38e37879fc339faadda20f6118->input_dict_b7ad0dd12c8b8df040b25c04b27e0d2d\n\n\n\n\n\ninput_dict_b03046c2a79ae84020304ae657044b33\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d95ee0>\n\n\n\nstructure_60eab8e8190c901f9c78be66583ca889->input_dict_b03046c2a79ae84020304ae657044b33\n\n\n\n\n\ninput_dict_f495a2481da3f5ba10bb610e85a1db9d\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d96840>\n\n\n\nstructure_2da45abe393fea3458150f3d00ae00bc->input_dict_f495a2481da3f5ba10bb610e85a1db9d\n\n\n\n\n\ninput_dict_23618bea35d8b08490160fc9cbb732f5\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d97410>\n\n\n\nstructure_5cb245326ef5f71585c5e422bf419d6a->input_dict_23618bea35d8b08490160fc9cbb732f5\n\n\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7\n\nworking_directory=mini\n\n\n\nworking_directory_a17ade9a563d8dcadb655fb2e1c743a7->structure_3862820bf0d5d11552d0ba636f46b0d7\n\n\n\n\n\ninput_dict_4659b266e9d3fa11239c55f900f50744\n\ninput_dict=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d94ad0>\n\n\n\ninput_dict_4659b266e9d3fa11239c55f900f50744->structure_3862820bf0d5d11552d0ba636f46b0d7\n\n\n\n\n\nstructure_955e3be85103df2a640360e1088a66f5\n\nstructure=<pyiron_base.project.delayed.DelayedObject object at 0x75f792d95a60>\n\n\n\nstructure_955e3be85103df2a640360e1088a66f5->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0\n\nelement=Al\n\n\n\nelement_467734216d9bd2497ffd28d5cd6daba0->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\na_aea0574e321c6f75f923c059730e9537\n\na=4.05\n\n\n\na_aea0574e321c6f75f923c059730e9537->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a\n\ncubic=True\n\n\n\ncubic_bad787c53fa02a5559fe570238fdb23a->structure_955e3be85103df2a640360e1088a66f5\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10\n\npseudopotentials={'Al': 'Al.pbe-n-kjpaw_psl.1.0.0.UPF'}\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_b7ad0dd12c8b8df040b25c04b27e0d2d\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_b03046c2a79ae84020304ae657044b33\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_f495a2481da3f5ba10bb610e85a1db9d\n\n\n\n\n\npseudopotentials_453cdcc0d627a851e196cd899d956d10->input_dict_23618bea35d8b08490160fc9cbb732f5\n\n\n\n\n\n1_bb2cba3a41c90711e00110c6b737d7bc\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f32390>\n\n\n\ninput_dict_b7ad0dd12c8b8df040b25c04b27e0d2d->1_bb2cba3a41c90711e00110c6b737d7bc\n\n\n\n\n\n1_02cd272ef2e89fafc5e56bda713a362e\n\n1=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f30470>\n\n\n\ninput_dict_b7ad0dd12c8b8df040b25c04b27e0d2d->1_02cd272ef2e89fafc5e56bda713a362e\n\n\n\n\n\n2_c8f492a7ce994a3fb53c73f909cc0051\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f318b0>\n\n\n\ninput_dict_b03046c2a79ae84020304ae657044b33->2_c8f492a7ce994a3fb53c73f909cc0051\n\n\n\n\n\n2_041d64e0e1e29097d309e6fc1aa87da6\n\n2=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f32630>\n\n\n\ninput_dict_b03046c2a79ae84020304ae657044b33->2_041d64e0e1e29097d309e6fc1aa87da6\n\n\n\n\n\n3_1dfbd1c68de8d85fbe5601cec2fcbe87\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f32b10>\n\n\n\ninput_dict_f495a2481da3f5ba10bb610e85a1db9d->3_1dfbd1c68de8d85fbe5601cec2fcbe87\n\n\n\n\n\n3_06fb3a76ff2cb896adee01e7db6d07a3\n\n3=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f30050>\n\n\n\ninput_dict_f495a2481da3f5ba10bb610e85a1db9d->3_06fb3a76ff2cb896adee01e7db6d07a3\n\n\n\n\n\n4_7010e7606a4eabf2896bb6ac3fbd70d5\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f30c50>\n\n\n\ninput_dict_23618bea35d8b08490160fc9cbb732f5->4_7010e7606a4eabf2896bb6ac3fbd70d5\n\n\n\n\n\n4_2531846c426d0fb249bd528138ebcf68\n\n4=<pyiron_base.project.delayed.DelayedObject object at 0x75f792f31eb0>\n\n\n\ninput_dict_23618bea35d8b08490160fc9cbb732f5->4_2531846c426d0fb249bd528138ebcf68\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa\n\nkpts=[3, 3, 3]\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_b7ad0dd12c8b8df040b25c04b27e0d2d\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_b03046c2a79ae84020304ae657044b33\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_f495a2481da3f5ba10bb610e85a1db9d\n\n\n\n\n\nkpts_e961a9390797b0f6f8887a402ea3e9aa->input_dict_23618bea35d8b08490160fc9cbb732f5\n\n\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34\n\ncalculation=vc-relax\n\n\n\ncalculation_77b75a01e65d83962d14fa8a882d6c34->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9\n\nsmearing=0.02\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_4659b266e9d3fa11239c55f900f50744\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_b7ad0dd12c8b8df040b25c04b27e0d2d\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_b03046c2a79ae84020304ae657044b33\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_f495a2481da3f5ba10bb610e85a1db9d\n\n\n\n\n\nsmearing_64a632a7e5bfbb7d0c6face9b82082a9->input_dict_23618bea35d8b08490160fc9cbb732f5\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781\n\nstrain_lst=[0.9, 0.95, 1.0, 1.05, 1.1]\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_f6da1073d2040fc3a78af3ad692a22f4\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_934d6c38e37879fc339faadda20f6118\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_60eab8e8190c901f9c78be66583ca889\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_2da45abe393fea3458150f3d00ae00bc\n\n\n\n\n\nstrain_lst_2d8c38dac8f1aeeeecfa3c0b1cc8a781->structure_5cb245326ef5f71585c5e422bf419d6a\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83\n\ncalculation=scf\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_cbdc2c7f74c36e3ad5ce3cd7ba163de9\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_b7ad0dd12c8b8df040b25c04b27e0d2d\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_b03046c2a79ae84020304ae657044b33\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_f495a2481da3f5ba10bb610e85a1db9d\n\n\n\n\n\ncalculation_bc91e0ce7227762f507f47b85f2f0a83->input_dict_23618bea35d8b08490160fc9cbb732f5\n\n\n\n\n\n1_bb2cba3a41c90711e00110c6b737d7bc->volume_lst_a23e33f0343b254532e68343c1dfca26\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd\n\nworking_directory=strain_1\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_bb2cba3a41c90711e00110c6b737d7bc\n\n\n\n\n\nworking_directory_5423d2cc67129a6d0383af6f347df5bd->1_02cd272ef2e89fafc5e56bda713a362e\n\n\n\n\n\n1_02cd272ef2e89fafc5e56bda713a362e->energy_lst_221c852b0e017a90c4f03e2d6c39d061\n\n\n\n\n\n2_c8f492a7ce994a3fb53c73f909cc0051->volume_lst_a23e33f0343b254532e68343c1dfca26\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992\n\nworking_directory=strain_2\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_c8f492a7ce994a3fb53c73f909cc0051\n\n\n\n\n\nworking_directory_cc646e064ddfc4b2811aba3d86d27992->2_041d64e0e1e29097d309e6fc1aa87da6\n\n\n\n\n\n2_041d64e0e1e29097d309e6fc1aa87da6->energy_lst_221c852b0e017a90c4f03e2d6c39d061\n\n\n\n\n\n3_1dfbd1c68de8d85fbe5601cec2fcbe87->volume_lst_a23e33f0343b254532e68343c1dfca26\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f\n\nworking_directory=strain_3\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_1dfbd1c68de8d85fbe5601cec2fcbe87\n\n\n\n\n\nworking_directory_e27768d53df6cd8dc245c52054ecf31f->3_06fb3a76ff2cb896adee01e7db6d07a3\n\n\n\n\n\n3_06fb3a76ff2cb896adee01e7db6d07a3->energy_lst_221c852b0e017a90c4f03e2d6c39d061\n\n\n\n\n\n4_7010e7606a4eabf2896bb6ac3fbd70d5->volume_lst_a23e33f0343b254532e68343c1dfca26\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7\n\nworking_directory=strain_4\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_7010e7606a4eabf2896bb6ac3fbd70d5\n\n\n\n\n\nworking_directory_72bba39b22d2b7ce154d37c7e8c658b7->4_2531846c426d0fb249bd528138ebcf68\n\n\n\n\n\n4_2531846c426d0fb249bd528138ebcf68->energy_lst_221c852b0e017a90c4f03e2d6c39d061\n\n\n\n\n\nenergy_lst_221c852b0e017a90c4f03e2d6c39d061->create_function_job_4d6be3fdbb49d3c5fbd29dd1a00a5fff\n\n\n\n\n"},"metadata":{}}],"execution_count":18},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f was saved and received the ID: 1\nThe job get_dict_1e47509b88d63a21fd421686554c8f4a was saved and received the ID: 2\nThe job calculate_qe_e3c0bf43f7edf24d215901bf93271e87 was saved and received the ID: 3\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02674] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job generate_structures_0b7418234bd5f94e11e5dac5e326fa62 was saved and received the ID: 4\nThe job get_dict_6412bd5f55544764ae3a19843b1c1f86 was saved and received the ID: 5\nThe job calculate_qe_793cc2f181f0ae7ed0c3d56879d0902c was saved and received the ID: 6\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02689] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_b657057e4c2d079d56a8b0b18c728c4e was saved and received the ID: 7\nThe job calculate_qe_65b20a2accb8b1fac9aa62b0564050b2 was saved and received the ID: 8\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02700] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_dd632406884bb75a6b68fef2c2a688b1 was saved and received the ID: 9\nThe job calculate_qe_44f3334bab9ac96b518d57c1a3717e29 was saved and received the ID: 10\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02716] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_c164a7a10f4bc97e35517403827308ba was saved and received the ID: 11\nThe job calculate_qe_588c16f0a382c7def8bbd8b2543869d8 was saved and received the ID: 12\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02727] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_dict_83611a21b6b4832a79a5c45bdd9e3651 was saved and received the ID: 13\nThe job calculate_qe_d99a70bde74856604aa0dd15cf910139 was saved and received the ID: 14\n"},{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02738] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"name":"stdout","output_type":"stream","text":"The job get_list_087c6e1d9775d9b8cd04d19623cf91e9 was saved and received the ID: 15\nThe job get_list_66086a1828a79a1a91d321940b4ffc18 was saved and received the ID: 16\nThe job plot_energy_volume_curve_71ff39249965ea4825e3a2f33a0adebc was saved and received the ID: 17\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXu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Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":19},{"cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n2 3 finished None \n3 4 finished None \n4 5 finished None \n5 6 finished None \n6 7 finished None \n7 8 finished None \n8 9 finished None \n9 10 finished None \n10 11 finished None \n11 12 finished None \n12 13 finished None \n13 14 finished None \n14 15 finished None \n15 16 finished None \n16 17 finished None \n\n job \\\n0 get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f \n1 get_dict_1e47509b88d63a21fd421686554c8f4a \n2 calculate_qe_e3c0bf43f7edf24d215901bf93271e87 \n3 generate_structures_0b7418234bd5f94e11e5dac5e326fa62 \n4 get_dict_6412bd5f55544764ae3a19843b1c1f86 \n5 calculate_qe_793cc2f181f0ae7ed0c3d56879d0902c \n6 get_dict_b657057e4c2d079d56a8b0b18c728c4e \n7 calculate_qe_65b20a2accb8b1fac9aa62b0564050b2 \n8 get_dict_dd632406884bb75a6b68fef2c2a688b1 \n9 calculate_qe_44f3334bab9ac96b518d57c1a3717e29 \n10 get_dict_c164a7a10f4bc97e35517403827308ba \n11 calculate_qe_588c16f0a382c7def8bbd8b2543869d8 \n12 get_dict_83611a21b6b4832a79a5c45bdd9e3651 \n13 calculate_qe_d99a70bde74856604aa0dd15cf910139 \n14 get_list_087c6e1d9775d9b8cd04d19623cf91e9 \n15 get_list_66086a1828a79a1a91d321940b4ffc18 \n16 plot_energy_volume_curve_71ff39249965ea4825e3a2f33a0adebc \n\n subjob projectpath \\\n0 /get_bulk_structure_f1e730ed97e30e5439e855d2ac41396f None \n1 /get_dict_1e47509b88d63a21fd421686554c8f4a None \n2 /calculate_qe_e3c0bf43f7edf24d215901bf93271e87 None \n3 /generate_structures_0b7418234bd5f94e11e5dac5e326fa62 None \n4 /get_dict_6412bd5f55544764ae3a19843b1c1f86 None \n5 /calculate_qe_793cc2f181f0ae7ed0c3d56879d0902c None \n6 /get_dict_b657057e4c2d079d56a8b0b18c728c4e None \n7 /calculate_qe_65b20a2accb8b1fac9aa62b0564050b2 None \n8 /get_dict_dd632406884bb75a6b68fef2c2a688b1 None \n9 /calculate_qe_44f3334bab9ac96b518d57c1a3717e29 None \n10 /get_dict_c164a7a10f4bc97e35517403827308ba None \n11 /calculate_qe_588c16f0a382c7def8bbd8b2543869d8 None \n12 /get_dict_83611a21b6b4832a79a5c45bdd9e3651 None \n13 /calculate_qe_d99a70bde74856604aa0dd15cf910139 None \n14 /get_list_087c6e1d9775d9b8cd04d19623cf91e9 None \n15 /get_list_66086a1828a79a1a91d321940b4ffc18 None \n16 /plot_energy_volume_curve_71ff39249965ea4825e3a2f33a0adebc None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-12 16:18:25.634465 None None \n1 /home/jovyan/test/ 2025-04-12 16:18:25.796236 None None \n2 /home/jovyan/test/ 2025-04-12 16:18:25.920491 None None \n3 /home/jovyan/test/ 2025-04-12 16:19:17.535804 None None \n4 /home/jovyan/test/ 2025-04-12 16:19:17.638460 None None \n5 /home/jovyan/test/ 2025-04-12 16:19:17.738014 None None \n6 /home/jovyan/test/ 2025-04-12 16:19:30.862842 None None \n7 /home/jovyan/test/ 2025-04-12 16:19:30.949924 None None \n8 /home/jovyan/test/ 2025-04-12 16:19:44.002892 None None \n9 /home/jovyan/test/ 2025-04-12 16:19:44.099561 None None \n10 /home/jovyan/test/ 2025-04-12 16:19:56.157622 None None \n11 /home/jovyan/test/ 2025-04-12 16:19:56.287385 None None \n12 /home/jovyan/test/ 2025-04-12 16:20:11.689922 None None \n13 /home/jovyan/test/ 2025-04-12 16:20:11.801036 None None \n14 /home/jovyan/test/ 2025-04-12 16:20:26.472284 None None \n15 /home/jovyan/test/ 2025-04-12 16:20:26.726621 None None \n16 /home/jovyan/test/ 2025-04-12 16:20:26.852592 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n2 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n3 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n4 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n5 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n6 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n7 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n8 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n9 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n10 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n11 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n12 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n13 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n14 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n15 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n16 pyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None \n2 PythonFunctionContainerJob 0.4 None None \n3 PythonFunctionContainerJob 0.4 None None \n4 PythonFunctionContainerJob 0.4 None None \n5 PythonFunctionContainerJob 0.4 None None \n6 PythonFunctionContainerJob 0.4 None None \n7 PythonFunctionContainerJob 0.4 None None \n8 PythonFunctionContainerJob 0.4 None None \n9 PythonFunctionContainerJob 0.4 None None \n10 PythonFunctionContainerJob 0.4 None None \n11 PythonFunctionContainerJob 0.4 None None \n12 PythonFunctionContainerJob 0.4 None None \n13 PythonFunctionContainerJob 0.4 None None \n14 PythonFunctionContainerJob 0.4 None None \n15 PythonFunctionContainerJob 0.4 None None \n16 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNoneget_bulk_structure_f1e730ed97e30e5439e855d2ac41396f/get_bulk_structure_f1e730ed97e30e5439e855d2ac41396fNone/home/jovyan/test/2025-04-12 16:18:25.634465NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneget_dict_1e47509b88d63a21fd421686554c8f4a/get_dict_1e47509b88d63a21fd421686554c8f4aNone/home/jovyan/test/2025-04-12 16:18:25.796236NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
23finishedNonecalculate_qe_e3c0bf43f7edf24d215901bf93271e87/calculate_qe_e3c0bf43f7edf24d215901bf93271e87None/home/jovyan/test/2025-04-12 16:18:25.920491NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
34finishedNonegenerate_structures_0b7418234bd5f94e11e5dac5e326fa62/generate_structures_0b7418234bd5f94e11e5dac5e326fa62None/home/jovyan/test/2025-04-12 16:19:17.535804NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
45finishedNoneget_dict_6412bd5f55544764ae3a19843b1c1f86/get_dict_6412bd5f55544764ae3a19843b1c1f86None/home/jovyan/test/2025-04-12 16:19:17.638460NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
56finishedNonecalculate_qe_793cc2f181f0ae7ed0c3d56879d0902c/calculate_qe_793cc2f181f0ae7ed0c3d56879d0902cNone/home/jovyan/test/2025-04-12 16:19:17.738014NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
67finishedNoneget_dict_b657057e4c2d079d56a8b0b18c728c4e/get_dict_b657057e4c2d079d56a8b0b18c728c4eNone/home/jovyan/test/2025-04-12 16:19:30.862842NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
78finishedNonecalculate_qe_65b20a2accb8b1fac9aa62b0564050b2/calculate_qe_65b20a2accb8b1fac9aa62b0564050b2None/home/jovyan/test/2025-04-12 16:19:30.949924NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
89finishedNoneget_dict_dd632406884bb75a6b68fef2c2a688b1/get_dict_dd632406884bb75a6b68fef2c2a688b1None/home/jovyan/test/2025-04-12 16:19:44.002892NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
910finishedNonecalculate_qe_44f3334bab9ac96b518d57c1a3717e29/calculate_qe_44f3334bab9ac96b518d57c1a3717e29None/home/jovyan/test/2025-04-12 16:19:44.099561NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1011finishedNoneget_dict_c164a7a10f4bc97e35517403827308ba/get_dict_c164a7a10f4bc97e35517403827308baNone/home/jovyan/test/2025-04-12 16:19:56.157622NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1112finishedNonecalculate_qe_588c16f0a382c7def8bbd8b2543869d8/calculate_qe_588c16f0a382c7def8bbd8b2543869d8None/home/jovyan/test/2025-04-12 16:19:56.287385NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1213finishedNoneget_dict_83611a21b6b4832a79a5c45bdd9e3651/get_dict_83611a21b6b4832a79a5c45bdd9e3651None/home/jovyan/test/2025-04-12 16:20:11.689922NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1314finishedNonecalculate_qe_d99a70bde74856604aa0dd15cf910139/calculate_qe_d99a70bde74856604aa0dd15cf910139None/home/jovyan/test/2025-04-12 16:20:11.801036NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1415finishedNoneget_list_087c6e1d9775d9b8cd04d19623cf91e9/get_list_087c6e1d9775d9b8cd04d19623cf91e9None/home/jovyan/test/2025-04-12 16:20:26.472284NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1516finishedNoneget_list_66086a1828a79a1a91d321940b4ffc18/get_list_66086a1828a79a1a91d321940b4ffc18None/home/jovyan/test/2025-04-12 16:20:26.726621NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
1617finishedNoneplot_energy_volume_curve_71ff39249965ea4825e3a2f33a0adebc/plot_energy_volume_curve_71ff39249965ea4825e3a2f33a0adebcNone/home/jovyan/test/2025-04-12 16:20:26.852592NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-17n30fhy#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":20},{"cell_type":"markdown","source":"## Python","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.purepython import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"cell_type":"code","source":"load_workflow_json(file_name=\"workflow_qe.json\")","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02750] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02765] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02781] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02792] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02803] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-pyiron-dev-pyth-flow-definition-17n30fhy:02814] mca_base_component_repository_open: unable to open mca_btl_openib: librdmacm.so.1: cannot open shared object file: No such file or directory (ignored)\nNote: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n"},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAW/BJREFUeJzt3XlcVXXCx/HPZReUi8omgqC5AO5LKmZp5ZpLWpltmFZOzYwtVlb2tDht2t6UbdOUtttoWrZRmtrkgjuuCLjgwubKIsh6z/MHwkQiKsI9XPi+X6/7eh4u51y+98Rcvv5+5/yOxTAMAxERERGplJPZAURERETqMpUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgsmeT555+nX79+eHp64uPjc177GIbBjBkzCAoKolGjRgwcOJAdO3aUfz85ORmLxVLpY/78+We8XkFBAd26dcNisRAXF3dB+d999126dOmCt7c33t7eREVF8dNPP13Qa4iIiDgClSWTFBYWMm7cOP7617+e9z4vvfQSr732GrNnz2b9+vUEBgYyePBgcnJyAAgJCSEtLa3C4x//+AdeXl4MHz78jNd75JFHCAoKqlb+4OBgZs2axYYNG9iwYQNXXXUV1157bYXyJiIiUi8YYqo5c+YYVqv1nNvZbDYjMDDQmDVrVvlz+fn5htVqNd57772z7tetWzfjjjvuOOP5H3/80QgPDzd27NhhAMbmzZsrfH/Hjh3G8OHDDS8vL8Pf39+47bbbjCNHjlSZsWnTpsa///3vc74XERERR6KRJQexb98+0tPTGTJkSPlz7u7uDBgwgNWrV1e6z8aNG4mLi+POO++s8HxGRgaTJ0/m008/xdPT84z90tLSGDBgAN26dWPDhg3ExMSQkZHBjTfeWOnPKSkpYd68eeTm5hIVFXUR71JERKTucTE7gJyf9PR0AAICAio8HxAQwP79+yvd58MPPyQiIoJ+/fqVP2cYBhMnTuSee+6hV69eJCcnn7Hfu+++S48ePXjhhRfKn/voo48ICQkhMTGR9u3bA7Bt2zaioqLIz8+ncePGLFq0iMjIyIt9qyIiInWKRpZq0IwZM856gnXZY8OGDRf1MywWS4WvDcM44zmAU6dO8cUXX5wxqvTWW2+RnZ3N9OnTz/ozNm7cyPLly2ncuHH5Izw8HIA9e/aUb9ehQwfi4uKIjY3lr3/9K7fffjs7d+68mLcnIiJS52hkqQZNmTKFm266qcptwsLCqvXagYGBQOkIU4sWLcqfP3z48BmjTQALFiwgLy+PCRMmVHh+2bJlxMbG4u7uXuH5Xr16ceutt/Lxxx9js9kYNWoUL7744hmv+8ef7ebmRtu2bcv3X79+Pf/85z95//33q/UeRURE6iKVpRrk6+uLr69vrbx269atCQwMZMmSJXTv3h0ovaLut99+q7TUfPjhh4wePRo/P78Kz7/55ps899xz5V+npqYydOhQvvrqK/r06QNAjx49+PrrrwkLC8PF5fx/RQzDoKCgoDpvT0REpM5SWTLJgQMHOH78OAcOHKCkpKR8naO2bdvSuHFjAMLDw5k5cyZjx47FYrHwwAMP8MILL9CuXTvatWvHCy+8gKenJ7fcckuF1969ezf//e9/+fHHH8/4ua1atarwddnPuuSSSwgODgbg73//Ox988AE333wz06ZNw9fXl927dzNv3jw++OADnJ2defzxxxk+fDghISHk5OQwb948VqxYQUxMTE0fKhEREVOpLJnkqaee4uOPPy7/umy0aPny5QwcOBCAhIQEsrKyyrd55JFHOHXqFH/72984ceIEffr04ZdffqFJkyYVXvujjz6iZcuWFa6cuxBBQUGsWrWKRx99lKFDh1JQUEBoaCjDhg3Dyan0NLeMjAyio6NJS0vDarXSpUsXYmJiGDx4cLV+poiISF1lMQzDMDuEiIiISF2lq+FEREREqqCyJCIiIlIFnbNUA2w2G6mpqTRp0qTSNY9ERESk7jEMg5ycHIKCgsrPya2MylINSE1NJSQkxOwYIiIiUg0HDx4svyK8MipLNaDsarSDBw/i7e1tchoRERE5H9nZ2YSEhJxxVfmfqSzVgLKpN29vb5UlERERB3OuU2h0greIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKqgs1WGGYbBu33HyCovNjiIiItJgqSzVYX/9bBM3vr+GRZtTzI4iIiLSYKks1WG9wpoCMHdVMoZhmJxGRESkYVJZqsNuvDQELzdnkg6fZNXuY2bHERERaZBUluowbw9XbugZDMCcVftMTiMiItIwqSzVcbf3CwNgWcJhko/mmhtGRESkAVJZquPa+DVmYAc/DAPmrk42O46IiEiDo7LkACZd1hqABRsPkZNfZHIaERGRhkVlyQFc0c6XS/y8OFlQzIKNh8yOIyIi0qCoLDkAi8XCxNPnLn28OhmbTcsIiIiI2IvKkoO4rkcwTTxcSD6Wx/KEw2bHERERaTBUlhyEl7sLN10aAuhEbxEREXtSWXIgE6LCcLLA70lHScrIMTuOiIhIg6Cy5EBCmnkyKCIAgDkaXRIREbELlSUHU7aMwMJNh8jMKzQ5jYiISP2nsuRg+rZpRnhgE/KLbHy1/qDZcUREROo9lSUHY7FYuOP06NIna/ZTXGIzOZGIiEj9prLkgEZ3C6KppyspmadYsjPD7DgiIiL1msqSA/JwdeaWPq0AmLMq2dwwIiIi9ZzKkoOK7huGi5OFdcnH2Z6SZXYcERGRektlyUEFWj0Y3rkFoEUqRUREapPKkgMru1/c4rhUjp4sMDeMiIhIPaWy5MB6tPKha7CVwhIbX6w9YHYcERGRekllyYFZLJbyRSo/i91PYbGWERAREalpKksO7prOLfBr4s7hnAJ+2p5mdhwREZF6R2XJwbm5OHFbn1AAPtIyAiIiIjVOZakeuKVPK9ycndhyMJPNB06YHUdERKReUVmqB/yauDOqaxCgRSpFRERqmspSPTHpsjAAftyWRnpWvrlhRERE6hGVpXqiU0srl4Y1pdhm8FnsfrPjiIiI1BsqS/VI2TICX6w7QH5RiclpRERE6geVpXpkSGQALX0acTy3kMVbUs2OIyIiUi+oLNUjLs5OREeVLiMwZ1UyhmGYnEhERMTxqSzVMzddGoKHqxPxadms3Xfc7DgiIiIOT2WpnvHxdGNs92AA5moZARERkYumslQPlS0j8MvOdA4ezzM3jIiIiINTWaqH2gc0oX9bX2wGfKplBERERC6KylI9NbFfGADz1h0gr7DY3DAiIiIOTGWpnroq3J/Q5p5k5xezcFOK2XFEREQclspSPeXkZOH2qDAA5q7WMgIiIiLVpbJUj43rFYyXmzO7D5/k96SjZscRERFxSCpL9VgTD1fG9QoBYM6qfSanERERcUwqS/Xc7f3CsFhgecIR9h3NNTuOiIiIw1FZquda+3pxZQd/AD5enWxuGBEREQekstQAlC0jMH/DQbLzi8wNIyIi4mBUlhqAy9v50ta/MbmFJczfcMjsOCIiIg5FZakBsFgs5aNLH69OpsSmZQRERETOl8pSA3Fdj5Z4e7hw4Hgey3cdNjuOiIiIw1BZaiA83Vy4qXcrAOas1jICIiIi50tlqQGZEBWKkwVW7T5GYkaO2XFEREQcgsOUpRMnThAdHY3VasVqtRIdHU1mZmaV+5w8eZIpU6YQHBxMo0aNiIiI4N133z1juzVr1nDVVVfh5eWFj48PAwcO5NSpU7X0TswT3NSTIZGBAMxZlWxuGBEREQfhMGXplltuIS4ujpiYGGJiYoiLiyM6OrrKfaZOnUpMTAyfffYZ8fHxTJ06lXvvvZdvv/22fJs1a9YwbNgwhgwZwrp161i/fj1TpkzByclhDs0FmXRZGACLNh8iM6/Q3DAiIiIOwGI4wB1W4+PjiYyMJDY2lj59+gAQGxtLVFQUu3btokOHDpXu16lTJ8aPH8+TTz5Z/lzPnj255pprePbZZwHo27cvgwcPLv+6OrKzs7FarWRlZeHt7V3t17EHwzC45s2VxKdl8+iwcP468BKzI4mIiJjifP9+O8TwyZo1a7BareVFCUpLjtVqZfXq1Wfdr3///ixevJiUlBQMw2D58uUkJiYydOhQAA4fPszatWvx9/enX79+BAQEMGDAAFauXFnr78ksFoulfHTp0zXJFJfYzA0kIiJSxzlEWUpPT8ff3/+M5/39/UlPTz/rfm+++SaRkZEEBwfj5ubGsGHDeOedd+jfvz8Ae/fuBWDGjBlMnjyZmJgYevTowdVXX01SUtJZX7egoIDs7OwKD0cyumsQzb3cSM3K55edGWbHERERqdNMLUszZszAYrFU+diwYQNQOiLyZ4ZhVPp8mTfffJPY2FgWL17Mxo0befXVV/nb3/7G0qVLAbDZSkdV7r77biZNmkT37t15/fXX6dChAx999NFZX3fmzJnlJ5pbrVZCQkIu5jDYnYerM7f0Ob2MwCotIyAiIlIVFzN/+JQpU7jpppuq3CYsLIytW7eSkXHmCMiRI0cICAiodL9Tp07x+OOPs2jRIkaMGAFAly5diIuL45VXXmHQoEG0aNECgMjIyAr7RkREcODAgbNmmj59Og8++GD519nZ2Q5XmG7rG8q7K/awPvkE21Oy6NTSanYkERGROsnUsuTr64uvr+85t4uKiiIrK4t169bRu3dvANauXUtWVhb9+vWrdJ+ioiKKiorOuKrN2dm5fEQpLCyMoKAgEhISKmyTmJjI8OHDz5rH3d0dd3f3c+auywK8PbimcwsWb0llzqpkXr2xq9mRRERE6iSHOGcpIiKCYcOGMXnyZGJjY4mNjWXy5MmMHDmywpVw4eHhLFq0CABvb28GDBjAtGnTWLFiBfv27WPu3Ll88sknjB07Fiid2ps2bRpvvvkmCxYsYPfu3Tz55JPs2rWLO++805T3ak9lJ3p/tyWVIzkF5oYRERGpo0wdWboQn3/+Offddx9DhgwBYPTo0cyePbvCNgkJCWRlZZV/PW/ePKZPn86tt97K8ePHCQ0N5fnnn+eee+4p3+aBBx4gPz+fqVOncvz4cbp27cqSJUu45JL6f0l991ZN6RbiQ9zBTL5Ye4D7B7UzO5KIiEid4xDrLNV1jrTO0p99G5fC/fPi8GvizqpHr8LNxSEGG0VERC5avVpnSWrP8E4t8G/izpGcAn7clmZ2HBERkTpHZamBc3NxIrpvKFC6jIAGGkVERCpSWRJu6dMKNxcnthzKYtOBTLPjiIiI1CkqS0Lzxu6M7hoEaJFKERGRP1NZEuB/ywj8tD2dtKxT5oYRERGpQ1SWBICOQVZ6t25Gic3gs9j9ZscRERGpM1SWpNwdp0eXvlh7gPyiEnPDiIiI1BEqS1JuUEQALX0acSKviG/jUsyOIyIiUieoLEk5F2cnJkSVLSOQrGUEREREUFmSP7np0lY0cnVmV3oOsXuPmx1HRETEdCpLUoHV05XrerQEtIyAiIgIqCxJJSb2CwNgaXwGB4/nmRtGRETEZCpLcoZ2AU24vJ0vNgM+WZNsdhwRERFTqSxJpcoWqZy3/iC5BcXmhhERETGRypJUamB7f8Kae5KTX8zCTYfMjiMiImIalSWplJOThdtPn7s0d3UyNpuWERARkYZJZUnO6oaewTR2d2HPkVx+333U7DgiIiKmUFmSs2ri4cq4XsGAlhEQEZGGS2VJqnR7VBgWC6xIOMKeIyfNjiMiImJ3KktSpTBfL67q4A/AJ6uTzQ0jIiJiApUlOadJl7UGYMHGQ2TnF5mcRkRExL5UluScLmvbnHb+jcktLOE/6w+aHUdERMSuVJbknCwWCxNPL1L58ZpkSrSMgIiINCAqS3JerusejLWRKwePn2LZrsNmxxEREbEblSU5L43cnLmpdwigZQRERKRhUVmS8zYhKgwnC6zec4xd6dlmxxEREbELlSU5by19GjG0YyAAc1clmxtGRETETlSW5IKULSOwaHMKJ3ILTU4jIiJS+1SW5IJcGtaUjkHeFBTb+HL9AbPjiIiI1DqVJbkgFoulfHTp0zX7KSqxmZxIRESkdqksyQUb2aUFzb3cSMvK5+cd6WbHERERqVUqS3LBPFydubVPK0AneouISP2nsiTVclvfUFydLWzYf4Jth7LMjiMiIlJrVJakWvy9PRjRuQWgRSpFRKR+U1mSapt4+kTv77amcjgn3+Q0IiIitUNlSaqtW4gP3Vv5UFRi8MVaLSMgIiL1k8qSXJSyZQQ+iz1AQXGJyWlERERqnsqSXJThnQIJ8Hbn6MkCftiaZnYcERGRGqeyJBfF1dmJ6L6hAMxZlYxhGCYnEhERqVkqS3LRbu7dCjcXJ7alZLHpwAmz44iIiNQolSW5aM0buzOmWxAAH2mRShERqWdUlqRGTOxXeqJ3zPZ0UjNPmZxGRESk5qgsSY2IDPKmT+tmlNgMPovdb3YcERGRGqOyJDWmbBmBL9cdIL9IywiIiMjFO3g8jzmr9mGzmXcBkcqS1JjBkQEEN23EibwivtmcYnYcERFxcDabwbQFW/jHdzt54cd403KoLEmNcXaycHtUGKBlBERE5OJ9tnY/sXuP08jVmeioUNNyqCxJjbqxVwiNXJ1JyMhhzd5jZscREREHdeBYHjN/3AXAY8PDCW3uZVoWlSWpUVZPV67v2RIoHV0SERG5UDabwcMLtnCqqIS+bZqVL35sFpUlqXFlywgsjc/gwLE8k9OIiIij+WRNMuv2HcfTzZmXru+Kk5PF1DwqS1Lj2vo35or2fhgGfLwm2ew4IiLiQJKP5jIrpnT6bfrwcFo19zQ5kcqS1JJJ/cIA+M/6g+QWFJsbRkREHILNZvDIgq3kF9mIatOcW/uYO/1WRmVJasWA9n608fUip6CYrzcdMjuOiIg4gLmrk1mXfBwvN2deuqGL6dNvZVSWpFY4OVm4/fTo0txVyaYuJiYiInXfvqO5vPTz6em3ayIIaWb+9FsZlSWpNdf3DKaJuwt7j+byW9IRs+OIiEgdVWIzmDZ/C/lFNvq39eXWPq3MjlSBypLUmsbuLozrFQKUji6JiIhUZs6qfWzYf4LG7i7Mur4zFkvdmH4ro7IktWpivzAsFvgt8Qi7D580O46IiNQxe46c5OWfEwB4/JoIgpvWnem3MipLUqtaNffk6vAAAD5enWxuGBERqVPKpt8Kim1c3s6Xm3uHmB2pUipLUusmXRYGwNebDpF1qsjcMCIiUmd8tHIfmw5knp5+61Lnpt/KqCxJret3SXM6BDQhr7CE+RsOmh1HRETqgN2HT/LyL6XTb0+MiKClTyOTE52dypLUOovFwsTTo0tzVydTomUEREQatBKbwcPzt1BYbOOK9n6Mv7RuTr+VUVkSuxjTrSU+nq4cOnGKpfEZZscRERETffD7XuIOZtLE3YUX6+DVb3+msiR20cjNmZsuLV03Q8sIiIg0XLsP5/DakkQAnhwVSQtr3Z1+K6OyJHYzISoUZycLa/YeIz4t2+w4IiJiZ8UlNh6av5XCYhtXdvBjXM9gsyOdF4cpSydOnCA6Ohqr1YrVaiU6OprMzMwq9zl58iRTpkwhODiYRo0aERERwbvvvlthm/T0dKKjowkMDMTLy4sePXqwYMGCWnwnDVeQTyOGdQwENLokItIQ/ev3vWw5mEkTDxdmXld3r377M4cpS7fccgtxcXHExMQQExNDXFwc0dHRVe4zdepUYmJi+Oyzz4iPj2fq1Knce++9fPvtt+XbREdHk5CQwOLFi9m2bRvXXXcd48ePZ/PmzbX9lhqksmUEvolL4XhuoblhRETEbhIzcnhjSRIAT4/qSKDVw+RE588hylJ8fDwxMTH8+9//JioqiqioKD744AO+//57EhISzrrfmjVruP322xk4cCBhYWH85S9/oWvXrmzYsKHCNvfeey+9e/emTZs2PPHEE/j4+LBp0yZ7vLUGp2doUzq19Kag2MaX6w6YHUdEROyguMRWevVbiY2rwv25vkdLsyNdEIcoS2vWrMFqtdKnT5/y5/r27YvVamX16tVn3a9///4sXryYlJQUDMNg+fLlJCYmMnTo0ArbfPXVVxw/fhybzca8efMoKChg4MCBtfmWGiyLxcKkfq0B+HTNfopKbCYnEhGR2vb+f/ey9VAW3h4uzLyu7l/99mcOUZbS09Px9/c/43l/f3/S09PPut+bb75JZGQkwcHBuLm5MWzYMN555x369+9fvs1XX31FcXExzZs3x93dnbvvvptFixZxySWXnPV1CwoKyM7OrvCQ8zeyawt8G7uTnp1PzPaz//cTERHHtys9mzeWll79NmN0RwK8HWf6rYypZWnGjBlYLJYqH2VTZpW1UMMwqmynb775JrGxsSxevJiNGzfy6quv8re//Y2lS5eWb/PEE09w4sQJli5dyoYNG3jwwQcZN24c27ZtO+vrzpw5s/xEc6vVSkhI3V5Mq65xd3Hm1j6lywjMWbXP5DQiIlJbik5PvxWVGAyK8Gdsd8eafitjMQzDtOWUjx49ytGjR6vcJiwsjC+++IIHH3zwjKvffHx8eP3115k0adIZ+506dQqr1cqiRYsYMWJE+fN33XUXhw4dIiYmhj179tC2bVu2b99Ox44dy7cZNGgQbdu25b333qs0U0FBAQUFBeVfZ2dnExISQlZWFt7e3ufz1hu8wzn5XDZrGUUlBt/+/TK6hviYHUlERGrYW78m8eqSRKyNXFky9Qr869ioUnZ2Nlar9Zx/v13smOkMvr6++Pr6nnO7qKgosrKyWLduHb179wZg7dq1ZGVl0a9fv0r3KSoqoqioCCenioNnzs7O2Gyl58nk5eUBVLlNZdzd3XF3dz9nbjk7/yYejOwSxKLNKcxdnczr47uZHUlERGpQfFo2by4rvfrtH6M71rmidCEc4pyliIgIhg0bxuTJk4mNjSU2NpbJkyczcuRIOnToUL5deHg4ixYtAsDb25sBAwYwbdo0VqxYwb59+5g7dy6ffPIJY8eOLd++bdu23H333axbt449e/bw6quvsmTJEsaMGWPGW21QypYR+H5rKoez880NIyIiNeaP02+DIwO4tluQ2ZEuikOUJYDPP/+czp07M2TIEIYMGUKXLl349NNPK2yTkJBAVlZW+dfz5s3j0ksv5dZbbyUyMpJZs2bx/PPPc8899wDg6urKjz/+iJ+fH6NGjaJLly588sknfPzxx1xzzTV2fX8NUZdgH3qGNqWoxOCztVpGQESkvnhn+R52pGbj4+nK82M7OdzVb39m6jlL9cX5znnKmb7bksq9X27Gt7Ebqx67CncXZ7MjiYjIRdiRmsW1s1dRbDP4503duLZb3T2p+3z/fjvMyJLUT8M6BRLo7cHRk4V8vyXN7DgiInIRCottPDx/K8U2g6EdAxjd1bGn38qoLImpXJ2diI4KBWDO6n1ooFNExHG9vXw38WnZNPV05bkxjrf45NmoLInpbu7dCncXJ7anZLNh/wmz44iISDVsT8ni7eW7AXjm2k74Nak/V42rLInpmnm5Meb0nPbcVcnmhhERkQtWOv22hWKbwfBOgYzs0sLsSDVKZUnqhEn9wwCI2ZFOauYpc8OIiMgFmb0siV3pOTTzcuPZMY5/9dufqSxJnRAe6E1Um+aU2Aw+WbPf7DgiInKeth3K4u0VewB49tpO+DauP9NvZVSWpM4oW6Tyy3UHOFVYYm4YERE5p4LiEh6ev4USm8GILi0YUc+m38qoLEmdcXVEACHNGpF1qohv4lLMjiMiIufw1q+7ScjIobmXG8+M7njuHRyUypLUGc5OFm6PCgNgziotIyAiUpdtPZTJu7+VTr89N6YTzevh9FsZlSWpU8b1CsHTzZnEjJOs3nPM7DgiIlKJP06/jeoaxPDO9XP6rYzKktQp1kau3NAzGIA5WkZARKRO+ufSJBIzTuLb2I1/1OPptzIqS1Ln3N4vDIBfd2Ww/1iuuWFERKSCuIOZvFc+/daZZl5uJieqfSpLUudc4teYAe39MAz4eLWWERARqSvyi0qn32wGXNstiGGdAs2OZBfVKku5ufrXvtSusmUE5m84yMmCYnPDiIgIAK8vTWT34ZP4NnZnxqj6P/1WplplKSAggDvuuIOVK1fWdB4RAK5o50cbXy9yCor5euMhs+OIiDR4mw6c4IP/7gXghbGdaNoApt/KVKssffnll2RlZXH11VfTvn17Zs2aRWpqak1nkwbMycnCxNOjS3NXJ2OzaRkBERGz5BeVMO309NvY7i0Z0rFhTL+VqVZZGjVqFF9//TWpqan89a9/5csvvyQ0NJSRI0eycOFCios1bSIX7/oewTTxcGHf0Vx+SzxidhwRkQbrtSWJ7DmSi18Td54eFWl2HLu7qBO8mzdvztSpU9myZQuvvfYaS5cu5YYbbiAoKIinnnqKvLy8msopDZCXuwvje4UA8NGqfSanERFpmDbuP8EHv5dOv80c2xkfz4Yz/VbmospSeno6L730EhERETz22GPccMMN/Prrr7z++ussWrSIMWPG1FBMaagmRIVhscDvSUfZfTjH7DgiIg1K2fSbYcB1PVoyKDLA7EimcKnOTgsXLmTOnDn8/PPPREZG8ve//53bbrsNHx+f8m26detG9+7dayqnNFCtmnsyKCKAJTszmLs6mefGdDY7kohIg/HKzwnsPZpLgLc7T49sOFe//Vm1RpYmTZpEUFAQq1atIi4ujilTplQoSgBt2rTh//7v/2oiozRwZcsIfL0xhay8InPDiIg0EBuSj/Ph6VMgZl7XGaunq8mJzFOtkaW0tDQ8PT2r3KZRo0Y8/fTT1Qol8kdRbZoTHtiEXek5fLXhAH+54hKzI4mI1GunCksXnzQMuKFnMFeFN8zptzLVGlkqLi4mOzv7jEdOTg6FhYU1nVEaOIvFwsTTt0D5ePV+SrSMgIhIrXr55wSSj+UR6O3BkyMb3tVvf1atsuTj40PTpk3PePj4+NCoUSNCQ0N5+umnsdlsNZ1XGqgx3VvS1NOVlMxTLNmZYXYcEZF6a92+48xZfXr67frOWBs13Om3MtUqS3PnziUoKIjHH3+cb775hkWLFvH444/TsmVL3n33Xf7yl7/w5ptvMmvWrJrOKw2Uh6szN/duBcAcLSMgIlIr8gqLmbagdPrtxl7BXNnB3+xIdUK1zln6+OOPefXVV7nxxhvLnxs9ejSdO3fm/fff59dff6VVq1Y8//zzPP744zUWVhq26KhQ3v/vXtbuO86O1Cw6BlnNjiQiUq+8FJPA/mN5tLB68ISm38pVa2RpzZo1lS4L0L17d9asWQNA//79OXDgwMWlE/mDFtZG5Xe4/nh1srlhRETqmdi9x5h7+rN11vVd8PbQ9FuZapWl4OBgPvzwwzOe//DDDwkJKV1x+dixYzRt2vTi0on8yR2nlxH4Ji6VYycLzA0jIlJP5BUW88iCrQDcdGkIA9r7mZyobqnWNNwrr7zCuHHj+Omnn7j00kuxWCysX7+eXbt2sWDBAgDWr1/P+PHjazSsSI9WTekSbGXroSy+XHeAKVe1MzuSiIjDe/GnXRw4nkeQ1YP/GxFhdpw6x2IYRrWuw96/fz/vvfceCQkJGIZBeHg4d999N2FhYTUcse7Lzs7GarWSlZWFt7e32XHqvUWbDzH1qy0EeLuz8tGrcHW+qLv2iIg0aKv3HOWWD9YC8Omdvbm8XcMZVTrfv98XPLJUVFTEkCFDeP/995k5c+ZFhRSpjms6t+D5H3aRkV3AT9vTGd01yOxIIiIOKbfgf9Nvt/Rp1aCK0oW44H+Su7q6sn37diwWS23kETkndxdnbuurZQRERC7WrJ92cejEKVr6NOLxazT9djbVmr+YMGFCpSd4i9jLrX1CcXN2YvOBTOIOZpodR0TE4azefZRPY/cD8NINXWjsXq3TmBuEah2ZwsJC/v3vf7NkyRJ69eqFl5dXhe+/9tprNRJO5Gz8mrgzsmsLFm5KYe6qfbxx05lLWYiISOVOFhQz7fT02219W3FZW1+TE9Vt1SpL27dvp0ePHgAkJiZW+J6m58ReJvVrzcJNKfywLY3Hr4nA39vD7EgiIg5h5o/xpGSeIrhpI6YP1/TbuVSrLC1fvrymc4hcsM7BVnqFNmXD/hN8FrufB4d0MDuSiEidtzLpKJ+vLV00+qUbuuCl6bdzuqhrrnfv3s3PP//MqVOnAKjmKgQi1TbpstYAfL72APlFJSanERGp23Lyi3j069LptwlRofS7RNNv56NaZenYsWNcffXVtG/fnmuuuYa0tDQA7rrrLh566KEaDShSlaEdA2hh9eBYbiHfb00zO46ISJ32wunpt5BmjXh0WLjZcRxGtcrS1KlTcXV15cCBA3h6epY/P378eGJiYmosnMi5uDg7ER0VCpQuI6DRTRGRyv038QhfrjsIwMs3dNX02wWoVln65ZdfePHFFwkODq7wfLt27di/f3+NBBM5Xzdf2goPVyd2pGazPvmE2XFEROqc7PwiHjs9/TaxXxh92zQ3OZFjqVZZys3NrTCiVObo0aO4u7tfdCiRC9HUy42x3VsCWqRSRKQyz38fT2pWPqHNPXlkmC6GuVDVKktXXHEFn3zySfnXFosFm83Gyy+/zJVXXllj4UTO18R+pSd6/7wjnZTMUyanERGpO1YkHOarDQexWEqn3zzdNP12oap1xF5++WUGDhzIhg0bKCws5JFHHmHHjh0cP36cVatW1XRGkXPqENiEfpc0Z/WeY3yyJlnrhoiIAFmninjs621A6fRb79bNTE7kmKo1shQZGcnWrVvp3bs3gwcPJjc3l+uuu47NmzdzySWX1HRGkfNStozAvHUHySssNjmNiIj5nvt+J+nZ+YQ19+SRobr6rbqqPRYXGBjIP/7xj5rMInJRrgr3p1UzTw4cz2PR5hRu7RNqdiQREdMs33WY+RsPlU6/jetKIzdnsyM5rGqXpczMTNatW8fhw4ex2WwVvjdhwoSLDiZyoZydLEyICuW5H+KZuyqZW3q30u13RKRBysor4rGFpVe/3XFZay4N0/TbxahWWfruu++49dZbyc3NpUmTJhX+IFksFpUlMc2Nl4bw+pJEkg6fZNXuY/Rvp9VpRaTheeb7nWRkF9Da14uHdSuoi1atc5Yeeugh7rjjDnJycsjMzOTEiRPlj+PHj9d0RpHz5u3hyg09S9f/0jICItIQ/RqfwdebSqffXhnXRdNvNaBaZSklJYX77ruv0rWWRMx2e78wAJYlHCb5aK65YURE7Cgrr4jpC0uvfrurf2t6hmr6rSZUqywNHTqUDRs21HQWkRrRxq8xAzv4YRjw8Zpks+OIiNjNP77bweGcAtr4efGQpt9qTLXOWRoxYgTTpk1j586ddO7cGVdX1wrfHz16dI2EE6muSZe1ZkXCEeZvOMSDg9vTxMP13DuJiDiwJTszWLg5BScLvDKuKx6umn6rKdUqS5MnTwbgmWeeOeN7FouFkpKSi0slcpGuaOfLJX5e7DmSy4KNh8rXYBIRqY8y8wp5fFHp9Nvky9vQo1VTkxPVL9WahrPZbGd9qChJXWCxWJh4uiB9vDoZm80wOZGISO2ZsXgHR3IKuMTPi6mD25sdp965oLJ0zTXXkJWVVf71888/T2ZmZvnXx44dIzIyssbCiVyM67q3pImHC8nH8liReNjsOCIiteLnHel8E5eKkwVevbGbpt9qwQWVpZ9//pmCgoLyr1988cUKSwUUFxeTkJBQc+lELoKXuws3XRoCwJxVyeaGERGpBSdyC/m/RdsB+MsVl9AtxMfcQPXUBZUlwzCq/FqkrpkQFYaTBX5POkpSRo7ZcUREatTTi3dw9GQB7fwb88CgdmbHqbeqdc6SiKMIaebJ4MgAAOauTjY3jIhIDYrZnsbiLak4O1l09Vstu6CyZLFYzrjXlu69JXXdxH6lJ3ov3JRCVl6RyWlERC7e8dxCnvimdPrtngFt6Krpt1p1QUsHGIbBxIkTcXd3ByA/P5977rkHLy8vgArnM4nUFX3bNCM8sAm70nOYt/4Adw+4xOxIIiIX5alvt3P0ZCEdAppw39WafqttFzSydPvtt+Pv74/VasVqtXLbbbcRFBRU/rW/v79uoit1jsVi4Y7Tywh8smY/xSU2kxOJiFTfj9vS+H5rWvn0m7uLpt9q2wWNLM2ZM6e2cojUqtHdgpgVs4uUzFMsjc9gWKcWZkcSEblgx04W8OTp6be/DbyEzsFWkxM1DDrBWxoED1dnbu5duozAR1pGQEQc1FPf7uBYbiHhgU249ypNv9mLypI0GNF9w3BxsrBu33F2pGadewcRkTrk+62p/LDtf9Nvbi76E24vDnOkT5w4QXR0dPn5UdHR0RVWD69MRkYGEydOJCgoCE9PT4YNG0ZSUlKFbQoKCrj33nvx9fXFy8uL0aNHc+jQoVp8J2KWQKsHwzuXTr9pkUoRcSRHcv43/fb3K9vSqaWm3+zJYcrSLbfcQlxcHDExMcTExBAXF0d0dPRZtzcMgzFjxrB3716+/fZbNm/eTGhoKIMGDSI3N7d8uwceeIBFixYxb948Vq5cycmTJxk5cqTucVdPTbosDIDFcakcPamrN0Wk7jMMgye/2c6JvCIiWngz5cq2ZkdqcCyGAyzDHR8fT2RkJLGxsfTp0weA2NhYoqKi2LVrFx06dDhjn8TERDp06MD27dvp2LEjACUlJfj7+/Piiy9y1113kZWVhZ+fH59++injx48HIDU1lZCQEH788UeGDh16Xvmys7OxWq1kZWXh7e1dQ+9aaoNhGIx5exVbDmXx0OD23KtLbkWkjlu8JZX7vtyMi5OFb6dcRscgjSrVlPP9++0QI0tr1qzBarWWFyWAvn37YrVaWb16daX7lK355OHhUf6cs7Mzbm5urFy5EoCNGzdSVFTEkCFDyrcJCgqiU6dOZ31dcWwWi4VJp5cR+DR2P4XFWkZAROquwzn5PPVt6fTblKvaqiiZxCHKUnp6Ov7+/mc87+/vT3p6eqX7hIeHExoayvTp0zlx4gSFhYXMmjWL9PR00tLSyl/Xzc2Npk2bVtg3ICDgrK8LpUUsOzu7wkMcxzWdW+DfxJ3DOQX8tD3N7DgiIpUyDIMnFm0nM6+IyBbe/F3Tb6YxtSzNmDGj/BYqZ3ts2LABqPy2KoZhnPV2K66urnz99dckJibSrFkzPD09WbFiBcOHD8fZueoFvKp6XYCZM2eWn2hutVoJCQm5gHctZnNzceK2vqGATvQWkbpr8ZZUftmZgatz6dVvrs4OMb5RL13QopQ1bcqUKdx0001VbhMWFsbWrVvJyMg443tHjhwhICDgrPv27NmTuLg4srKyKCwsxM/Pjz59+tCrVy8AAgMDKSws5MSJExVGlw4fPky/fv3O+rrTp0/nwQcfLP86OztbhcnB3Ny7FbOX7SbuYCabD5yge6um595JRMRODmfn89S3OwC496p2RAbpfFgzmVqWfH198fX1Ped2UVFRZGVlsW7dOnr37g3A2rVrycrKqrLUlLFaS+d4k5KS2LBhA88++yxQWqZcXV1ZsmQJN954IwBpaWls376dl1566ayv5+7uXn5/PHFMfk3cGdU1iK83HWLOqmSVJRGpMwzD4PFF28k6VUSnlt78daDuZ2k2hxjTi4iIYNiwYUyePJnY2FhiY2OZPHkyI0eOrHAlXHh4OIsWLSr/ev78+axYsaJ8+YDBgwczZsyY8hO6rVYrd955Jw899BC//vormzdv5rbbbqNz584MGjTI7u9T7KtsGYEft6WRnpVvbhgRkdO+iUthabym3+oSh/kv8Pnnn9O5c2eGDBnCkCFD6NKlC59++mmFbRISEsjK+t/KzGlpaURHRxMeHs59991HdHQ0X375ZYV9Xn/9dcaMGcONN97IZZddhqenJ9999905z2sSx9eppZXeYc0othl8vna/2XFERMjIzmfG4p0A3H91O8IDNf1WFzjEOkt1ndZZclw/bkvjb59vormXG6seuwoPV5VkETGHYRjc9fEGft11mM4trSz6Wz9cNKpUq+rVOksitWVIZAAtfRpxLLeQxVtSzY4jIg3Ywk0p/LrrMG7OTrx6Y1cVpTpE/yWkQXNxdiI66n/LCGigVUTMkJ6Vz4zvSq9+u39QO9oHNDE5kfyRypI0eDddGoKHqxPxadms23fc7Dgi0sAYhsH0hVvJyS+ma7CVu69oY3Yk+ROVJWnwfDzdGNs9GNAilSJifws2HmJ5whHcnJ14ZZym3+oi/RcR4X/LCPyyM52Dx/PMDSMiDUZa1ime+a706repg9vTTtNvdZLKkgjQPqAJ/dv6YjNKb7ArIlLbDMPgsa+3kVNQTLcQHyZf3trsSHIWKksip03sFwbAvHUHyCssNjeMiNR78zcc4rfEI7i5aPqtrtN/GZHTrgr3J7S5J9n5xSzclGJ2HBGpx1IzT/Hs96XTbw8Nbk9b/8YmJ5KqqCyJnObkZOH2qDAA5q7WMgIiUjsMw+DRr7eSU1BM91Y+3HW5rn6r61SWRP5gXK9gvNyc2X34JCt3HzU7jojUQ/PWH+T3pKO4n55+c3aymB1JzkFlSeQPmni4Mq5XCKBlBESk5qVknuL5H+IBmDa0A5f4afrNEagsifzJ7f3CsFhg2a7D7Duaa3YcEaknDMPg0QVbOVlQTK/Qpky6TFe/OQqVJZE/ae3rxZUd/AH4eHWyuWFEpN74Yt0BVu4unX576YYumn5zICpLIpUoW6Ry/oaD5OQXmRtGRBzeweN5vHB6+u2RYeG00fSbQ1FZEqlE/7a+tPVvTG5hCfM3HDI7jog4MJut9Oq33MISLg1ryqTTa7qJ41BZEqmExWIpX6Ty4zXJlNi0jICIVM/n6w6wes8xPFydePmGrjhp+s3hqCyJnMV1PVri7eHC/mN5LN912Ow4IuKADh7PY+aPpdNvjw4LJ8zXy+REUh0qSyJn4enmws29WwGli1SKiFwIm81g2oIt5BWW0Lt1s/JFb8XxqCyJVCE6KhQnC6zcfZTEjByz44iIA/ls7X5i9x6nkaszL9/QRdNvDkxlSaQKwU09GRIZCGiRShE5fweO5THzx10APDY8nNDmmn5zZCpLIudQtozAos2HyMwrNDeMiNR5NpvBwwu2cKqohL5tmhHdN9TsSHKRVJZEzqF362ZEtvAmv8jGvPUHzY4jInXcJ2uSWbfvOJ5uzrx0va5+qw9UlkTOwWKxMPH06NInq5MpLrGZG0hE6qzko7m8GJMAwPTh4bRq7mlyIqkJKksi52F01yCae7mRmpXPLzszzI4jInWQzWbwyIKtnCoqIapNc27to+m3+kJlSeQ8eLg6c0uf0mUE5qzaZ3IaEamL5q5OZl3ycbzcnHlJV7/VKypLIufptr6huDhZWJ98gu0pWWbHEZE6ZN/RXF76ufTqt+nXRBDSTNNv9YnKksh5CvD24JrOLQAtIyAi/1NiM5g2fwv5RTb6t/Xl1tOj0FJ/qCyJXICyZQS+25LKkZwCc8OISJ0wZ9U+Nuw/QWN3F2Zd3xmLRdNv9Y3KksgF6N6qKd1CfCgssfHF2gNmxxERk+05cpKXfy69+u3xayIIbqrpt/pIZUnkApWNLn22dj+FxVpGQKShKpt+Kyi2cXk7X27uHWJ2JKklKksiF2h4pxb4N3HnSE4BP25LMzuOiJjko5X72HQg8/T0WxdNv9VjKksiF8jNxan89gVzVu3DMAyTE4mIve0+fJKXfymdfntiRAQtfRqZnEhqk8qSSDXc0qcVbi5ObDmUxeaDmWbHERE7KrEZTFuwhcJiG1e092P8pZp+q+9UlkSqoXljd67tGgRoGQGRhubfv+9l84FMmri78KKufmsQVJZEqqnsfnE/bUsjPSvf3DAiYhe7D+fw6pJEAJ4cFUkLq6bfGgKVJZFq6hhkpXfrZhTbDD6NTTY7jojUsuISGw/N30phsY0rO/gxrmew2ZHETlSWRC7CHadHl75Ye4D8ohJzw4hIrfrX73vZcjCTJh4uzLxOV781JCpLIhdhUEQALX0acSKviMVxqWbHEZFakpiRwxtLkgB4elRHAq0eJicSe1JZErkILs5OTIgqXUbgIy0jIFIvFZfYeHj+FgpLbFwV7s/1PVqaHUnsTGVJ5CLddGkrGrk6sys9h9i9x82OIyI17P3/7mXroSy8PVyYeZ2ufmuIVJZELpLV05XrTv9Lc+7qfSanEZGalJCewxtLS69+mzG6IwHemn5riFSWRGrAxH5hACzZmcHB43nmhhGRGlF0evqtqMRgUIQ/Y7tr+q2hUlkSqQHtAppweTtfbAZ8sibZ7DgiUgPeW7GHbSlZWBu58sJYTb81ZCpLIjVk0ullBOatP0huQbG5YUTkosSnZfPmstKr3/4xuiP+mn5r0FSWRGrIwPb+hDX3JCe/mIWbU8yOIyLV9Mfpt8GRAVzbLcjsSGIylSWRGuLkZOH20+cuzV21D5tNywiIOKJ3lu9hR2o2Pp6uPD+2k6bfRGVJpCbd0DOYxu4u7DmSy++7j5odR0Qu0I7ULN764/RbE02/icqSSI1q4uHKuF6l94uas0rLCIg4ksJiGw/P30qxzWBoxwBGd9X0m5RSWRKpYbdHhWGxwIqEI+w9ctLsOCJynt5evpv4tGyaerry3Bhd/Sb/o7IkUsPCfL24qoM/AB+vTjY3jIicl+0pWby9fDcAz1zbCb8m7iYnkrpEZUmkFky6rDUACzYeIju/yOQ0IlKV0um3LRTbDIZ3CmRklxZmR5I6RmVJpBZc1rY57QMak1tYwn/WHzQ7johUYfayJHal59DMy41nx+jqNzmTypJILbBYLEzsVzq69PGaZPKLSkxOJCKV2Z6Sxdsr9gDw7LWd8G2s6Tc5k8qSSC0Z270lPp6uHDx+ilFvrWTLwUyzI4nIHxQUl/DQf7ZQYjMY0aUFIzT9JmehsiRSSxq5OTP75h74NnYn6fBJrnt3NS/F7KKgWKNMInXBW7/uJiEjh+ZebjwzuqPZcaQOU1kSqUX92/myZOoVjO4aRInN4J0Vexj11kq2Hso0O5pIg7b1UCbv/lY6/fbcmE401/SbVEFlSaSWNfVy482bu/PebT3wbexGYsZJxr6zmld+TtAok4gJCopLeHh+6fTbqK5BDO+s6TepmsqSiJ0M69SCX6YOYGSXFpTYDGYv383ot1axPSXL7GgiDco/lyaRmHES38Zu/EPTb3IeVJZE7KiZlxuzb+nBu7f2oLmXGwkZOVz79ipe+yWBwmKb2fFE6r24g5m8Vz791plmXm4mJxJHoLIkYoLhnVvwy9QrGNG5dJTpzWW7GT17pUaZRGpRflHp9JvNgGu7BTGsU6DZkcRBqCyJmKR5Y3fevrUHb9/Sg2ZebuxKz2HM26t4bUmiRplEasEbS5PYffgkvo3dmTFK029y/lSWREw2okvpKNPwToEU2wze/DWJa99exc7UbLOjidQbmw6c4F//LZ1+e2FsJ5pq+k0ugMqSSB3g29idd27twVs3d6eppyvxadmMnr2SN5YmUlSiUSaRi5FfVMK009NvY7u3ZEhHTb/JhXGYsnTixAmio6OxWq1YrVaio6PJzMyscp+MjAwmTpxIUFAQnp6eDBs2jKSkpPLvHz9+nHvvvZcOHTrg6elJq1atuO+++8jK0nkjYn8Wi4VRXYP4ZeoAhnUsHWV6Y2kSY95eRXyaRplEquu1JYnsOZKLXxN3nh4VaXYccUAOU5ZuueUW4uLiiImJISYmhri4OKKjo8+6vWEYjBkzhr179/Ltt9+yefNmQkNDGTRoELm5uQCkpqaSmprKK6+8wrZt25g7dy4xMTHceeed9npbImfwa+LOu7f14M2bu+Pj6cqO1NJRpjd/TdIok8gFKCy28e/f9/Lv3/cCMHNsZ3w8Nf0mF85iGIZhdohziY+PJzIyktjYWPr06QNAbGwsUVFR7Nq1iw4dOpyxT2JiIh06dGD79u107Fh6Il9JSQn+/v68+OKL3HXXXZX+rPnz53PbbbeRm5uLi4vLeeXLzs7GarWSlZWFt7d3Nd+lyJkO5+TzxKLt/LIzA4BOLb15ZVxXwgP1eyZyNoZhsGRnBjN/2sW+o6X/OL6xVzAv3dDV5GRS15zv32+HGFlas2YNVqu1vCgB9O3bF6vVyurVqyvdp6CgAAAPD4/y55ydnXFzc2PlypVn/VllB+x8i5JIbfJv4sH70T35503dsDZyZXtKNqPeWsnsZUkUa5RJ5Aw7UrO45YO1/OXTjew7motvY3dmXdeZmdd1MTuaODCHaATp6en4+/uf8by/vz/p6emV7hMeHk5oaCjTp0/n/fffx8vLi9dee4309HTS0tIq3efYsWM8++yz3H333VXmKSgoKC9jUNpMRWqLxWLh2m4tiWrTnMcXbWdpfAav/JLIzzsyeGVcVzoENjE7oojpDmfn8+ovifxn40EMA9xcnLirf2v+dmVbGrs7xJ86qcNMHVmaMWMGFoulyseGDRuA0j8Yf2YYRqXPA7i6uvL111+TmJhIs2bN8PT0ZMWKFQwfPhxnZ+czts/OzmbEiBFERkby9NNPV5l75syZ5SeaW61WQkJCqvHuRS6Mv7cHH0zoyevju2Jt5Mq2lCxGvbWSt5fv1iiTNFj5RSXMXpbEwFdW8NWG0qI0sksLfn1wAI8MC1dRkhph6jlLR48e5ejRo1VuExYWxhdffMGDDz54xtVvPj4+vP7660yaNKnK18jKyqKwsBA/Pz/69OlDr169ePvtt8u/n5OTw9ChQ/H09OT777+vMHVXmcpGlkJCQnTOktjN4ex8Hl+0jaXxhwHoGmzllXFdaRegUSZpGAzDYPGWVF6KSSAl8xQAXUN8eGpkBD1Dm5mcThzF+Z6z5FAneK9du5bevXsDsHbtWvr27XvWE7wrk5SURHh4OD/99BNDhgwBSg/U0KFDcXd358cff8TT0/OC8+kEbzGDYRgs3JTCP77bQXZ+MW7OTkwd3J7Jl7fGxdkhTkcUqZZNB07w7Pc72XwgE4AgqwePDg9nVJcgnJwqn20QqUy9KksAw4cPJzU1lffffx+Av/zlL4SGhvLdd9+VbxMeHs7MmTMZO3YsUHplm5+fH61atWLbtm3cf//99OzZk6+//hooHVEaPHgweXl5LFq0CC8vr/LX8vPzq3S6rjIqS2Km9KzSUaZlu06PMoX48Oq4LrT11yiT1C8pmad48addLN6SCoCnmzN/HXAJd13ehkZu5/d5LfJH5/v322Emcz///HPuu+++8hGh0aNHM3v27ArbJCQkVFhQMi0tjQcffJCMjAxatGjBhAkTePLJJ8u/v3HjRtauXQtA27ZtK7zWvn37CAsLq6V3I1JzAq0efHh7LxZsPMQz3+9ky8FMrnlzJQ8Obs/ky9vgrH9pi4PLLSjm3RV7+OD3vRQU27BY4IYewTw8tAMB3lWfNiFSExxmZKku08iS1BXpWfk8tnArKxKOANC9lQ8v39CVtv6NTU4mcuFKbAYLNh7klV8SOZJTep5on9bNeHJkJJ1aWk1OJ/VBvZuGq8tUlqQuMQyD+RsO8ez3O8kpKMbNxYmHh7Tnzv4aZRLHsXrPUZ77Pp6dp2/1E9rck8eviWBIZMBZr4IWuVAqS3aksiR1UWrmKR5buI3/JpaOMvVo5cPL47pyiZ9GmaTu2nc0lxd+jGfJ6VXrm3i4cP/V7ZgQFYabiy5ckJqlsmRHKktSVxmGwX82HOTZ7+M5WVCMu4sT04Z2YNJlrTXKJHVKVl4Rby5L4pM1yRSVGDg7Wbi1TyseGNSeZl66n5vUDpUlO1JZkrouJfMUj329ld+TStc16xXalJdu6EIbjTKJyYpKbHweu583fk0iM68IgIEd/Pi/ayK0bpjUOpUlO1JZEkdgGAbz1h/k+R80yiTmMwyD5QmHef6HePYcKb3ZbTv/xjwxMpIB7f1MTicNhcqSHaksiSNJyTzFowu2snJ36SjTpWFNefmGroT5ep1jT5GakZCew3M/7Cwf6Wzm5caDg9tz06UhWlBV7EplyY5UlsTRGIbBF+sO8MIP8eQWluDh6sQjQ8OZ2C9MKyBLrTl6soDXliQyb90BbAa4OTsx6bIw/n5VW7w9XM2OJw2QypIdqSyJozp4PI/HFm5l1e5jAPRu3YyXb+hCaHONMknNKSguYc6qZN5etpucgmIAhncK5LHh4fpdE1OpLNmRypI4MsMw+HztAV74MZ68whIauTrz6LAOTIjSKJNcHMMw+Gl7OjN/iufg8dKb3XZuaeWJERH0adPc5HQiKkt2pbIk9cHB43k8smAra/aWjjL1ad2Ml2/oSqvmF35zaZGthzJ59vudrE8+AUCAtzvThoZzXfeWKuFSZ6gs2ZHKktQXNpvB52v388KPuzhVVIKnmzOPDQ/ntj6h+gMn5yUt6xQvxySwcHMKAB6uTvzliku4Z0AbPN0c5nak0kCoLNmRypLUNweO5TFtwRbW7jsOQN82paNMIc00yiSVyyss5v3f9vL+f/eQX2QD4LruLZk2rAMtrI1MTidSOZUlO1JZkvrIZjP4NHY/s3763yjT9GsiuLV3K40ySTmbzWDR5hRe/jmB9Ox8oHTR0ydHRtI1xMfccCLnoLJkRypLUp/tP5bLtPlbWZdcOsrU75LmvHh9F40yCev2Hee5H3ay9VAWAMFNGzF9eATXdA7UzW7FIags2ZHKktR3NpvBx2uSeTFmF/lFNrzcnHl8RAS39G6lP4oN0IFjecyKiefHbekANHZ34e9XtmXSZWF4uDqbnE7k/Kks2ZHKkjQUyUdzmbZgS/kVTv3b+jLr+s4EN9UoU0OQnV/E28t2M2dVMoUlNpwscFPvVjw4uD2+jd3NjidywVSW7EhlSRoSm81gzupkXv65dJSpsbsLj18Twc29QzTKVE8Vl9iYt/4gry9J5FhuIQCXt/Pl/0ZEEB6ozzxxXCpLdqSyJA3RvqO5TJu/hQ37S0eZLm/ny6zru9DSR1c+1Sf/TTzCcz/sJDHjJABt/Lx4YkQEV3bwVzkWh6eyZEcqS9JQldgM5qzax8s/J1BQXDrK9MSICMZfqlEmR7f7cA7P/xDP8oQjAPh4uvLA1e24tW8orrrZrdQTKkt2pLIkDd2eIyeZNn8Lmw5kAnBFez9mXdeZII0yOZzjuYW8sTSRz9ceoMRm4OJkYUJUGPdf3Q6rp252K/WLypIdqSyJlI4yfbhyL6/8kkhhsY0m7i48OTKScb2CNcrkAAqLbXyyJpk3f00iO7/0ZreDIwOYPjycNn6NTU4nUjtUluxIZUnkf3YfPsm0BVvYfHqUaWAHP2Ze11mrONdRhmHwy84MZv4YT/KxPAAiWnjz5IgI+rX1NTmdSO1SWbIjlSWRikpsBv/+fS+vLjk9yuRxepSpp0aZ6pIdqVk8+/1OYveWLjjq29idaUPbc0PPEJy1Srs0ACpLdqSyJFK53YdzeGj+VrYczATgyg5+zLyuC4FWD3ODNXCHs/N55ZcE5m88hGGAm4sTky9vzV8HtqWxu252Kw2HypIdqSyJnF1xiY0Pft/H60sSKSyx4e3hwlOjOnJ9j5YaZbKz/KIS/v37Xt5ZsYe8whIARnUN4tFhHbSwqDRIKkt2pLIkcm5JGTk8PH8LW07fR+zqcH9euK4zAd4aZapthmGweEsqL/60i9Ss0pvddgvx4cmRkfQMbWpyOhHzqCzZkcqSyPkpLrHx/n/38s+lSeWjTDNGd2Rsd40y1ZaN+0/w7Pc7iTs9FRpk9eDR4eGM7hqkYy4NnsqSHaksiVyYhPTSUaZtKaWjTIMiAnhhbCf8NcpUYw6dyOPFmAS+25IKgKebM38beAl3Xd5GN7sVOU1lyY5UlkQuXNko0xtLEykqMbA2cuUfoztybTeNeFyMkwXFvLtiN//+fR8FxTYsFhjXM5iHh3RQGRX5E5UlO1JZEqm+XenZPDx/C9tTsoHShRCfH9sJ/yb6w34hSmwG8zcc5JVfEjl6sgCAvm2a8cSISDq1tJqcTqRuUlmyI5UlkYtTVGLjvRV7eHNZEkUlBj6epaNMOq/m/KzefZRnf4gnPq20cIY19+TxayIYHBmg4ydSBZUlO1JZEqkZ8WnZPPSfLew8/Ud/aMcAnhvTGb8m7iYnq5v2HjnJCz/uYml8BgDeHi7cd3U7JkSF4eaim92KnIvKkh2pLInUnKISG+8s38Nby5Iothk09XTlH9d2YlSXFholOS0rr4h//prEJ2uSKbYZODtZuK1PK+4f1J5mXm5mxxNxGCpLdqSyJFLzdqaWnstUNso0vFMgz47phG/jhjvKVFRi4/PY/bzxaxKZeUVA6aro/zcigrb+TUxOJ+J4VJbsSGVJpHYUFtt4e/lu3l6+m2KbQTMvN565tiMjuwSZHc2uDMNgecJhnv8hnj1HcgFoH9CYJ0ZEckV7P5PTiTgulSU7UlkSqV3bU7J4eP4WdqXnAHBN50CevbYTzRvAKNOu9Gye+z6elbuPAtDcy40Hh7RnfK8QXJx1XpLIxVBZsiOVJZHaV1hsY/ayJN5esYcSm0FzLzeeHdOJazq3MDtarTh6soBXf0nkq/UHsBng5uzEpP5h/P3Ktnh7uJodT6ReUFmyI5UlEfv58yjTiC4tePbaTvXmxOb8ohLmrErm7eW7OVlQDJSOpD02LIJWzXWzW5GapLJkRypLIvZVUFzCW7/u5t3f/jfK9NyYTgx34FEmwzD4cVs6M3+K59CJUwB0CbbyxIhIerduZnI6kfpJZcmOVJZEzLH1UCYPz99CYsZJAEZ1DeKZ0R1p6mCjTFsOZvLcDztZn3wCgEBvDx4Z1oEx3Vri5KTlEkRqi8qSHaksiZinoLiEN39N4t0Ve7AZ4NvYjefGdGZYp0Czo51TWtYpXo5JYOHmFAAauTpz94A2/OWKNni6uZicTqT+U1myI5UlEfNtOVg6ypR0uHSU6dpuQcwYVTdHmfIKi3nvt7386797yC+yAXBdj5Y8MjScQKvuiSdiLypLdqSyJFI35BeV8M9fk3j/t7JRJndeGNuJIR3rxiiTzWawcHMKL/+8i4zs0pvdXhrWlCdHRtIl2MfccCINkMqSHaksidQtcQczeeg/ceULOI7t3pKnR0Xi42neKNO6fcd59vudbEvJAiCkWSOmD49geKdA3cZFxCQqS3aksiRS9+QXlfD60kQ++O9ebAb4NXFn5tjODIoMsGuOA8fymPlTPD9tTwegibsLU65qy+39wvBwdbZrFhGpSGXJjlSWROquTQdOMG3+lvJRpuu6t+TpUR2xetbuwo7Z+UXMXrabuauSKSyx4WSBm3u3Yurg9g36/nYidYnKkh2pLInUbflFJby+JJF//b4Xw4AAb3dmXteZq8JrfpSpuMTGl+sP8vqSRI7nFgJweTtfnhgRSYdA3exWpC5RWbIjlSURx7Bxf+ko096jpaNM1/cI5qlRkVgb1cwo02+JR3j+h53l6z5d4ufFEyMiGdjBT+clidRBKkt2pLIk4jjyi0p49ZcE/r1yX/ko06zrunBluH+1X3P34Rye+yGeFQlHAPDxdGXqoPbc0qcVrrrZrUidpbJkRypLIo5nQ/Jxpi3Yyr7To0zjegbzxMgLG2U6nlvIG0sT+XztAUpsBq7OFiZEhXHfVe1q/ZwoEbl4Kkt2pLIk4phOFZbwyi8JfLSqdJQp0NuDWdd3ZmCHqkeZCottfLImmX/+mkROfunNbodEBjD9mgha+3rZI7qI1ACVJTtSWRJxbOuTjzNt/haSj+UBML5XCP83MgJvj4qjQ4Zh8POODGb+FM/+09tGtvDmiZER9LvE1+65ReTiqCzZkcqSiOM7VVjCSz/vYu7qZAwDWlg9ePH6LlzR3g+A7SlZPPfDTmL3HgdK122aNqQD1/cMxlk3uxVxSCpLdqSyJFJ/rN17jGkLtnLgeOnI0U2XhlBiM1iw6RCGAe4uTky+vA33DLyExu662a2II1NZsiOVJZH6Ja+wmJdiEpi7OrnC89d2C+KRYeG09GlkTjARqVHn+/db/ywSEfkTTzcXZozuyLBOgTz97Q6snq48NjycHq2amh1NREygkaUaoJElERERx3O+f7+1WpqIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoOU5ZOnDhBdHQ0VqsVq9VKdHQ0mZmZVe6TkZHBxIkTCQoKwtPTk2HDhpGUlFTptoZhMHz4cCwWC998803NvwERERFxSA5Tlm655Rbi4uKIiYkhJiaGuLg4oqOjz7q9YRiMGTOGvXv38u2337J582ZCQ0MZNGgQubm5Z2z/xhtvYLHo/k4iIiJSkUOs4B0fH09MTAyxsbH06dMHgA8++ICoqCgSEhLo0KHDGfskJSURGxvL9u3b6dixIwDvvPMO/v7+fPnll9x1113l227ZsoXXXnuN9evX06JFC/u8KREREXEIDjGytGbNGqxWa3lRAujbty9Wq5XVq1dXuk9BQQEAHh4e5c85Ozvj5ubGypUry5/Ly8vj5ptvZvbs2QQGBtbSOxARERFH5RBlKT09HX9//zOe9/f3Jz09vdJ9wsPDCQ0NZfr06Zw4cYLCwkJmzZpFeno6aWlp5dtNnTqVfv36ce211553noKCArKzsys8REREpH4ytSzNmDEDi8VS5WPDhg0AlZ5PZBjGWc8zcnV15euvvyYxMZFmzZrh6enJihUrGD58OM7OzgAsXryYZcuW8cYbb1xQ7pkzZ5afaG61WgkJCbmwNy4iIiIOw9RzlqZMmcJNN91U5TZhYWFs3bqVjIyMM7535MgRAgICzrpvz549iYuLIysri8LCQvz8/OjTpw+9evUCYNmyZezZswcfH58K+11//fVcfvnlrFixotLXnT59Og8++GD519nZ2SpMIiIi9ZTFMAzD7BDnEh8fT2RkJGvXrqV3794ArF27lr59+7Jr165KT/CuTFJSEuHh4fz0008MGTKE9PR0jh49WmGbzp07889//pNRo0bRunXr83rd871rsYiIiNQd5/v32yGuhouIiGDYsGFMnjyZ999/H4C//OUvjBw5skJRCg8PZ+bMmYwdOxaA+fPn4+fnR6tWrdi2bRv3338/Y8aMYciQIQAEBgZWelJ3q1atzrsoQel0IKBzl0RERBxI2d/tc40bOURZAvj888+57777yovO6NGjmT17doVtEhISyMrKKv86LS2NBx98kIyMDFq0aMGECRN48sknazxbTk4OgKbiREREHFBOTg5Wq/Ws33eIabi6zmazkZqaSpMmTerEwpZl51AdPHhQ04LoePyZjseZdEwq0vGoSMejovp0PAzDICcnh6CgIJyczn7Nm8OMLNVlTk5OBAcHmx3jDN7e3g7/i1yTdDwq0vE4k45JRToeFel4VFRfjkdVI0plHGKdJRERERGzqCyJiIiIVEFlqR5yd3fn6aefxt3d3ewodYKOR0U6HmfSMalIx6MiHY+KGuLx0AneIiIiIlXQyJKIiIhIFVSWRERERKqg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WRIRERGpgsqSiIiISBVUlkRERESqoLIkIiIiUgWVJREREZEqqCyJiIiIVEFlSUQatLCwMN544w2zY4hIHaayJCIOa9SoUQwaNKjS761ZswaLxcKmTZvsnEpE6huVJRFxWHfeeSfLli1j//79Z3zvo48+olu3bvTo0cOEZCJSn6gsiYjDGjlyJP7+/sydO7fC83l5eXz11VfceeedfP3113Ts2BF3d3fCwsJ49dVXz/p6ycnJWCwW4uLiyp/LzMzEYrGwYsUKAFasWIHFYuHnn3+me/fuNGrUiKuuuorDhw/z008/ERERgbe3NzfffDN5eXnlr2MYBi+99BJt2rShUaNGdO3alQULFtTk4RCRWqKyJCIOy8XFhQkTJjB37lz+eE/w+fPnU1hYSFRUFDfeeCM33XQT27ZtY8aMGTz55JNnlKvqmDFjBrNnz2b16tUcPHiQG2+8kTfeeIMvvviCH374gSVLlvDWW2+Vb//EE08wZ84c3n33XXbs2MHUqVO57bbb+O233y46i4jULovxx08YEREHs2vXLiIiIli2bBlXXnklAAMGDKBly5ZYLBaOHDnCL7/8Ur79I488wg8//MCOHTuA0hO8H3jgAR544AGSk5Np3bo1mzdvplu3bkDpyFLTpk1Zvnw5AwcOZMWKFVx55ZUsXbqUq6++GoBZs2Yxffp09uzZQ5s2bQC45557SE5OJiYmhtzcXHx9fVm2bBlRUVHlWe666y7y8vL44osv7HGoRKSaNLIkIg4tPDycfv368dFHHwGwZ88efv/9d+644w7i4+O57LLLKmx/2WWXkZSURElJyUX93C5dupT//wEBAXh6epYXpbLnDh8+DMDOnTvJz89n8ODBNG7cuPzxySefsGfPnovKISK1z8XsACIiF+vOO+9kypQpvP3228yZM4fQ0FCuvvpqDMPAYrFU2LaqwXQnJ6cztikqKqp0W1dX1/L/32KxVPi67DmbzQZQ/n9/+OEHWrZsWWE7d3f3c709ETGZRpZExOHdeOONODs788UXX/Dxxx8zadIkLBYLkZGRrFy5ssK2q1evpn379jg7O5/xOn5+fgCkpaWVP/fHk72rKzIyEnd3dw4cOEDbtm0rPEJCQi769UWkdmlkSUQcXuPGjRk/fjyPP/44WVlZTJw4EYCHHnqISy+9lGeffZbx48ezZs0aZs+ezTvvvFPp6zRq1Ii+ffsya9YswsLCOHr0KE888cRF52vSpAkPP/wwU6dOxWaz0b9/f7Kzs1m9ejWNGzfm9ttvv+ifISK1RyNLIlIv3HnnnZw4cYJBgwbRqlUrAHr06MF//vMf5s2bR6dOnXjqqad45plnystUZT766COKioro1asX999/P88991yN5Hv22Wd56qmnmDlzJhEREQwdOpTvvvuO1q1b18jri0jt0dVwIiIiIlXQyJKIiIhIFVSWRERERKqgsiQiIiJSBZUlERERkSqoLImIiIhUQWVJREREpAoqSyIiIiJVUFkSERERqYLKkoiIiEgVVJZEREREqqCyJCIiIlIFlSURERGRKvw/FsCLm/9axZsAAAAASUVORK5CYII="},"metadata":{}}],"execution_count":22}]} \ No newline at end of file diff --git a/universal_workflow_simple.ipynb b/universal_workflow_simple.ipynb index aaf8d2e..f4ad68b 100644 --- a/universal_workflow_simple.ipynb +++ b/universal_workflow_simple.ipynb @@ -1,646 +1 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Load Simple Workflow" - ] - }, - { - "metadata": {}, - "cell_type": "markdown", - "source": "## Plot" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "from python_workflow_definition.plot import plot" - }, - { - "metadata": {}, - "cell_type": "code", - "outputs": [], - "execution_count": null, - "source": "plot(file_name='workflow_simple.json')" - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Aiida " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Profile" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from python_workflow_definition.aiida import load_workflow_json\n", - "\n", - "from aiida import load_profile\n", - "load_profile()" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "workgraph = load_workflow_json(file_name='workflow_simple.json')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c1671fb385e3469ea269044a47160225", - "version_major": 2, - "version_minor": 1 - }, - "text/plain": [ - "NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# TODO: Create inputs rather than tasks out of data nodes\n", - "workgraph" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "03/24/2025 12:15:40 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: pickle_node3,pickle_node4\n", - "03/24/2025 12:15:49 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|on_wait]: Process status: Waiting for child processes: 1076, 1083\n", - "03/24/2025 12:16:27 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: pickle_node3, type: PYTHONJOB, finished.\n", - "03/24/2025 12:16:28 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: pickle_node4, type: PYTHONJOB, finished.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "invalid state\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "03/24/2025 12:16:29 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y1\n", - "03/24/2025 12:16:35 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|on_wait]: Process status: Waiting for child processes: 1098\n", - "03/24/2025 12:16:58 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: add_x_and_y1, type: PYTHONJOB, finished.\n", - "03/24/2025 12:16:59 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y_and_z2\n", - "03/24/2025 12:17:04 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|on_wait]: Process status: Waiting for child processes: 1111\n", - "03/24/2025 12:17:23 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|update_task_state]: Task: add_x_and_y_and_z2, type: PYTHONJOB, finished.\n", - "03/24/2025 12:17:25 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n", - "03/24/2025 12:17:25 PM <259264> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [1069|WorkGraphEngine|finalize]: Finalize workgraph.\n" - ] - } - ], - "source": [ - "\n", - "workgraph.run()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## executorlib" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from executorlib import SingleNodeExecutor" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.executorlib import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "with SingleNodeExecutor(max_workers=1) as exe:\n", - " result = load_workflow_json(file_name=\"workflow_simple.json\", exe=exe).result()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Jobflow" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/jan/mambaforge/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n", - " \"cipher\": algorithms.TripleDES,\n", - "/home/jan/mambaforge/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n", - " \"class\": algorithms.TripleDES,\n" - ] - } - ], - "source": [ - "from jobflow.managers.local import run_locally" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.jobflow import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "flow = load_workflow_json(file_name=\"workflow_simple.json\")" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2025-03-24 12:17:31,659 INFO Started executing jobs locally\n", - "2025-03-24 12:17:33,059 INFO Starting job - add_x_and_y (a8004d81-a7b8-41f1-a673-17b4d6e90ebf)\n", - "2025-03-24 12:17:33,061 INFO Finished job - add_x_and_y (a8004d81-a7b8-41f1-a673-17b4d6e90ebf)\n", - "2025-03-24 12:17:33,062 INFO Starting job - add_x_and_y_and_z (26ddcedb-34b3-4b09-883d-311b2689d870)\n", - "2025-03-24 12:17:33,066 INFO Finished job - add_x_and_y_and_z (26ddcedb-34b3-4b09-883d-311b2689d870)\n", - "2025-03-24 12:17:33,070 INFO Finished executing jobs locally\n" - ] - }, - { - "data": { - "text/plain": [ - "{'a8004d81-a7b8-41f1-a673-17b4d6e90ebf': {1: Response(output={'x': 1, 'y': 2, 'z': 3}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jan/notebooks/2025/2025-03-22-compare-workflows'))},\n", - " '26ddcedb-34b3-4b09-883d-311b2689d870': {1: Response(output=6, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jan/notebooks/2025/2025-03-22-compare-workflows'))}}" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "result = run_locally(flow)\n", - "result" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## pyiron" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "from pyiron_base import Project" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.pyiron_base import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "c62706b413eb44a391d2a24366c8ef82", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "0it [00:00, ?it/s]" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "pr = Project(\"test\")\n", - "pr.remove_jobs(recursive=True, silently=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "\n", - "\n", - "\n", - "create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "create_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346efa3f0>\n", - "\n", - "\n", - "\n", - "x_66de6656099aebbaa5cdc840b1bf9733\n", - "\n", - "x=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346efa030>\n", - "\n", - "\n", - "\n", - "x_66de6656099aebbaa5cdc840b1bf9733->create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce\n", - "\n", - "x=1\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce->x_66de6656099aebbaa5cdc840b1bf9733\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_12cc51ee4250f1b82f9bc22e047ad944\n", - "\n", - "y=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346efa000>\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce->y_12cc51ee4250f1b82f9bc22e047ad944\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z_91b561a78a57aad1d943f498a3c737ed\n", - "\n", - "z=<pyiron_base.project.delayed.DelayedObject object at 0x7f6346ef9ee0>\n", - "\n", - "\n", - "\n", - "x_1d847da32ecaabf6731c38f798c3d4ce->z_91b561a78a57aad1d943f498a3c737ed\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_12cc51ee4250f1b82f9bc22e047ad944->create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "z_91b561a78a57aad1d943f498a3c737ed->create_function_job_64c8e93072cd8858b5acc14f0b6a1345\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6\n", - "\n", - "y=2\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6->x_66de6656099aebbaa5cdc840b1bf9733\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6->y_12cc51ee4250f1b82f9bc22e047ad944\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "y_a9ec4f5f33f0d64e74ed5d9900bceac6->z_91b561a78a57aad1d943f498a3c737ed\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "delayed_object = load_workflow_json(project=pr, file_name=\"workflow_simple.json\")\n", - "delayed_object.draw()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The job add_x_and_y_68901482a2c5221cc845f828aabebd27 was saved and received the ID: 8\n", - "The job add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d was saved and received the ID: 9\n" - ] - }, - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "delayed_object.pull()" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
08finishedNoneadd_x_and_y_68901482a2c5221cc845f828aabebd27/add_x_and_y_68901482a2c5221cc845f828aabebd27None/home/jan/notebooks/2025/2025-03-22-compare-workflows/test/2025-03-24 12:17:37.412001NoneNonepyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1PythonFunctionContainerJob0.4NoneNone
19finishedNoneadd_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d/add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8dNone/home/jan/notebooks/2025/2025-03-22-compare-workflows/test/2025-03-24 12:17:39.161717NoneNonepyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1PythonFunctionContainerJob0.4NoneNone
\n", - "
" - ], - "text/plain": [ - " id status chemicalformula \\\n", - "0 8 finished None \n", - "1 9 finished None \n", - "\n", - " job \\\n", - "0 add_x_and_y_68901482a2c5221cc845f828aabebd27 \n", - "1 add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d \n", - "\n", - " subjob projectpath \\\n", - "0 /add_x_and_y_68901482a2c5221cc845f828aabebd27 None \n", - "1 /add_x_and_y_and_z_b671e81aaa4670d81d7eee509650af8d None \n", - "\n", - " project \\\n", - "0 /home/jan/notebooks/2025/2025-03-22-compare-workflows/test/ \n", - "1 /home/jan/notebooks/2025/2025-03-22-compare-workflows/test/ \n", - "\n", - " timestart timestop totalcputime \\\n", - "0 2025-03-24 12:17:37.412001 None None \n", - "1 2025-03-24 12:17:39.161717 None None \n", - "\n", - " computer \\\n", - "0 pyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1 \n", - "1 pyiron@p200300e77f488c66bae2561c878c14a2.dip0.t-ipconnect.de#1 \n", - "\n", - " hamilton hamversion parentid masterid \n", - "0 PythonFunctionContainerJob 0.4 None None \n", - "1 PythonFunctionContainerJob 0.4 None None " - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pr.job_table()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Python" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "from python_workflow_definition.purepython import load_workflow_json" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "load_workflow_json(file_name=\"workflow_simple.json\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} +{"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.12.8","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Load Simple Workflow","metadata":{}},{"cell_type":"markdown","source":"## Plot","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.plot import plot","metadata":{"trusted":true},"outputs":[],"execution_count":1},{"cell_type":"code","source":"plot(file_name='workflow_simple.json')","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\n0\n\nsimple_workflow.get_prod_and_div\n\n\n\n1\n\nsimple_workflow.add_x_and_y\n\n\n\n0->1\n\n\nprod=x, div=y\n\n\n\n2\n\n1\n\n\n\n2->0\n\n\nx\n\n\n\n3\n\n2\n\n\n\n3->0\n\n\ny\n\n\n"},"metadata":{}}],"execution_count":2},{"cell_type":"markdown","source":"## Aiida ","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.aiida import load_workflow_json\n\nfrom aiida import load_profile\nload_profile()","metadata":{"trusted":true},"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}],"execution_count":3},{"cell_type":"code","source":"workgraph = load_workflow_json(file_name='workflow_simple.json')","metadata":{"trusted":true},"outputs":[],"execution_count":4},{"cell_type":"code","source":"# TODO: Create inputs rather than tasks out of data nodes\nworkgraph","metadata":{"trusted":true},"outputs":[{"execution_count":5,"output_type":"execute_result","data":{"text/plain":"NodeGraphWidget(settings={'minimap': True}, style={'width': '90%', 'height': '600px'}, value={'name': 'WorkGra…","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":1,"model_id":"3b6386728ef54e388929d1b7d389c4ba"}},"metadata":{}}],"execution_count":5},{"cell_type":"code","source":"\nworkgraph.run()","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"04/12/2025 11:29:38 AM <905> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [27|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_prod_and_div1\n04/12/2025 11:29:39 AM <905> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [27|WorkGraphEngine|update_task_state]: Task: get_prod_and_div1, type: PyFunction, finished.\n04/12/2025 11:29:39 AM <905> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [27|WorkGraphEngine|continue_workgraph]: tasks ready to run: add_x_and_y2\n04/12/2025 11:29:40 AM <905> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [27|WorkGraphEngine|update_task_state]: Task: add_x_and_y2, type: PyFunction, finished.\n04/12/2025 11:29:40 AM <905> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [27|WorkGraphEngine|continue_workgraph]: tasks ready to run: \n04/12/2025 11:29:40 AM <905> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [27|WorkGraphEngine|finalize]: Finalize workgraph.\n"}],"execution_count":6},{"cell_type":"markdown","source":"## executorlib","metadata":{}},{"cell_type":"code","source":"from executorlib import SingleNodeExecutor","metadata":{"trusted":true},"outputs":[],"execution_count":7},{"cell_type":"code","source":"from python_workflow_definition.executorlib import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":8},{"cell_type":"code","source":"with SingleNodeExecutor(max_workers=1) as exe:\n result = load_workflow_json(file_name=\"workflow_simple.json\", exe=exe).result()","metadata":{"trusted":true},"outputs":[],"execution_count":9},{"cell_type":"code","source":"result","metadata":{"trusted":true},"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"2.5"},"metadata":{}}],"execution_count":10},{"cell_type":"markdown","source":"## Jobflow","metadata":{}},{"cell_type":"code","source":"from jobflow.managers.local import run_locally","metadata":{"trusted":true},"outputs":[{"name":"stderr","output_type":"stream","text":"/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"cipher\": algorithms.TripleDES,\n/srv/conda/envs/notebook/lib/python3.12/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.\n \"class\": algorithms.TripleDES,\n"}],"execution_count":11},{"cell_type":"code","source":"from python_workflow_definition.jobflow import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":12},{"cell_type":"code","source":"flow = load_workflow_json(file_name=\"workflow_simple.json\")","metadata":{"trusted":true},"outputs":[],"execution_count":13},{"cell_type":"code","source":"result = run_locally(flow)\nresult","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"2025-04-12 11:29:43,039 INFO Started executing jobs locally\n2025-04-12 11:29:43,310 INFO Starting job - get_prod_and_div (b3a6e2f9-8e30-4f70-bcf7-dfa5fb95c97b)\n2025-04-12 11:29:43,315 INFO Finished job - get_prod_and_div (b3a6e2f9-8e30-4f70-bcf7-dfa5fb95c97b)\n2025-04-12 11:29:43,316 INFO Starting job - add_x_and_y (d97fa51b-d1dc-498f-9a0b-dc1eaeac2a04)\n2025-04-12 11:29:43,319 INFO Finished job - add_x_and_y (d97fa51b-d1dc-498f-9a0b-dc1eaeac2a04)\n2025-04-12 11:29:43,321 INFO Finished executing jobs locally\n"},{"execution_count":14,"output_type":"execute_result","data":{"text/plain":"{'b3a6e2f9-8e30-4f70-bcf7-dfa5fb95c97b': {1: Response(output={'prod': 2, 'div': 0.5}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))},\n 'd97fa51b-d1dc-498f-9a0b-dc1eaeac2a04': {1: Response(output=2.5, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False, job_dir=PosixPath('/home/jovyan'))}}"},"metadata":{}}],"execution_count":14},{"cell_type":"markdown","source":"## pyiron","metadata":{}},{"cell_type":"code","source":"from pyiron_base import Project","metadata":{"trusted":true},"outputs":[],"execution_count":15},{"cell_type":"code","source":"from python_workflow_definition.pyiron_base import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":16},{"cell_type":"code","source":"pr = Project(\"test\")\npr.remove_jobs(recursive=True, silently=True)","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"0it [00:00, ?it/s]","application/vnd.jupyter.widget-view+json":{"version_major":2,"version_minor":0,"model_id":"103b68935efb4f39b22a0bfdb682e258"}},"metadata":{}}],"execution_count":17},{"cell_type":"code","source":"delayed_object = load_workflow_json(project=pr, file_name=\"workflow_simple.json\")\ndelayed_object.draw()","metadata":{"trusted":true},"outputs":[{"output_type":"display_data","data":{"text/plain":"","image/svg+xml":"\n\n\n\n\ncreate_function_job_65c7f45cff3952fa90203cdbc4f68274\n\ncreate_function_job=<pyiron_base.project.delayed.DelayedObject object at 0x7f44a39b09b0>\n\n\n\nx_497c5ebc48033cf60f366c0fd3763723\n\nx=<pyiron_base.project.delayed.DelayedObject object at 0x7f44a5545d00>\n\n\n\nx_497c5ebc48033cf60f366c0fd3763723->create_function_job_65c7f45cff3952fa90203cdbc4f68274\n\n\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce\n\nx=1\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->x_497c5ebc48033cf60f366c0fd3763723\n\n\n\n\n\ny_2aeb6a5422726bc4dfbbbadc099f1760\n\ny=<pyiron_base.project.delayed.DelayedObject object at 0x7f44a39b06e0>\n\n\n\nx_1d847da32ecaabf6731c38f798c3d4ce->y_2aeb6a5422726bc4dfbbbadc099f1760\n\n\n\n\n\ny_2aeb6a5422726bc4dfbbbadc099f1760->create_function_job_65c7f45cff3952fa90203cdbc4f68274\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6\n\ny=2\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->x_497c5ebc48033cf60f366c0fd3763723\n\n\n\n\n\ny_a9ec4f5f33f0d64e74ed5d9900bceac6->y_2aeb6a5422726bc4dfbbbadc099f1760\n\n\n\n\n"},"metadata":{}}],"execution_count":18},{"cell_type":"code","source":"delayed_object.pull()","metadata":{"trusted":true},"outputs":[{"name":"stdout","output_type":"stream","text":"The job get_prod_and_div_5e64acfa88dc01309cd4ba60143865e3 was saved and received the ID: 1\nThe job add_x_and_y_82c0f2025c97ddd328aaebe50fb30c48 was saved and received the ID: 2\n"},{"execution_count":19,"output_type":"execute_result","data":{"text/plain":"2.5"},"metadata":{}}],"execution_count":19},{"cell_type":"code","source":"pr.job_table()","metadata":{"trusted":true},"outputs":[{"execution_count":20,"output_type":"execute_result","data":{"text/plain":" id status chemicalformula \\\n0 1 finished None \n1 2 finished None \n\n job \\\n0 get_prod_and_div_5e64acfa88dc01309cd4ba60143865e3 \n1 add_x_and_y_82c0f2025c97ddd328aaebe50fb30c48 \n\n subjob projectpath \\\n0 /get_prod_and_div_5e64acfa88dc01309cd4ba60143865e3 None \n1 /add_x_and_y_82c0f2025c97ddd328aaebe50fb30c48 None \n\n project timestart timestop totalcputime \\\n0 /home/jovyan/test/ 2025-04-12 11:29:44.346792 None None \n1 /home/jovyan/test/ 2025-04-12 11:29:44.619719 None None \n\n computer \\\n0 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n1 pyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1 \n\n hamilton hamversion parentid masterid \n0 PythonFunctionContainerJob 0.4 None None \n1 PythonFunctionContainerJob 0.4 None None ","text/html":"
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
idstatuschemicalformulajobsubjobprojectpathprojecttimestarttimestoptotalcputimecomputerhamiltonhamversionparentidmasterid
01finishedNoneget_prod_and_div_5e64acfa88dc01309cd4ba60143865e3/get_prod_and_div_5e64acfa88dc01309cd4ba60143865e3None/home/jovyan/test/2025-04-12 11:29:44.346792NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
12finishedNoneadd_x_and_y_82c0f2025c97ddd328aaebe50fb30c48/add_x_and_y_82c0f2025c97ddd328aaebe50fb30c48None/home/jovyan/test/2025-04-12 11:29:44.619719NoneNonepyiron@jupyter-pyiron-dev-pyth-flow-definition-a8grxfsa#1PythonFunctionContainerJob0.4NoneNone
\n
"},"metadata":{}}],"execution_count":20},{"cell_type":"markdown","source":"## Python","metadata":{}},{"cell_type":"code","source":"from python_workflow_definition.purepython import load_workflow_json","metadata":{"trusted":true},"outputs":[],"execution_count":21},{"cell_type":"code","source":"load_workflow_json(file_name=\"workflow_simple.json\")","metadata":{"trusted":true},"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"2.5"},"metadata":{}}],"execution_count":22}]} \ No newline at end of file