jobflow#
jobflow
and atomate2
are key packages of the Materials Project . jobflow
was especially designed to simplify the execution of dynamic workflows – when the actual number of jobs is dynamically determined upon runtime instead of being statically fixed before running the workflow(s). jobflow
’s overall flexibility allows for building workflows that go beyond the usage in materials science. jobflow
serves as the basis of atomate2
, which implements data generation workflows in the context of materials science and will be used for data generation in the Materials Project in the future.
Define workflow with jobflow#
We start by importing the job decorator and Flow class from jobflow
and the respective PWD tools.
import numpy as np
from jobflow import job, Flow
from python_workflow_definition.jobflow import write_workflow_json
Quantum Espresso Workflow#
We will use the knowledge from the previous arithmetic workflow example to create the Quantum Espresso-related tasks for calculating an “Energy vs. Volume” curve. It’s important to note that this is only a basic implementation, and further extensions towards data validation or for a simplified user experience can be added. For example, one can typically configure run commands for quantum-chemical programs via configuration files in atomate2.
from workflow import (
calculate_qe as _calculate_qe,
generate_structures as _generate_structures,
get_bulk_structure as _get_bulk_structure,
plot_energy_volume_curve as _plot_energy_volume_curve,
)
workflow_json_filename = "jobflow_qe.json"
calculate_qe = job(_calculate_qe)
generate_structures = job(_generate_structures)
plot_energy_volume_curve = job(_plot_energy_volume_curve)
get_bulk_structure = job(_get_bulk_structure)
We need to specify the typical QE input like pseudopotential(s) and structure model.
pseudopotentials = {"Al": "Al.pbe-n-kjpaw_psl.1.0.0.UPF"}
structure = get_bulk_structure(
element="Al",
a=4.04,
cubic=True,
)
calc_mini = calculate_qe(
working_directory="mini",
input_dict={
"structure": structure.output,
"pseudopotentials": pseudopotentials,
"kpts": (3, 3, 3),
"calculation": "vc-relax",
"smearing": 0.02,
},
)
Next, for the “Energy vs. Volume” curve, we meed to specify the number of strained structures and save them into a list object. For each of the strained structures, we will carry out a QE calculation.
number_of_strains = 5
structure_lst = generate_structures(
structure=calc_mini.output.structure,
strain_lst=np.linspace(0.9, 1.1, number_of_strains),
)
job_strain_lst = []
for i in range(number_of_strains):
calc_strain = calculate_qe(
working_directory="strain_" + str(i),
input_dict={
"structure": getattr(structure_lst.output, f"s_{i}"),
"pseudopotentials": pseudopotentials,
"kpts": (3, 3, 3),
"calculation": "scf",
"smearing": 0.02,
},
)
job_strain_lst.append(calc_strain)
Finally, we specify a plotter for the “Energy vs. Volume” curve and can export the workflow.
plot = plot_energy_volume_curve(
volume_lst=[job.output.volume for job in job_strain_lst],
energy_lst=[job.output.energy for job in job_strain_lst],
)
flow = Flow([structure, calc_mini, structure_lst] + job_strain_lst + [plot])
write_workflow_json(flow=flow, file_name=workflow_json_filename)
!cat {workflow_json_filename}
{
"version": "0.1.0",
"nodes": [
{
"id": 0,
"type": "function",
"value": "workflow.get_bulk_structure"
},
{
"id": 1,
"type": "function",
"value": "workflow.calculate_qe"
},
{
"id": 2,
"type": "function",
"value": "workflow.generate_structures"
},
{
"id": 3,
"type": "function",
"value": "workflow.calculate_qe"
},
{
"id": 4,
"type": "function",
"value": "workflow.calculate_qe"
},
{
"id": 5,
"type": "function",
"value": "workflow.calculate_qe"
},
{
"id": 6,
"type": "function",
"value": "workflow.calculate_qe"
},
{
"id": 7,
"type": "function",
"value": "workflow.calculate_qe"
},
{
"id": 8,
"type": "function",
"value": "workflow.plot_energy_volume_curve"
},
{
"id": 9,
"type": "input",
"name": "element",
"value": "Al"
},
{
"id": 10,
"type": "input",
"name": "a",
"value": 4.04
},
{
"id": 11,
"type": "input",
"name": "cubic",
"value": true
},
{
"id": 12,
"type": "input",
"name": "working_directory_0",
"value": "mini"
},
{
"id": 13,
"type": "function",
"value": "python_workflow_definition.shared.get_dict"
},
{
"id": 14,
"type": "input",
"name": "pseudopotentials",
"value": {
"Al": "Al.pbe-n-kjpaw_psl.1.0.0.UPF"
}
},
{
"id": 15,
"type": "input",
"name": "kpts",
"value": [
3,
3,
3
]
},
{
"id": 16,
"type": "input",
"name": "calculation_0",
"value": "vc-relax"
},
{
"id": 17,
"type": "input",
"name": "smearing",
"value": 0.02
},
{
"id": 18,
"type": "input",
"name": "strain_lst",
"value": [
0.9,
0.9500000000000001,
1.0,
1.05,
1.1
]
},
{
"id": 19,
"type": "input",
"name": "working_directory_1",
"value": "strain_0"
},
{
"id": 20,
"type": "function",
"value": "python_workflow_definition.shared.get_dict"
},
{
"id": 21,
"type": "input",
"name": "calculation_1",
"value": "scf"
},
{
"id": 22,
"type": "input",
"name": "working_directory_2",
"value": "strain_1"
},
{
"id": 23,
"type": "function",
"value": "python_workflow_definition.shared.get_dict"
},
{
"id": 24,
"type": "input",
"name": "working_directory_3",
"value": "strain_2"
},
{
"id": 25,
"type": "function",
"value": "python_workflow_definition.shared.get_dict"
},
{
"id": 26,
"type": "input",
"name": "working_directory_4",
"value": "strain_3"
},
{
"id": 27,
"type": "function",
"value": "python_workflow_definition.shared.get_dict"
},
{
"id": 28,
"type": "input",
"name": "working_directory_5",
"value": "strain_4"
},
{
"id": 29,
"type": "function",
"value": "python_workflow_definition.shared.get_dict"
},
{
"id": 30,
"type": "function",
"value": "python_workflow_definition.shared.get_list"
},
{
"id": 31,
"type": "function",
"value": "python_workflow_definition.shared.get_list"
},
{
"id": 32,
"type": "output",
"name": "result"
}
],
"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
},
{
"target": 32,
"targetPort": null,
"source": 8,
"sourcePort": null
}
]
}
Load Workflow with aiida#
Now, we can import the workflow, run it with aiida
and plot the “Energy vs. Volume” curve.
from aiida import orm, load_profile
load_profile()
Profile<uuid='3ce302a995914d2e8a7b6327a10fe381' name='pwd'>
from python_workflow_definition.aiida import load_workflow_json
wg = load_workflow_json(workflow_json_filename)
wg.nodes.get_bulk_structure1.inputs.a.value = orm.Float(4.05)
wg
wg.run()
05/24/2025 05:55:37 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_bulk_structure1
05/24/2025 05:55:38 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_bulk_structure1, type: PyFunction, finished.
05/24/2025 05:55:38 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict10
05/24/2025 05:55:38 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_dict10, type: PyFunction, finished.
05/24/2025 05:55:38 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe2
[jupyter-pythonworkflow-fl--x---d7231032:10078] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
05/24/2025 05:56:29 AM <10006> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['energy', 'volume'])
05/24/2025 05:56:29 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: calculate_qe2, type: PyFunction, finished.
05/24/2025 05:56:30 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: generate_structures3
05/24/2025 05:56:30 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: generate_structures3, type: PyFunction, finished.
05/24/2025 05:56:30 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict11,get_dict12,get_dict13,get_dict14,get_dict15
05/24/2025 05:56:31 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_dict11, type: PyFunction, finished.
05/24/2025 05:56:31 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe4,get_dict12,get_dict13,get_dict14,get_dict15
[jupyter-pythonworkflow-fl--x---d7231032:10097] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
05/24/2025 05:56:42 AM <10006> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])
05/24/2025 05:56:42 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: calculate_qe4, type: PyFunction, finished.
05/24/2025 05:56:42 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict12,get_dict13,get_dict14,get_dict15
05/24/2025 05:56:43 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_dict12, type: PyFunction, finished.
05/24/2025 05:56:43 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe5,get_dict13,get_dict14,get_dict15
[jupyter-pythonworkflow-fl--x---d7231032:10108] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
05/24/2025 05:56:54 AM <10006> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])
05/24/2025 05:56:55 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: calculate_qe5, type: PyFunction, finished.
05/24/2025 05:56:55 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict13,get_dict14,get_dict15
05/24/2025 05:56:55 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_dict13, type: PyFunction, finished.
05/24/2025 05:56:55 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe6,get_dict14,get_dict15
[jupyter-pythonworkflow-fl--x---d7231032:10120] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
05/24/2025 05:57:07 AM <10006> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])
05/24/2025 05:57:08 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: calculate_qe6, type: PyFunction, finished.
05/24/2025 05:57:08 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict14,get_dict15
05/24/2025 05:57:08 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_dict14, type: PyFunction, finished.
05/24/2025 05:57:08 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe7,get_dict15
[jupyter-pythonworkflow-fl--x---d7231032:10131] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
05/24/2025 05:57:22 AM <10006> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])
05/24/2025 05:57:22 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: calculate_qe7, type: PyFunction, finished.
05/24/2025 05:57:22 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_dict15
05/24/2025 05:57:23 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_dict15, type: PyFunction, finished.
05/24/2025 05:57:23 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: calculate_qe8
[jupyter-pythonworkflow-fl--x---d7231032:10146] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
05/24/2025 05:57:40 AM <10006> aiida.orm.nodes.process.calculation.calcfunction.CalcFunctionNode: [WARNING] Found extra results that are not included in the output: dict_keys(['structure'])
05/24/2025 05:57:40 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: calculate_qe8, type: PyFunction, finished.
05/24/2025 05:57:40 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list16,get_list17
05/24/2025 05:57:41 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_list16, type: PyFunction, finished.
05/24/2025 05:57:41 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: get_list17
05/24/2025 05:57:41 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: get_list17, type: PyFunction, finished.
05/24/2025 05:57:41 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run: plot_energy_volume_curve9
05/24/2025 05:57:41 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|update_task_state]: Task: plot_energy_volume_curve9, type: PyFunction, finished.
05/24/2025 05:57:42 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|continue_workgraph]: tasks ready to run:
05/24/2025 05:57:42 AM <10006> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [155|WorkGraphEngine|finalize]: Finalize workgraph.

Load Workflow with pyiron_base#
And we can repeat the same process using pyiron
.
from python_workflow_definition.pyiron_base import load_workflow_json
delayed_object_lst = load_workflow_json(file_name=workflow_json_filename)
delayed_object_lst[-1].draw()
delayed_object_lst[0].input['a'] = 4.05
delayed_object_lst[-1].pull()
The job get_bulk_structure_2ca4aeae204ceaa28593c93054b07908 was saved and received the ID: 1
The job get_dict_1e47509b88d63a21fd421686554c8f4a was saved and received the ID: 2
The job calculate_qe_411e578f2700d09ba2df9a4c682b4582 was saved and received the ID: 3
[jupyter-pythonworkflow-fl--x---d7231032:10178] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
The job generate_structures_758c1e24a8384d1f25f5126debddf480 was saved and received the ID: 4
The job get_dict_db80165b1c83d6fa1ef1eef8d8b3188b was saved and received the ID: 5
The job calculate_qe_c74608e7e5992312ade6c5737ad4d4f1 was saved and received the ID: 6
[jupyter-pythonworkflow-fl--x---d7231032:10193] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
The job get_dict_97c2cc17b8b86f75ac4b6341cd45956c was saved and received the ID: 7
The job calculate_qe_3c59fd7824f74b10476745bf9830882f was saved and received the ID: 8
[jupyter-pythonworkflow-fl--x---d7231032:10204] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
The job get_dict_8c518d80d423ba91c334fe6a5d9543bd was saved and received the ID: 9
The job calculate_qe_38624f0e23e56cbc7b388ef79234a0cf was saved and received the ID: 10
[jupyter-pythonworkflow-fl--x---d7231032:10215] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
The job get_dict_85562edba169c3c58d84415c89cc95ec was saved and received the ID: 11
The job calculate_qe_78709c5d9efddf18fe3df6c5e14d06ed was saved and received the ID: 12
[jupyter-pythonworkflow-fl--x---d7231032:10226] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
The job get_dict_c540734353f48fac14af5c29bd88abc9 was saved and received the ID: 13
The job calculate_qe_1e912623736f139236a98ac679574bb4 was saved and received the ID: 14
[jupyter-pythonworkflow-fl--x---d7231032:10242] 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)
Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG
The job get_list_eacb691fa58e50c0936b26623a5e36f9 was saved and received the ID: 15
The job get_list_069bfd570461c3607a17813d3ecb126c was saved and received the ID: 16
The job plot_energy_volume_curve_99f8fb836badb998aff830b255f6b0eb was saved and received the ID: 17
