diff --git a/.gitignore b/.gitignore index 6769e21..f030a14 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,9 @@ __pycache__/ # C extensions *.so +#jobflow tmp output dirs +job*/ + # Distribution / packaging .Python build/ @@ -25,6 +28,7 @@ share/python-wheels/ .installed.cfg *.egg MANIFEST +.idea # PyInstaller # Usually these files are written by a python script from a template diff --git a/adis_tools/parsers.py b/adis_tools/parsers.py index d691581..326f0e4 100644 --- a/adis_tools/parsers.py +++ b/adis_tools/parsers.py @@ -12,7 +12,7 @@ def parse_pw(xml_file): """Parse a Quantum Espresso XML output file.""" - xml_dict = XMLSchema(files(schemas) / 'qes_230310.xsd').to_dict(xml_file) + xml_dict = XMLSchema(str(files(schemas) / 'qes_230310.xsd')).to_dict(xml_file) parsed_results = {} diff --git a/adis_tools/schemas/qes_230310.xsd b/adis_tools/schemas/qes_230310.xsd index a68aad3..576a6cb 100644 --- a/adis_tools/schemas/qes_230310.xsd +++ b/adis_tools/schemas/qes_230310.xsd @@ -22,7 +22,7 @@ datecode 220603 - + @@ -150,8 +150,8 @@ datecode 220603 - - + diff --git a/aiida.ipynb b/aiida.ipynb index 78a042f..79b1dc0 100644 --- a/aiida.ipynb +++ b/aiida.ipynb @@ -1 +1,799 @@ -{"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3 (ipykernel)","language":"python"},"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.11.0"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Aiida","metadata":{}},{"cell_type":"code","source":"import subprocess","metadata":{"tags":[]},"execution_count":1,"outputs":[]},{"cell_type":"code","source":"try: \n subprocess.check_output([\"verdi\", \"profile\", \"setup\", \"core.sqlite_dos\", \"-n\", \"--profile\", \"test\", \"--email\", \"no@email.com\"])\nexcept: \n pass","metadata":{"tags":[]},"execution_count":2,"outputs":[{"name":"stderr","text":"/srv/conda/envs/notebook/lib/python3.11/site-packages/aiida/manage/configuration/settings.py:59: UserWarning: Creating AiiDA configuration folder `/home/jovyan/.aiida`.\n warnings.warn(f'Creating AiiDA configuration folder `{path}`.')\n","output_type":"stream"}]},{"cell_type":"code","source":"from pathlib import Path\nfrom ase.build import bulk\n\nfrom aiida import orm, engine, load_profile\nfrom aiida.common.exceptions import NotExistent\n\nload_profile()","metadata":{"tags":[]},"execution_count":3,"outputs":[{"execution_count":3,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}]},{"cell_type":"code","source":"try:\n localhost = orm.load_computer('localhost')\nexcept NotExistent:\n localhost = orm.Computer(\n label='localhost',\n hostname='localhost',\n transport_type='core.local',\n scheduler_type='core.direct',\n workdir=Path('workdir').absolute().as_posix()\n ).store()\n localhost.configure()\n\ntry:\n pw_code = orm.load_code('pw@localhost')\nexcept NotExistent:\n pw_code = orm.InstalledCode(\n label='pw',\n computer=localhost,\n filepath_executable='pw.x',\n default_calc_job_plugin='aiida_qe_basic.pw',\n prepend_text='export OMP_NUM_THREADS=1'\n ).store()","metadata":{"tags":[]},"execution_count":4,"outputs":[{"name":"stderr","text":"/srv/conda/envs/notebook/lib/python3.11/site-packages/aiida/orm/nodes/data/code/legacy.py:42: AiidaDeprecationWarning: The `Code` class is deprecated. To create an instance, use the `aiida.orm.nodes.data.code.installed.InstalledCode` or `aiida.orm.nodes.data.code.portable.PortableCode` for a \"remote\" or \"local\" code, respectively. If you are using this class to compare type, e.g. in `isinstance`, use `aiida.orm.nodes.data.code.abstract.AbstractCode`. (this will be removed in v3)\n warn_deprecation(\n","output_type":"stream"}]},{"cell_type":"code","source":"from aiida_qe_basic.pw import PwCalculation\n\nbuilder = PwCalculation.get_builder()\n\nbuilder.code = pw_code\nbuilder.structure = orm.StructureData(ase=bulk('Al', a=4.05, cubic=True))\nbuilder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\nbuilder.parameters = orm.Dict(\n {\n 'CONTROL': {\n 'calculation': 'scf',\n # 'pseudo_dir': Path('files').absolute().as_posix(),\n },\n 'SYSTEM': {\n 'occupations': 'smearing',\n 'smearing': 'cold',\n 'degauss': 0.02\n }\n }\n)\nbuilder.metadata.options.resources = {\n 'num_machines': 1,\n 'num_mpiprocs_per_machine': 1\n}","metadata":{"tags":[]},"execution_count":5,"outputs":[]},{"cell_type":"code","source":"! rabbitmq-server -detached","metadata":{},"execution_count":6,"outputs":[]},{"cell_type":"code","source":"! sleep 5","metadata":{},"execution_count":7,"outputs":[]},{"cell_type":"code","source":"results = engine.run(builder)","metadata":{"tags":[]},"execution_count":8,"outputs":[]},{"cell_type":"code","source":"results","metadata":{},"execution_count":9,"outputs":[{"execution_count":9,"output_type":"execute_result","data":{"text/plain":"{'structure': ,\n 'properties': ,\n 'remote_folder': ,\n 'retrieved': }"},"metadata":{}}]},{"cell_type":"code","source":"results['properties'].get_dict()","metadata":{},"execution_count":10,"outputs":[{"execution_count":10,"output_type":"execute_result","data":{"text/plain":"{'energy': -1074.9272223013, 'volume': 66.430124128914}"},"metadata":{}}]},{"cell_type":"markdown","source":"## Equation of State curve - basic QE\n\nRunning an EOS without all the fancy features in the `aiida-quantumespresso` plugin.","metadata":{}},{"cell_type":"code","source":"from pathlib import Path\n\nfrom aiida import orm, engine, load_profile\n\nload_profile()","metadata":{},"execution_count":11,"outputs":[{"execution_count":11,"output_type":"execute_result","data":{"text/plain":"Profile"},"metadata":{}}]},{"cell_type":"markdown","source":"### Importing a structure","metadata":{}},{"cell_type":"code","source":"from ase.build import bulk\n\nstructure = orm.StructureData(ase=bulk('Al', a=4.05, cubic=True))","metadata":{},"execution_count":12,"outputs":[]},{"cell_type":"markdown","source":"### Relaxing the geometry","metadata":{}},{"cell_type":"code","source":"resources = {\n 'num_machines': 1,\n 'num_mpiprocs_per_machine': 1\n}\n\nrelax_params = {\n 'CONTROL': {\n 'calculation': 'vc-relax',\n # 'pseudo_dir': Path('files').absolute().as_posix(),\n },\n 'SYSTEM': {\n 'occupations': 'smearing',\n 'smearing': 'cold',\n 'degauss': 0.02\n }\n}","metadata":{},"execution_count":13,"outputs":[]},{"cell_type":"code","source":"from aiida_qe_basic.pw import PwCalculation\n\nbuilder = PwCalculation.get_builder()\n\nbuilder.code = orm.load_code('pw@localhost')\nbuilder.structure = orm.StructureData(ase=bulk('Al', a=4.05, cubic=True))\nbuilder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\nbuilder.parameters = orm.Dict(relax_params)\nbuilder.metadata.options.resources = resources","metadata":{},"execution_count":14,"outputs":[]},{"cell_type":"code","source":"results = engine.run(builder)\nrelaxed_structure = results['structure']\nrelaxed_structure","metadata":{},"execution_count":15,"outputs":[{"execution_count":15,"output_type":"execute_result","data":{"text/plain":""},"metadata":{}}]},{"cell_type":"markdown","source":"### Calc function to rescale structures\n\nThe `calcfunction` below takes an input structure and rescales it to different volumes.","metadata":{}},{"cell_type":"code","source":"from aiida_qe_basic.pw import PwCalculation\n\n@engine.calcfunction\ndef rescale_list(structure: orm.StructureData, factor_list: orm.List):\n\n scaled_structure_dict = {}\n\n for index, scaling_factor in enumerate(factor_list.get_list()):\n\n ase_structure = structure.get_ase()\n\n new_cell = ase_structure.get_cell() * scaling_factor\n ase_structure.set_cell(new_cell, scale_atoms=True)\n\n scaled_structure_dict[f'structure_{index}'] = orm.StructureData(ase=ase_structure)\n\n return scaled_structure_dict","metadata":{},"execution_count":16,"outputs":[]},{"cell_type":"markdown","source":"Typically, you'd just run it by calling the function as you would a regular Python function:","metadata":{}},{"cell_type":"code","source":"rescaled_structures = rescale_list(relaxed_structure, orm.List(list=[0.9, 0.95, 1.0, 1.05, 1.1]))","metadata":{},"execution_count":17,"outputs":[]},{"cell_type":"code","source":"rescaled_structures","metadata":{},"execution_count":18,"outputs":[{"execution_count":18,"output_type":"execute_result","data":{"text/plain":"{'structure_0': ,\n 'structure_1': ,\n 'structure_2': ,\n 'structure_3': ,\n 'structure_4': }"},"metadata":{}}]},{"cell_type":"markdown","source":"## EOS: Work function version","metadata":{}},{"cell_type":"code","source":"scf_inputs = {\n 'CONTROL': {\n 'calculation': 'scf',\n # 'pseudo_dir': Path('files').absolute().as_posix(),\n },\n 'SYSTEM': {\n 'occupations': 'smearing',\n 'smearing': 'cold',\n 'degauss': 0.02\n }\n}","metadata":{},"execution_count":19,"outputs":[]},{"cell_type":"code","source":"@engine.workfunction\ndef run_eos_wf(code: orm.Code, structure: orm.StructureData, scale_factors: orm.List):\n \"\"\"Run an equation of state of a bulk crystal structure for the given element.\"\"\"\n\n properties = {}\n\n for label, rescaled_structure in rescale_list(structure, scale_factors).items():\n\n builder = PwCalculation.get_builder()\n builder.code = code\n builder.structure = rescaled_structure\n builder.parameters = orm.Dict(scf_inputs)\n builder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\n builder.metadata.options.resources = resources\n\n results = engine.run(builder)\n properties[label] = results['properties']\n\n return properties","metadata":{},"execution_count":20,"outputs":[]},{"cell_type":"code","source":"results = run_eos_wf(\n code=orm.load_code('pw@localhost'),\n structure=relaxed_structure,\n scale_factors=[0.9, 0.95, 1.0, 1.05, 1.1]\n)","metadata":{},"execution_count":21,"outputs":[]},{"cell_type":"code","source":"results","metadata":{},"execution_count":22,"outputs":[{"execution_count":22,"output_type":"execute_result","data":{"text/plain":"{'structure_0': ,\n 'structure_1': ,\n 'structure_2': ,\n 'structure_3': ,\n 'structure_4': }"},"metadata":{}}]},{"cell_type":"code","source":"volumes = []\nenergies = []\n\nfor result in results.values():\n volumes.append(result['volume'])\n energies.append(result['energy'])","metadata":{},"execution_count":23,"outputs":[]},{"cell_type":"code","source":"import matplotlib.pyplot as plt\n\nplt.plot(volumes, energies)","metadata":{},"execution_count":24,"outputs":[{"execution_count":24,"output_type":"execute_result","data":{"text/plain":"[]"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAjYAAAGsCAYAAADOo+2NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJoklEQVR4nO3deVxU9f4/8NcsMOyDiuybO4KAO0uW1S3UNBUtM5WsbpZ6u6231NutrG5ZfX+3W91uWtpqVla4Z6Te1EoERUVQUVxQEBhAkGGTbebz+wOhCJBFhjNz5vV8POYPzpzDvD990nl5zvmct0IIIUBEREQkA0qpCyAiIiLqLgw2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2V7366quIjo6Gg4MDXF1dO3SMEALLly+Ht7c37O3tcfPNN+P48eNN758/fx4KhaLV17ffftvi99XU1GD48OFQKBRITU3tVP0rV65EWFgYXFxc4OLigqioKPzwww+d+h1ERESWjsHmqtraWtx9991YtGhRh49588038dZbb+G9997DwYMH4enpidtvvx3l5eUAAD8/P+Tn5zd7vfTSS3B0dMSkSZNa/L5nn30W3t7eXarf19cXr7/+OlJSUpCSkoJbb70V06ZNaxa0iIiIZE9QM5988onQarXt7mc0GoWnp6d4/fXXm7ZVV1cLrVYrVq1a1eZxw4cPFw8++GCL7du3bxdBQUHi+PHjAoA4cuRIs/ePHz8uJk2aJBwdHYW7u7uYN2+eKCoqumaNvXr1EmvWrGl3LERERHLBMzZdlJWVBZ1Oh5iYmKZtGo0G48ePR2JiYqvHHDp0CKmpqfjzn//cbHtBQQEWLFiAtWvXwsHBocVx+fn5GD9+PIYPH46UlBQkJCSgoKAAs2bNavVzDAYDvv76a1RWViIqKuo6RklERGRZ1FIXYKl0Oh0AwMPDo9l2Dw8PXLhwodVjPvroIwwdOhTR0dFN24QQuP/++7Fw4UKMHj0a58+fb3HcypUrMXLkSLz22mtN2z7++GP4+fkhMzMTgwcPBgCkp6cjKioK1dXVcHJywsaNGxEcHHy9QyUiIrIYsj5js3z58jZv3m18paSkXNdnKBSKZj8LIVpsA4ArV67gyy+/bHG25j//+Q/KysqwbNmyNj/j0KFD2L17N5ycnJpeQUFBAICzZ8827TdkyBCkpqYiKSkJixYtwvz583HixInrGR4REZFFkfUZm0cffRSzZ8++5j6BgYFd+t2enp4AGs7ceHl5NW0vLCxscRYHAL777jtUVVXhvvvua7b9p59+QlJSEjQaTbPto0ePxty5c/HZZ5/BaDTizjvvxBtvvNHi9/7+s21tbTFw4MCm4w8ePIh33nkHH3zwQZfGSEREZGlkHWzc3Nzg5uZmkt/dr18/eHp6YufOnRgxYgSAhpVVe/fubTWAfPTRR5g6dSr69u3bbPu7776Lf/7zn00/5+XlYcKECVi/fj0iIiIAACNHjkR8fDwCAwOhVnd8yoQQqKmp6crwiIiILJKsg01nZGdno6SkBNnZ2TAYDE3PkRk4cCCcnJwAAEFBQVixYgViY2OhUCjwxBNP4LXXXsOgQYMwaNAgvPbaa3BwcMCcOXOa/e4zZ87g559/xvbt21t8rr+/f7OfGz9rwIAB8PX1BQD85S9/werVq3HvvffimWeegZubG86cOYOvv/4aq1evhkqlwt///ndMmjQJfn5+KC8vx9dff409e/YgISGhu/9TERERmS0Gm6teeOEFfPbZZ00/N56F2b17N26++WYAwKlTp6DX65v2efbZZ3HlyhUsXrwYly9fRkREBHbs2AFnZ+dmv/vjjz+Gj49PsxVUneHt7Y19+/ZhyZIlmDBhAmpqahAQEICJEydCqWy4TaqgoABxcXHIz8+HVqtFWFgYEhIScPvtt3fpM4mIiCyRQgghpC6CiIiIqDvIelUUERERWRcGGyIiIpIN2d1jYzQakZeXB2dn51afJ0NERETmRwiB8vJyeHt7N90/2hWyCzZ5eXnw8/OTugwiIiLqgpycnKZVwV0hu2DTuCIpJycHLi4uEldDREREHVFWVgY/P78WK4s7S3bBpvHyk4uLC4MNERGRhbne20h48zARERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGg00H6a/UYc0v57DkuzSpSyEiIqI2MNh0UHWdAa9tz8D6lBxcKK6UuhwiIiJqBYNNB3m42OGGgW4AgE1H8iSuhoiIiFrDYNMJsSN8AACbUnMhhJC4GiIi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hx4SEyZMkKjC6/P78bUmLy9P2NjYiPj4+B6urOtsbGxEVFRUs21//etfRWRkpBBCWPw8tje+1ljiPDaKiYkRU6ZMafrZ0ufvj/44vtZY4vx99dVXwtfXV3z11VciLS1NfP7556J3797i008/FUJY/jy2N77WWOI8njlzRtx0000CgFCpVGLMmDFi7ty5YujQod02h7wU1cMcHR0RGhqK06dPN60e0ul0zfYpLCyEh4eHFOVdt9+PrzVeXl4ICAho831z5OXlheDg4Gbbhg4diuzsbACw+Hlsb3xtHWNp8wgAFy5cwK5du/DQQw81bbP0+fu91sbXGkucv2eeeQZLly7F7NmzERoairi4ODz55JNYsWIFAMufx/bG1xpLnMcBAwZg7969qKioQE5ODg4cOIC6ujr069ev2+aQwaaH1dTUICMjA15eXk0TuXPnzqb3a2trsXfvXkRHR0tYZdf9fnytKS4uRk5OTpvvm6MbbrgBp06darYtMzMTAQEBAGDx89je+FpjifMIAJ988gnc3d0xefLkpm2WPn+/19r4WmOJ81dVVQWlsvlXlkqlaloObenz2N74WmOJ89jI0dERXl5euHz5Mn788UdMmzat++awu08zUXNPP/202LNnjzh37pxISkoSU6ZMEc7OzuL8+fNCiIalbVqtVmzYsEGkp6eLe++912KWJwpx7fGVl5eLp59+WiQmJoqsrCyxe/duERUVJXx8fCxmfEIIceDAAaFWq8Wrr74qTp8+LdatWyccHBzEF1980bSPJc9je+OTyzwaDAbh7+8vlixZ0uI9S56/Rm2NTy7zN3/+fOHj49O0HHrDhg3Czc1NPPvss037WPI8tjc+ucxjQkKC+OGHH8S5c+fEjh07RHh4uBg7dqyora0VQnTPHDLYmFjjGnwbGxvh7e0tZsyYIY4fP970vtFoFC+++KLw9PQUGo1G3HTTTSI9PV3CijvnWuOrqqoSMTExom/fvsLGxkb4+/uL+fPni+zsbImr7rytW7eKYcOGCY1GI4KCgsSHH37Y7H1Ln8drjU8u8/jjjz8KAOLUqVMt3rP0+ROi7fHJZf7KysrE448/Lvz9/YWdnZ3o37+/eO6550RNTU3TPpY8j+2NTy7zuH79etG/f39ha2srPD09xV/+8hdRWlra9H53zKFCCCG6/RwTERERkQR4jw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREcnG/wci5SF28bFkygAAAABJRU5ErkJggg=="},"metadata":{}}]},{"cell_type":"markdown","source":"## Work chain version","metadata":{}},{"cell_type":"code","source":"@engine.calcfunction\ndef create_eos_dictionary(**kwargs) -> orm.Dict:\n eos = {\n label: (result['volume'], result['energy'])\n for label, result in kwargs.items()\n }\n return orm.Dict(eos)","metadata":{},"execution_count":25,"outputs":[]},{"cell_type":"code","source":"create_eos_dictionary(**results).get_dict()","metadata":{},"execution_count":26,"outputs":[{"execution_count":26,"output_type":"execute_result","data":{"text/plain":"{'structure_0': [48.283007573324, -1073.9421694118],\n 'structure_1': [56.785519366503, -1074.7251942208],\n 'structure_2': [66.231834805659, -1074.9273047095],\n 'structure_3': [76.671627766898, -1074.7863009779],\n 'structure_4': [88.154572126333, -1074.451028786]}"},"metadata":{}}]},{"cell_type":"code","source":"class EquationOfState(engine.WorkChain):\n \"\"\"WorkChain to compute Equation of State using Quantum ESPRESSO.\"\"\"\n\n @classmethod\n def define(cls, spec):\n \"\"\"Specify inputs and outputs.\"\"\"\n super().define(spec)\n spec.input(\"code\", valid_type=orm.Code)\n spec.input(\"structure\", valid_type=orm.StructureData)\n spec.input(\"scale_factors\", valid_type=orm.List)\n\n spec.outline(\n cls.run_eos,\n cls.results,\n )\n spec.output(\"eos_dict\", valid_type=orm.Dict)\n\n def run_eos(self):\n\n calcjob_dict = {}\n\n for label, rescaled_structure in rescale_list(self.inputs.structure, self.inputs.scale_factors).items():\n\n builder = PwCalculation.get_builder()\n builder.code = self.inputs.code\n builder.structure = rescaled_structure\n builder.parameters = orm.Dict(scf_inputs)\n builder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\n builder.metadata.options.resources = resources\n\n calcjob_dict[label] = self.submit(builder)\n\n self.ctx.labels = list(calcjob_dict.keys())\n\n return calcjob_dict\n\n def results(self):\n\n self.report(self.ctx)\n\n eos_results = {\n label: self.ctx[label].outputs['properties'] for label in self.ctx.labels\n }\n eos_dict = create_eos_dictionary(**eos_results)\n self.out('eos_dict', eos_dict)\n","metadata":{},"execution_count":27,"outputs":[]},{"cell_type":"code","source":"engine.run(EquationOfState, code=orm.load_code('pw@localhost'),\n structure=relaxed_structure,\n scale_factors=orm.List([0.9, 0.95, 1.0, 1.05, 1.1]))","metadata":{},"execution_count":28,"outputs":[{"name":"stderr","text":"04/04/2024 05:40:39 PM <83> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [71|EquationOfState|results]: AttributeDict({'labels': ['structure_0', 'structure_1', 'structure_2', 'structure_3', 'structure_4'], 'structure_0': , 'structure_1': , 'structure_2': , 'structure_3': , 'structure_4': })\n","output_type":"stream"},{"execution_count":28,"output_type":"execute_result","data":{"text/plain":"{'eos_dict': }"},"metadata":{}}]},{"cell_type":"markdown","source":"## Using the `builder`","metadata":{}},{"cell_type":"code","source":"builder = EquationOfState.get_builder()","metadata":{},"execution_count":29,"outputs":[]},{"cell_type":"code","source":"builder.structure = relaxed_structure","metadata":{},"execution_count":30,"outputs":[]},{"cell_type":"code","source":"builder","metadata":{},"execution_count":31,"outputs":[{"execution_count":31,"output_type":"execute_result","data":{"text/plain":"Process class: EquationOfState\nInputs:\nmetadata: {}\nstructure: Al\n"},"metadata":{}}]},{"cell_type":"code","source":"builder.scale_factors = orm.List([0.9, 0.95, 1.0, 1.05, 1.1])\nbuilder.code = orm.load_code('pw@localhost')","metadata":{},"execution_count":32,"outputs":[]},{"cell_type":"code","source":"results, node = engine.run_get_node(builder)","metadata":{},"execution_count":33,"outputs":[{"name":"stderr","text":"04/04/2024 05:41:05 PM <83> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [116|EquationOfState|results]: AttributeDict({'labels': ['structure_0', 'structure_1', 'structure_2', 'structure_3', 'structure_4'], 'structure_0': , 'structure_1': , 'structure_2': , 'structure_3': , 'structure_4': })\n","output_type":"stream"}]},{"cell_type":"code","source":"results['eos_dict'].get_dict()","metadata":{},"execution_count":34,"outputs":[{"execution_count":34,"output_type":"execute_result","data":{"text/plain":"{'structure_0': [48.283007573324, -1073.9421694118],\n 'structure_1': [56.785519366503, -1074.7251942208],\n 'structure_2': [66.231834805659, -1074.9273047095],\n 'structure_3': [76.671627766898, -1074.7863009779],\n 'structure_4': [88.154572126333, -1074.451028786]}"},"metadata":{}}]},{"cell_type":"code","source":"eos = node.outputs.eos_dict.get_dict()","metadata":{},"execution_count":35,"outputs":[]},{"cell_type":"code","source":"eos","metadata":{},"execution_count":36,"outputs":[{"execution_count":36,"output_type":"execute_result","data":{"text/plain":"{'structure_0': [48.283007573324, -1073.9421694118],\n 'structure_1': [56.785519366503, -1074.7251942208],\n 'structure_2': [66.231834805659, -1074.9273047095],\n 'structure_3': [76.671627766898, -1074.7863009779],\n 'structure_4': [88.154572126333, -1074.451028786]}"},"metadata":{}}]},{"cell_type":"code","source":"plt.plot(\n [v[0] for v in eos.values()],\n [v[1] for v in eos.values()],\n)","metadata":{"tags":[]},"execution_count":37,"outputs":[{"execution_count":37,"output_type":"execute_result","data":{"text/plain":"[]"},"metadata":{}},{"output_type":"display_data","data":{"text/plain":"
","image/png":"iVBORw0KGgoAAAANSUhEUgAAAjYAAAGsCAYAAADOo+2NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJoklEQVR4nO3deVxU9f4/8NcsMOyDiuybO4KAO0uW1S3UNBUtM5WsbpZ6u6231NutrG5ZfX+3W91uWtpqVla4Z6Te1EoERUVQUVxQEBhAkGGTbebz+wOhCJBFhjNz5vV8POYPzpzDvD990nl5zvmct0IIIUBEREQkA0qpCyAiIiLqLgw2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2V7366quIjo6Gg4MDXF1dO3SMEALLly+Ht7c37O3tcfPNN+P48eNN758/fx4KhaLV17ffftvi99XU1GD48OFQKBRITU3tVP0rV65EWFgYXFxc4OLigqioKPzwww+d+h1ERESWjsHmqtraWtx9991YtGhRh49588038dZbb+G9997DwYMH4enpidtvvx3l5eUAAD8/P+Tn5zd7vfTSS3B0dMSkSZNa/L5nn30W3t7eXarf19cXr7/+OlJSUpCSkoJbb70V06ZNaxa0iIiIZE9QM5988onQarXt7mc0GoWnp6d4/fXXm7ZVV1cLrVYrVq1a1eZxw4cPFw8++GCL7du3bxdBQUHi+PHjAoA4cuRIs/ePHz8uJk2aJBwdHYW7u7uYN2+eKCoqumaNvXr1EmvWrGl3LERERHLBMzZdlJWVBZ1Oh5iYmKZtGo0G48ePR2JiYqvHHDp0CKmpqfjzn//cbHtBQQEWLFiAtWvXwsHBocVx+fn5GD9+PIYPH46UlBQkJCSgoKAAs2bNavVzDAYDvv76a1RWViIqKuo6RklERGRZ1FIXYKl0Oh0AwMPDo9l2Dw8PXLhwodVjPvroIwwdOhTR0dFN24QQuP/++7Fw4UKMHj0a58+fb3HcypUrMXLkSLz22mtN2z7++GP4+fkhMzMTgwcPBgCkp6cjKioK1dXVcHJywsaNGxEcHHy9QyUiIrIYsj5js3z58jZv3m18paSkXNdnKBSKZj8LIVpsA4ArV67gyy+/bHG25j//+Q/KysqwbNmyNj/j0KFD2L17N5ycnJpeQUFBAICzZ8827TdkyBCkpqYiKSkJixYtwvz583HixInrGR4REZFFkfUZm0cffRSzZ8++5j6BgYFd+t2enp4AGs7ceHl5NW0vLCxscRYHAL777jtUVVXhvvvua7b9p59+QlJSEjQaTbPto0ePxty5c/HZZ5/BaDTizjvvxBtvvNHi9/7+s21tbTFw4MCm4w8ePIh33nkHH3zwQZfGSEREZGlkHWzc3Nzg5uZmkt/dr18/eHp6YufOnRgxYgSAhpVVe/fubTWAfPTRR5g6dSr69u3bbPu7776Lf/7zn00/5+XlYcKECVi/fj0iIiIAACNHjkR8fDwCAwOhVnd8yoQQqKmp6crwiIiILJKsg01nZGdno6SkBNnZ2TAYDE3PkRk4cCCcnJwAAEFBQVixYgViY2OhUCjwxBNP4LXXXsOgQYMwaNAgvPbaa3BwcMCcOXOa/e4zZ87g559/xvbt21t8rr+/f7OfGz9rwIAB8PX1BQD85S9/werVq3HvvffimWeegZubG86cOYOvv/4aq1evhkqlwt///ndMmjQJfn5+KC8vx9dff409e/YgISGhu/9TERERmS0Gm6teeOEFfPbZZ00/N56F2b17N26++WYAwKlTp6DX65v2efbZZ3HlyhUsXrwYly9fRkREBHbs2AFnZ+dmv/vjjz+Gj49PsxVUneHt7Y19+/ZhyZIlmDBhAmpqahAQEICJEydCqWy4TaqgoABxcXHIz8+HVqtFWFgYEhIScPvtt3fpM4mIiCyRQgghpC6CiIiIqDvIelUUERERWRcGGyIiIpIN2d1jYzQakZeXB2dn51afJ0NERETmRwiB8vJyeHt7N90/2hWyCzZ5eXnw8/OTugwiIiLqgpycnKZVwV0hu2DTuCIpJycHLi4uEldDREREHVFWVgY/P78WK4s7S3bBpvHyk4uLC4MNERGRhbne20h48zARERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGg00H6a/UYc0v57DkuzSpSyEiIqI2MNh0UHWdAa9tz8D6lBxcKK6UuhwiIiJqBYNNB3m42OGGgW4AgE1H8iSuhoiIiFrDYNMJsSN8AACbUnMhhJC4GiIi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hx4SEyZMkKjC6/P78bUmLy9P2NjYiPj4+B6urOtsbGxEVFRUs21//etfRWRkpBBCWPw8tje+1ljiPDaKiYkRU6ZMafrZ0ufvj/44vtZY4vx99dVXwtfXV3z11VciLS1NfP7556J3797i008/FUJY/jy2N77WWOI8njlzRtx0000CgFCpVGLMmDFi7ty5YujQod02h7wU1cMcHR0RGhqK06dPN60e0ul0zfYpLCyEh4eHFOVdt9+PrzVeXl4ICAho831z5OXlheDg4Gbbhg4diuzsbACw+Hlsb3xtHWNp8wgAFy5cwK5du/DQQw81bbP0+fu91sbXGkucv2eeeQZLly7F7NmzERoairi4ODz55JNYsWIFAMufx/bG1xpLnMcBAwZg7969qKioQE5ODg4cOIC6ujr069ev2+aQwaaH1dTUICMjA15eXk0TuXPnzqb3a2trsXfvXkRHR0tYZdf9fnytKS4uRk5OTpvvm6MbbrgBp06darYtMzMTAQEBAGDx89je+FpjifMIAJ988gnc3d0xefLkpm2WPn+/19r4WmOJ81dVVQWlsvlXlkqlaloObenz2N74WmOJ89jI0dERXl5euHz5Mn788UdMmzat++awu08zUXNPP/202LNnjzh37pxISkoSU6ZMEc7OzuL8+fNCiIalbVqtVmzYsEGkp6eLe++912KWJwpx7fGVl5eLp59+WiQmJoqsrCyxe/duERUVJXx8fCxmfEIIceDAAaFWq8Wrr74qTp8+LdatWyccHBzEF1980bSPJc9je+OTyzwaDAbh7+8vlixZ0uI9S56/Rm2NTy7zN3/+fOHj49O0HHrDhg3Czc1NPPvss037WPI8tjc+ucxjQkKC+OGHH8S5c+fEjh07RHh4uBg7dqyora0VQnTPHDLYmFjjGnwbGxvh7e0tZsyYIY4fP970vtFoFC+++KLw9PQUGo1G3HTTTSI9PV3CijvnWuOrqqoSMTExom/fvsLGxkb4+/uL+fPni+zsbImr7rytW7eKYcOGCY1GI4KCgsSHH37Y7H1Ln8drjU8u8/jjjz8KAOLUqVMt3rP0+ROi7fHJZf7KysrE448/Lvz9/YWdnZ3o37+/eO6550RNTU3TPpY8j+2NTy7zuH79etG/f39ha2srPD09xV/+8hdRWlra9H53zKFCCCG6/RwTERERkQR4jw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREcnG/wci5SF28bFkygAAAABJRU5ErkJggg=="},"metadata":{}}]}]} \ No newline at end of file +{ + "metadata": { + "kernelspec": { + "name": "python3", + "display_name": "Python 3 (ipykernel)", + "language": "python" + }, + "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.11.0" + } + }, + "nbformat_minor": 4, + "nbformat": 4, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Aiida" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "import subprocess" + ], + "metadata": { + "tags": [] + }, + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "try: \n", + " subprocess.check_output([\"verdi\", \"profile\", \"setup\", \"core.sqlite_dos\", \"-n\", \"--profile\", \"test\", \"--email\", \"no@email.com\"])\n", + "except: \n", + " pass" + ], + "metadata": { + "tags": [] + }, + "execution_count": 2, + "outputs": [ + { + "name": "stderr", + "text": "/srv/conda/envs/notebook/lib/python3.11/site-packages/aiida/manage/configuration/settings.py:59: UserWarning: Creating AiiDA configuration folder `/home/jovyan/.aiida`.\n warnings.warn(f'Creating AiiDA configuration folder `{path}`.')\n", + "output_type": "stream" + } + ] + }, + { + "cell_type": "code", + "source": [ + "from pathlib import Path\n", + "from ase.build import bulk\n", + "\n", + "from aiida import orm, engine, load_profile\n", + "from aiida.common.exceptions import NotExistent\n", + "\n", + "load_profile()" + ], + "metadata": { + "tags": [] + }, + "execution_count": 3, + "outputs": [ + { + "execution_count": 3, + "output_type": "execute_result", + "data": { + "text/plain": "Profile" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "try:\n", + " localhost = orm.load_computer('localhost')\n", + "except NotExistent:\n", + " localhost = orm.Computer(\n", + " label='localhost',\n", + " hostname='localhost',\n", + " transport_type='core.local',\n", + " scheduler_type='core.direct',\n", + " workdir=Path('workdir').absolute().as_posix()\n", + " ).store()\n", + " localhost.configure()\n", + "\n", + "try:\n", + " pw_code = orm.load_code('pw@localhost')\n", + "except NotExistent:\n", + " pw_code = orm.InstalledCode(\n", + " label='pw',\n", + " computer=localhost,\n", + " filepath_executable='pw.x',\n", + " default_calc_job_plugin='aiida_qe_basic.pw',\n", + " prepend_text='export OMP_NUM_THREADS=1'\n", + " ).store()" + ], + "metadata": { + "tags": [] + }, + "execution_count": 4, + "outputs": [ + { + "name": "stderr", + "text": "/srv/conda/envs/notebook/lib/python3.11/site-packages/aiida/orm/nodes/data/code/legacy.py:42: AiidaDeprecationWarning: The `Code` class is deprecated. To create an instance, use the `aiida.orm.nodes.data.code.installed.InstalledCode` or `aiida.orm.nodes.data.code.portable.PortableCode` for a \"remote\" or \"local\" code, respectively. If you are using this class to compare type, e.g. in `isinstance`, use `aiida.orm.nodes.data.code.abstract.AbstractCode`. (this will be removed in v3)\n warn_deprecation(\n", + "output_type": "stream" + } + ] + }, + { + "cell_type": "code", + "source": [ + "from aiida_qe_basic.pw import PwCalculation\n", + "\n", + "builder = PwCalculation.get_builder()\n", + "\n", + "builder.code = pw_code\n", + "builder.structure = orm.StructureData(ase=bulk('Al', a=4.05, cubic=True))\n", + "builder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\n", + "builder.parameters = orm.Dict(\n", + " {\n", + " 'CONTROL': {\n", + " 'calculation': 'scf',\n", + " # 'pseudo_dir': Path('files').absolute().as_posix(),\n", + " },\n", + " 'SYSTEM': {\n", + " 'occupations': 'smearing',\n", + " 'smearing': 'cold',\n", + " 'degauss': 0.02\n", + " }\n", + " }\n", + ")\n", + "builder.metadata.options.resources = {\n", + " 'num_machines': 1,\n", + " 'num_mpiprocs_per_machine': 1\n", + "}" + ], + "metadata": { + "tags": [] + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "! rabbitmq-server -detached" + ], + "metadata": {}, + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "! sleep 5" + ], + "metadata": {}, + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "results = engine.run(builder)" + ], + "metadata": { + "tags": [] + }, + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "results" + ], + "metadata": {}, + "execution_count": 9, + "outputs": [ + { + "execution_count": 9, + "output_type": "execute_result", + "data": { + "text/plain": "{'structure': ,\n 'properties': ,\n 'remote_folder': ,\n 'retrieved': }" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "results['properties'].get_dict()" + ], + "metadata": {}, + "execution_count": 10, + "outputs": [ + { + "execution_count": 10, + "output_type": "execute_result", + "data": { + "text/plain": "{'energy': -1074.9272223013, 'volume': 66.430124128914}" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Equation of State curve - basic QE\n", + "\n", + "Running an EOS without all the fancy features in the `aiida-quantumespresso` plugin." + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "from pathlib import Path\n", + "\n", + "from aiida import orm, engine, load_profile\n", + "\n", + "load_profile()" + ], + "metadata": {}, + "execution_count": 11, + "outputs": [ + { + "execution_count": 11, + "output_type": "execute_result", + "data": { + "text/plain": "Profile" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Importing a structure" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "from ase.build import bulk\n", + "\n", + "structure = orm.StructureData(ase=bulk('Al', a=4.05, cubic=True))" + ], + "metadata": {}, + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Relaxing the geometry" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "resources = {\n", + " 'num_machines': 1,\n", + " 'num_mpiprocs_per_machine': 1\n", + "}\n", + "\n", + "relax_params = {\n", + " 'CONTROL': {\n", + " 'calculation': 'vc-relax',\n", + " # 'pseudo_dir': Path('files').absolute().as_posix(),\n", + " },\n", + " 'SYSTEM': {\n", + " 'occupations': 'smearing',\n", + " 'smearing': 'cold',\n", + " 'degauss': 0.02\n", + " }\n", + "}" + ], + "metadata": {}, + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from aiida_qe_basic.pw import PwCalculation\n", + "\n", + "builder = PwCalculation.get_builder()\n", + "\n", + "builder.code = orm.load_code('pw@localhost')\n", + "builder.structure = orm.StructureData(ase=bulk('Al', a=4.05, cubic=True))\n", + "builder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\n", + "builder.parameters = orm.Dict(relax_params)\n", + "builder.metadata.options.resources = resources" + ], + "metadata": {}, + "execution_count": 14, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "results = engine.run(builder)\n", + "relaxed_structure = results['structure']\n", + "relaxed_structure" + ], + "metadata": {}, + "execution_count": 15, + "outputs": [ + { + "execution_count": 15, + "output_type": "execute_result", + "data": { + "text/plain": "" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Calc function to rescale structures\n", + "\n", + "The `calcfunction` below takes an input structure and rescales it to different volumes." + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "from aiida_qe_basic.pw import PwCalculation\n", + "\n", + "@engine.calcfunction\n", + "def rescale_list(structure: orm.StructureData, factor_list: orm.List):\n", + "\n", + " scaled_structure_dict = {}\n", + "\n", + " for index, scaling_factor in enumerate(factor_list.get_list()):\n", + "\n", + " ase_structure = structure.get_ase()\n", + "\n", + " new_cell = ase_structure.get_cell() * scaling_factor\n", + " ase_structure.set_cell(new_cell, scale_atoms=True)\n", + "\n", + " scaled_structure_dict[f'structure_{index}'] = orm.StructureData(ase=ase_structure)\n", + "\n", + " return scaled_structure_dict" + ], + "metadata": {}, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Typically, you'd just run it by calling the function as you would a regular Python function:" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "rescaled_structures = rescale_list(relaxed_structure, orm.List(list=[0.9, 0.95, 1.0, 1.05, 1.1]))" + ], + "metadata": {}, + "execution_count": 17, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "rescaled_structures" + ], + "metadata": {}, + "execution_count": 18, + "outputs": [ + { + "execution_count": 18, + "output_type": "execute_result", + "data": { + "text/plain": "{'structure_0': ,\n 'structure_1': ,\n 'structure_2': ,\n 'structure_3': ,\n 'structure_4': }" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## EOS: Work function version" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "scf_inputs = {\n", + " 'CONTROL': {\n", + " 'calculation': 'scf',\n", + " # 'pseudo_dir': Path('files').absolute().as_posix(),\n", + " },\n", + " 'SYSTEM': {\n", + " 'occupations': 'smearing',\n", + " 'smearing': 'cold',\n", + " 'degauss': 0.02\n", + " }\n", + "}" + ], + "metadata": {}, + "execution_count": 19, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "@engine.workfunction\n", + "def run_eos_wf(code: orm.Code, structure: orm.StructureData, scale_factors: orm.List):\n", + " \"\"\"Run an equation of state of a bulk crystal structure for the given element.\"\"\"\n", + "\n", + " properties = {}\n", + "\n", + " for label, rescaled_structure in rescale_list(structure, scale_factors).items():\n", + "\n", + " builder = PwCalculation.get_builder()\n", + " builder.code = code\n", + " builder.structure = rescaled_structure\n", + " builder.parameters = orm.Dict(scf_inputs)\n", + " builder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\n", + " builder.metadata.options.resources = resources\n", + "\n", + " results = engine.run(builder)\n", + " properties[label] = results['properties']\n", + "\n", + " return properties" + ], + "metadata": {}, + "execution_count": 20, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "results = run_eos_wf(\n", + " code=orm.load_code('pw@localhost'),\n", + " structure=relaxed_structure,\n", + " scale_factors=[0.9, 0.95, 1.0, 1.05, 1.1]\n", + ")" + ], + "metadata": {}, + "execution_count": 21, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "results" + ], + "metadata": {}, + "execution_count": 22, + "outputs": [ + { + "execution_count": 22, + "output_type": "execute_result", + "data": { + "text/plain": "{'structure_0': ,\n 'structure_1': ,\n 'structure_2': ,\n 'structure_3': ,\n 'structure_4': }" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "volumes = []\n", + "energies = []\n", + "\n", + "for result in results.values():\n", + " volumes.append(result['volume'])\n", + " energies.append(result['energy'])" + ], + "metadata": {}, + "execution_count": 23, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.plot(volumes, energies)" + ], + "metadata": {}, + "execution_count": 24, + "outputs": [ + { + "execution_count": 24, + "output_type": "execute_result", + "data": { + "text/plain": "[]" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAGsCAYAAADOo+2NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJoklEQVR4nO3deVxU9f4/8NcsMOyDiuybO4KAO0uW1S3UNBUtM5WsbpZ6u6231NutrG5ZfX+3W91uWtpqVla4Z6Te1EoERUVQUVxQEBhAkGGTbebz+wOhCJBFhjNz5vV8POYPzpzDvD990nl5zvmct0IIIUBEREQkA0qpCyAiIiLqLgw2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2V7366quIjo6Gg4MDXF1dO3SMEALLly+Ht7c37O3tcfPNN+P48eNN758/fx4KhaLV17ffftvi99XU1GD48OFQKBRITU3tVP0rV65EWFgYXFxc4OLigqioKPzwww+d+h1ERESWjsHmqtraWtx9991YtGhRh49588038dZbb+G9997DwYMH4enpidtvvx3l5eUAAD8/P+Tn5zd7vfTSS3B0dMSkSZNa/L5nn30W3t7eXarf19cXr7/+OlJSUpCSkoJbb70V06ZNaxa0iIiIZE9QM5988onQarXt7mc0GoWnp6d4/fXXm7ZVV1cLrVYrVq1a1eZxw4cPFw8++GCL7du3bxdBQUHi+PHjAoA4cuRIs/ePHz8uJk2aJBwdHYW7u7uYN2+eKCoqumaNvXr1EmvWrGl3LERERHLBMzZdlJWVBZ1Oh5iYmKZtGo0G48ePR2JiYqvHHDp0CKmpqfjzn//cbHtBQQEWLFiAtWvXwsHBocVx+fn5GD9+PIYPH46UlBQkJCSgoKAAs2bNavVzDAYDvv76a1RWViIqKuo6RklERGRZ1FIXYKl0Oh0AwMPDo9l2Dw8PXLhwodVjPvroIwwdOhTR0dFN24QQuP/++7Fw4UKMHj0a58+fb3HcypUrMXLkSLz22mtN2z7++GP4+fkhMzMTgwcPBgCkp6cjKioK1dXVcHJywsaNGxEcHHy9QyUiIrIYsj5js3z58jZv3m18paSkXNdnKBSKZj8LIVpsA4ArV67gyy+/bHG25j//+Q/KysqwbNmyNj/j0KFD2L17N5ycnJpeQUFBAICzZ8827TdkyBCkpqYiKSkJixYtwvz583HixInrGR4REZFFkfUZm0cffRSzZ8++5j6BgYFd+t2enp4AGs7ceHl5NW0vLCxscRYHAL777jtUVVXhvvvua7b9p59+QlJSEjQaTbPto0ePxty5c/HZZ5/BaDTizjvvxBtvvNHi9/7+s21tbTFw4MCm4w8ePIh33nkHH3zwQZfGSEREZGlkHWzc3Nzg5uZmkt/dr18/eHp6YufOnRgxYgSAhpVVe/fubTWAfPTRR5g6dSr69u3bbPu7776Lf/7zn00/5+XlYcKECVi/fj0iIiIAACNHjkR8fDwCAwOhVnd8yoQQqKmp6crwiIiILJKsg01nZGdno6SkBNnZ2TAYDE3PkRk4cCCcnJwAAEFBQVixYgViY2OhUCjwxBNP4LXXXsOgQYMwaNAgvPbaa3BwcMCcOXOa/e4zZ87g559/xvbt21t8rr+/f7OfGz9rwIAB8PX1BQD85S9/werVq3HvvffimWeegZubG86cOYOvv/4aq1evhkqlwt///ndMmjQJfn5+KC8vx9dff409e/YgISGhu/9TERERmS0Gm6teeOEFfPbZZ00/N56F2b17N26++WYAwKlTp6DX65v2efbZZ3HlyhUsXrwYly9fRkREBHbs2AFnZ+dmv/vjjz+Gj49PsxVUneHt7Y19+/ZhyZIlmDBhAmpqahAQEICJEydCqWy4TaqgoABxcXHIz8+HVqtFWFgYEhIScPvtt3fpM4mIiCyRQgghpC6CiIiIqDvIelUUERERWRcGGyIiIpIN2d1jYzQakZeXB2dn51afJ0NERETmRwiB8vJyeHt7N90/2hWyCzZ5eXnw8/OTugwiIiLqgpycnKZVwV0hu2DTuCIpJycHLi4uEldDREREHVFWVgY/P78WK4s7S3bBpvHyk4uLC4MNERGRhbne20h48zARERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGg00H6a/UYc0v57DkuzSpSyEiIqI2MNh0UHWdAa9tz8D6lBxcKK6UuhwiIiJqBYNNB3m42OGGgW4AgE1H8iSuhoiIiFrDYNMJsSN8AACbUnMhhJC4GiIi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hx4SEyZMkKjC6/P78bUmLy9P2NjYiPj4+B6urOtsbGxEVFRUs21//etfRWRkpBBCWPw8tje+1ljiPDaKiYkRU6ZMafrZ0ufvj/44vtZY4vx99dVXwtfXV3z11VciLS1NfP7556J3797i008/FUJY/jy2N77WWOI8njlzRtx0000CgFCpVGLMmDFi7ty5YujQod02h7wU1cMcHR0RGhqK06dPN60e0ul0zfYpLCyEh4eHFOVdt9+PrzVeXl4ICAho831z5OXlheDg4Gbbhg4diuzsbACw+Hlsb3xtHWNp8wgAFy5cwK5du/DQQw81bbP0+fu91sbXGkucv2eeeQZLly7F7NmzERoairi4ODz55JNYsWIFAMufx/bG1xpLnMcBAwZg7969qKioQE5ODg4cOIC6ujr069ev2+aQwaaH1dTUICMjA15eXk0TuXPnzqb3a2trsXfvXkRHR0tYZdf9fnytKS4uRk5OTpvvm6MbbrgBp06darYtMzMTAQEBAGDx89je+FpjifMIAJ988gnc3d0xefLkpm2WPn+/19r4WmOJ81dVVQWlsvlXlkqlaloObenz2N74WmOJ89jI0dERXl5euHz5Mn788UdMmzat++awu08zUXNPP/202LNnjzh37pxISkoSU6ZMEc7OzuL8+fNCiIalbVqtVmzYsEGkp6eLe++912KWJwpx7fGVl5eLp59+WiQmJoqsrCyxe/duERUVJXx8fCxmfEIIceDAAaFWq8Wrr74qTp8+LdatWyccHBzEF1980bSPJc9je+OTyzwaDAbh7+8vlixZ0uI9S56/Rm2NTy7zN3/+fOHj49O0HHrDhg3Czc1NPPvss037WPI8tjc+ucxjQkKC+OGHH8S5c+fEjh07RHh4uBg7dqyora0VQnTPHDLYmFjjGnwbGxvh7e0tZsyYIY4fP970vtFoFC+++KLw9PQUGo1G3HTTTSI9PV3CijvnWuOrqqoSMTExom/fvsLGxkb4+/uL+fPni+zsbImr7rytW7eKYcOGCY1GI4KCgsSHH37Y7H1Ln8drjU8u8/jjjz8KAOLUqVMt3rP0+ROi7fHJZf7KysrE448/Lvz9/YWdnZ3o37+/eO6550RNTU3TPpY8j+2NTy7zuH79etG/f39ha2srPD09xV/+8hdRWlra9H53zKFCCCG6/RwTERERkQR4jw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREcnG/wci5SF28bFkygAAAABJRU5ErkJggg==" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Work chain version" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "@engine.calcfunction\n", + "def create_eos_dictionary(**kwargs) -> orm.Dict:\n", + " eos = {\n", + " label: (result['volume'], result['energy'])\n", + " for label, result in kwargs.items()\n", + " }\n", + " return orm.Dict(eos)" + ], + "metadata": {}, + "execution_count": 25, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "create_eos_dictionary(**results).get_dict()" + ], + "metadata": {}, + "execution_count": 26, + "outputs": [ + { + "execution_count": 26, + "output_type": "execute_result", + "data": { + "text/plain": "{'structure_0': [48.283007573324, -1073.9421694118],\n 'structure_1': [56.785519366503, -1074.7251942208],\n 'structure_2': [66.231834805659, -1074.9273047095],\n 'structure_3': [76.671627766898, -1074.7863009779],\n 'structure_4': [88.154572126333, -1074.451028786]}" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "class EquationOfState(engine.WorkChain):\n", + " \"\"\"WorkChain to compute Equation of State using Quantum ESPRESSO.\"\"\"\n", + "\n", + " @classmethod\n", + " def define(cls, spec):\n", + " \"\"\"Specify inputs and outputs.\"\"\"\n", + " super().define(spec)\n", + " spec.input(\"code\", valid_type=orm.Code)\n", + " spec.input(\"structure\", valid_type=orm.StructureData)\n", + " spec.input(\"scale_factors\", valid_type=orm.List)\n", + "\n", + " spec.outline(\n", + " cls.run_eos,\n", + " cls.results,\n", + " )\n", + " spec.output(\"eos_dict\", valid_type=orm.Dict)\n", + "\n", + " def run_eos(self):\n", + "\n", + " calcjob_dict = {}\n", + "\n", + " for label, rescaled_structure in rescale_list(self.inputs.structure, self.inputs.scale_factors).items():\n", + "\n", + " builder = PwCalculation.get_builder()\n", + " builder.code = self.inputs.code\n", + " builder.structure = rescaled_structure\n", + " builder.parameters = orm.Dict(scf_inputs)\n", + " builder.pseudopotentials = orm.Dict({\"Al\": \"Al.pbe-n-kjpaw_psl.1.0.0.UPF\"})\n", + " builder.metadata.options.resources = resources\n", + "\n", + " calcjob_dict[label] = self.submit(builder)\n", + "\n", + " self.ctx.labels = list(calcjob_dict.keys())\n", + "\n", + " return calcjob_dict\n", + "\n", + " def results(self):\n", + "\n", + " self.report(self.ctx)\n", + "\n", + " eos_results = {\n", + " label: self.ctx[label].outputs['properties'] for label in self.ctx.labels\n", + " }\n", + " eos_dict = create_eos_dictionary(**eos_results)\n", + " self.out('eos_dict', eos_dict)\n" + ], + "metadata": {}, + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "engine.run(EquationOfState, code=orm.load_code('pw@localhost'),\n", + " structure=relaxed_structure,\n", + " scale_factors=orm.List([0.9, 0.95, 1.0, 1.05, 1.1]))" + ], + "metadata": {}, + "execution_count": 28, + "outputs": [ + { + "name": "stderr", + "text": "04/04/2024 05:40:39 PM <83> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [71|EquationOfState|results]: AttributeDict({'labels': ['structure_0', 'structure_1', 'structure_2', 'structure_3', 'structure_4'], 'structure_0': , 'structure_1': , 'structure_2': , 'structure_3': , 'structure_4': })\n", + "output_type": "stream" + }, + { + "execution_count": 28, + "output_type": "execute_result", + "data": { + "text/plain": "{'eos_dict': }" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Using the `builder`" + ], + "metadata": {} + }, + { + "cell_type": "code", + "source": [ + "builder = EquationOfState.get_builder()" + ], + "metadata": {}, + "execution_count": 29, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "builder.structure = relaxed_structure" + ], + "metadata": {}, + "execution_count": 30, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "builder" + ], + "metadata": {}, + "execution_count": 31, + "outputs": [ + { + "execution_count": 31, + "output_type": "execute_result", + "data": { + "text/plain": "Process class: EquationOfState\nInputs:\nmetadata: {}\nstructure: Al\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "builder.scale_factors = orm.List([0.9, 0.95, 1.0, 1.05, 1.1])\n", + "builder.code = orm.load_code('pw@localhost')" + ], + "metadata": {}, + "execution_count": 32, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "results, node = engine.run_get_node(builder)" + ], + "metadata": {}, + "execution_count": 33, + "outputs": [ + { + "name": "stderr", + "text": "04/04/2024 05:41:05 PM <83> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [116|EquationOfState|results]: AttributeDict({'labels': ['structure_0', 'structure_1', 'structure_2', 'structure_3', 'structure_4'], 'structure_0': , 'structure_1': , 'structure_2': , 'structure_3': , 'structure_4': })\n", + "output_type": "stream" + } + ] + }, + { + "cell_type": "code", + "source": [ + "results['eos_dict'].get_dict()" + ], + "metadata": {}, + "execution_count": 34, + "outputs": [ + { + "execution_count": 34, + "output_type": "execute_result", + "data": { + "text/plain": "{'structure_0': [48.283007573324, -1073.9421694118],\n 'structure_1': [56.785519366503, -1074.7251942208],\n 'structure_2': [66.231834805659, -1074.9273047095],\n 'structure_3': [76.671627766898, -1074.7863009779],\n 'structure_4': [88.154572126333, -1074.451028786]}" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "eos = node.outputs.eos_dict.get_dict()" + ], + "metadata": {}, + "execution_count": 35, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "eos" + ], + "metadata": {}, + "execution_count": 36, + "outputs": [ + { + "execution_count": 36, + "output_type": "execute_result", + "data": { + "text/plain": "{'structure_0': [48.283007573324, -1073.9421694118],\n 'structure_1': [56.785519366503, -1074.7251942208],\n 'structure_2': [66.231834805659, -1074.9273047095],\n 'structure_3': [76.671627766898, -1074.7863009779],\n 'structure_4': [88.154572126333, -1074.451028786]}" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plt.plot(\n", + " [v[0] for v in eos.values()],\n", + " [v[1] for v in eos.values()],\n", + ")" + ], + "metadata": { + "tags": [] + }, + "execution_count": 37, + "outputs": [ + { + "execution_count": 37, + "output_type": "execute_result", + "data": { + "text/plain": "[]" + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAGsCAYAAADOo+2NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJoklEQVR4nO3deVxU9f4/8NcsMOyDiuybO4KAO0uW1S3UNBUtM5WsbpZ6u6231NutrG5ZfX+3W91uWtpqVla4Z6Te1EoERUVQUVxQEBhAkGGTbebz+wOhCJBFhjNz5vV8POYPzpzDvD990nl5zvmct0IIIUBEREQkA0qpCyAiIiLqLgw2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2REREJBsMNkRERCQbDDZEREQkGww2V7366quIjo6Gg4MDXF1dO3SMEALLly+Ht7c37O3tcfPNN+P48eNN758/fx4KhaLV17ffftvi99XU1GD48OFQKBRITU3tVP0rV65EWFgYXFxc4OLigqioKPzwww+d+h1ERESWjsHmqtraWtx9991YtGhRh49588038dZbb+G9997DwYMH4enpidtvvx3l5eUAAD8/P+Tn5zd7vfTSS3B0dMSkSZNa/L5nn30W3t7eXarf19cXr7/+OlJSUpCSkoJbb70V06ZNaxa0iIiIZE9QM5988onQarXt7mc0GoWnp6d4/fXXm7ZVV1cLrVYrVq1a1eZxw4cPFw8++GCL7du3bxdBQUHi+PHjAoA4cuRIs/ePHz8uJk2aJBwdHYW7u7uYN2+eKCoqumaNvXr1EmvWrGl3LERERHLBMzZdlJWVBZ1Oh5iYmKZtGo0G48ePR2JiYqvHHDp0CKmpqfjzn//cbHtBQQEWLFiAtWvXwsHBocVx+fn5GD9+PIYPH46UlBQkJCSgoKAAs2bNavVzDAYDvv76a1RWViIqKuo6RklERGRZ1FIXYKl0Oh0AwMPDo9l2Dw8PXLhwodVjPvroIwwdOhTR0dFN24QQuP/++7Fw4UKMHj0a58+fb3HcypUrMXLkSLz22mtN2z7++GP4+fkhMzMTgwcPBgCkp6cjKioK1dXVcHJywsaNGxEcHHy9QyUiIrIYsj5js3z58jZv3m18paSkXNdnKBSKZj8LIVpsA4ArV67gyy+/bHG25j//+Q/KysqwbNmyNj/j0KFD2L17N5ycnJpeQUFBAICzZ8827TdkyBCkpqYiKSkJixYtwvz583HixInrGR4REZFFkfUZm0cffRSzZ8++5j6BgYFd+t2enp4AGs7ceHl5NW0vLCxscRYHAL777jtUVVXhvvvua7b9p59+QlJSEjQaTbPto0ePxty5c/HZZ5/BaDTizjvvxBtvvNHi9/7+s21tbTFw4MCm4w8ePIh33nkHH3zwQZfGSEREZGlkHWzc3Nzg5uZmkt/dr18/eHp6YufOnRgxYgSAhpVVe/fubTWAfPTRR5g6dSr69u3bbPu7776Lf/7zn00/5+XlYcKECVi/fj0iIiIAACNHjkR8fDwCAwOhVnd8yoQQqKmp6crwiIiILJKsg01nZGdno6SkBNnZ2TAYDE3PkRk4cCCcnJwAAEFBQVixYgViY2OhUCjwxBNP4LXXXsOgQYMwaNAgvPbaa3BwcMCcOXOa/e4zZ87g559/xvbt21t8rr+/f7OfGz9rwIAB8PX1BQD85S9/werVq3HvvffimWeegZubG86cOYOvv/4aq1evhkqlwt///ndMmjQJfn5+KC8vx9dff409e/YgISGhu/9TERERmS0Gm6teeOEFfPbZZ00/N56F2b17N26++WYAwKlTp6DX65v2efbZZ3HlyhUsXrwYly9fRkREBHbs2AFnZ+dmv/vjjz+Gj49PsxVUneHt7Y19+/ZhyZIlmDBhAmpqahAQEICJEydCqWy4TaqgoABxcXHIz8+HVqtFWFgYEhIScPvtt3fpM4mIiCyRQgghpC6CiIiIqDvIelUUERERWRcGGyIiIpIN2d1jYzQakZeXB2dn51afJ0NERETmRwiB8vJyeHt7N90/2hWyCzZ5eXnw8/OTugwiIiLqgpycnKZVwV0hu2DTuCIpJycHLi4uEldDREREHVFWVgY/P78WK4s7S3bBpvHyk4uLC4MNERGRhbne20h48zARERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGg00H6a/UYc0v57DkuzSpSyEiIqI2MNh0UHWdAa9tz8D6lBxcKK6UuhwiIiJqBYNNB3m42OGGgW4AgE1H8iSuhoiIiFrDYNMJsSN8AACbUnMhhJC4GiIi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hx4SEyZMkKjC6/P78bUmLy9P2NjYiPj4+B6urOtsbGxEVFRUs21//etfRWRkpBBCWPw8tje+1ljiPDaKiYkRU6ZMafrZ0ufvj/44vtZY4vx99dVXwtfXV3z11VciLS1NfP7556J3797i008/FUJY/jy2N77WWOI8njlzRtx0000CgFCpVGLMmDFi7ty5YujQod02h7wU1cMcHR0RGhqK06dPN60e0ul0zfYpLCyEh4eHFOVdt9+PrzVeXl4ICAho831z5OXlheDg4Gbbhg4diuzsbACw+Hlsb3xtHWNp8wgAFy5cwK5du/DQQw81bbP0+fu91sbXGkucv2eeeQZLly7F7NmzERoairi4ODz55JNYsWIFAMufx/bG1xpLnMcBAwZg7969qKioQE5ODg4cOIC6ujr069ev2+aQwaaH1dTUICMjA15eXk0TuXPnzqb3a2trsXfvXkRHR0tYZdf9fnytKS4uRk5OTpvvm6MbbrgBp06darYtMzMTAQEBAGDx89je+FpjifMIAJ988gnc3d0xefLkpm2WPn+/19r4WmOJ81dVVQWlsvlXlkqlaloObenz2N74WmOJ89jI0dERXl5euHz5Mn788UdMmzat++awu08zUXNPP/202LNnjzh37pxISkoSU6ZMEc7OzuL8+fNCiIalbVqtVmzYsEGkp6eLe++912KWJwpx7fGVl5eLp59+WiQmJoqsrCyxe/duERUVJXx8fCxmfEIIceDAAaFWq8Wrr74qTp8+LdatWyccHBzEF1980bSPJc9je+OTyzwaDAbh7+8vlixZ0uI9S56/Rm2NTy7zN3/+fOHj49O0HHrDhg3Czc1NPPvss037WPI8tjc+ucxjQkKC+OGHH8S5c+fEjh07RHh4uBg7dqyora0VQnTPHDLYmFjjGnwbGxvh7e0tZsyYIY4fP970vtFoFC+++KLw9PQUGo1G3HTTTSI9PV3CijvnWuOrqqoSMTExom/fvsLGxkb4+/uL+fPni+zsbImr7rytW7eKYcOGCY1GI4KCgsSHH37Y7H1Ln8drjU8u8/jjjz8KAOLUqVMt3rP0+ROi7fHJZf7KysrE448/Lvz9/YWdnZ3o37+/eO6550RNTU3TPpY8j+2NTy7zuH79etG/f39ha2srPD09xV/+8hdRWlra9H53zKFCCCG6/RwTERERkQR4jw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREckGgw0RERHJBoMNERERyQaDDREREcnG/wci5SF28bFkygAAAABJRU5ErkJggg==" + }, + "metadata": {} + } + ] + } + ] +} diff --git a/jobflow.ipynb b/jobflow.ipynb index 0cd4548..e404d8b 100644 --- a/jobflow.ipynb +++ b/jobflow.ipynb @@ -58,8 +58,8 @@ "is_executing": true }, "ExecuteTime": { - "end_time": "2024-06-17T17:16:03.222484540Z", - "start_time": "2024-06-17T17:16:01.797337483Z" + "end_time": "2024-06-30T21:03:49.090376497Z", + "start_time": "2024-06-30T21:03:49.044805667Z" } }, "cell_type": "code", @@ -72,7 +72,7 @@ "job1 = my_function(my_parameter=1)\n" ], "outputs": [], - "execution_count": 1 + "execution_count": 146 }, { "metadata": {}, @@ -84,13 +84,13 @@ { "metadata": { "ExecuteTime": { - "end_time": "2024-06-29T17:14:51.154675920Z", - "start_time": "2024-06-29T17:14:49.596982757Z" + "end_time": "2024-06-30T21:03:49.787548178Z", + "start_time": "2024-06-30T21:03:49.776338215Z" } }, "cell_type": "code", "outputs": [], - "execution_count": 1, + "execution_count": 147, "source": [ "from jobflow import job, Flow\n", "@job\n", @@ -116,11 +116,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 165, "outputs": [ { "data": { - "text/html": "", + "text/html": "", "text/plain": "" }, "metadata": {}, @@ -145,8 +145,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-29T17:27:26.633410072Z", - "start_time": "2024-06-29T17:27:26.587398588Z" + "end_time": "2024-06-30T21:05:55.566266588Z", + "start_time": "2024-06-30T21:05:55.518046256Z" } } }, @@ -160,13 +160,13 @@ { "metadata": { "ExecuteTime": { - "end_time": "2024-06-29T17:30:52.185818201Z", - "start_time": "2024-06-29T17:30:52.138542689Z" + "end_time": "2024-06-30T21:03:51.201428172Z", + "start_time": "2024-06-30T21:03:51.198642072Z" } }, "cell_type": "code", "outputs": [], - "execution_count": 8, + "execution_count": 149, "source": [ "from dataclasses import dataclass\n", "from jobflow import Maker\n", @@ -220,11 +220,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-06-29T17:45:46.340527365Z", - "start_time": "2024-06-29T17:45:46.295514955Z" + "end_time": "2024-06-30T21:03:52.862254484Z", + "start_time": "2024-06-30T21:03:52.820128428Z" } }, - "execution_count": 11, + "execution_count": 150, "outputs": [] }, { @@ -233,7 +233,11 @@ "Then we import tools for data plotting and mathematical operations and manipulation." ], "metadata": { - "collapsed": false + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-30T18:49:41.083780748Z", + "start_time": "2024-06-30T18:49:40.328009350Z" + } } }, { @@ -244,11 +248,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-06-29T17:45:48.337736694Z", - "start_time": "2024-06-29T17:45:48.331748376Z" + "end_time": "2024-06-30T21:03:53.541378090Z", + "start_time": "2024-06-30T21:03:53.534066833Z" } }, - "execution_count": 12, + "execution_count": 151, "outputs": [] }, { @@ -268,11 +272,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-06-29T17:45:50.830435367Z", - "start_time": "2024-06-29T17:45:50.350260363Z" + "end_time": "2024-06-30T21:03:54.422927753Z", + "start_time": "2024-06-30T21:03:54.413391806Z" } }, - "execution_count": 13, + "execution_count": 152, "outputs": [] }, { @@ -286,13 +290,17 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 153, "outputs": [], "source": [ "from adis_tools.parsers import parse_pw" ], "metadata": { - "collapsed": false + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-30T21:03:55.189722014Z", + "start_time": "2024-06-30T21:03:55.183605845Z" + } } }, { @@ -320,11 +328,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-06-17T18:26:30.760791624Z", - "start_time": "2024-06-17T18:26:30.713428412Z" + "end_time": "2024-06-30T21:03:56.039703141Z", + "start_time": "2024-06-30T21:03:56.021934310Z" } }, - "execution_count": 4, + "execution_count": 154, "outputs": [] }, { @@ -347,11 +355,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-04-04T12:23:40.354972Z", - "start_time": "2024-04-04T12:23:40.351547Z" + "end_time": "2024-06-30T21:03:56.887161470Z", + "start_time": "2024-06-30T21:03:56.880110790Z" } }, - "execution_count": 6, + "execution_count": 155, "outputs": [] }, { @@ -386,11 +394,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-04-04T12:23:40.361062Z", - "start_time": "2024-04-04T12:23:40.356433Z" + "end_time": "2024-06-30T21:03:57.726018986Z", + "start_time": "2024-06-30T21:03:57.722182378Z" } }, - "execution_count": 7, + "execution_count": 156, "outputs": [] }, { @@ -415,11 +423,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-04-04T12:23:40.365984Z", - "start_time": "2024-04-04T12:23:40.362667Z" + "end_time": "2024-06-30T21:03:58.685861394Z", + "start_time": "2024-06-30T21:03:58.674527108Z" } }, - "execution_count": 8, + "execution_count": 157, "outputs": [] }, { @@ -428,7 +436,11 @@ "Now, we need to systematically handle the QE input. We make use of the pymatgen `InputSet` and `InputGenerator` classes to control and define the input data format. The `QEInputSet` defines the input information format which will be followed by the `QEInputGenerator`. We also define an extra `QEInputStaticGenerator` class (inheriting from `QEInputGenerator`) to be able to separately handle the static QE calculations for every strained structure in a convenient way. Finally, we define the function `write_qe_input_set` to write the QE input files into the current working directory." ], "metadata": { - "collapsed": false + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-30T19:44:34.646615479Z", + "start_time": "2024-06-30T19:44:34.599326311Z" + } } }, { @@ -484,11 +496,11 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-17T19:11:01.884770720Z", - "start_time": "2024-06-17T19:11:01.842510691Z" + "end_time": "2024-06-30T21:03:59.698064621Z", + "start_time": "2024-06-30T21:03:59.696200038Z" } }, - "execution_count": 5, + "execution_count": 158, "outputs": [] }, { @@ -589,11 +601,11 @@ ], "metadata": { "ExecuteTime": { - "end_time": "2024-06-17T19:11:58.187365878Z", - "start_time": "2024-06-17T19:11:58.183254802Z" + "end_time": "2024-06-30T21:04:00.669743534Z", + "start_time": "2024-06-30T21:04:00.658411974Z" } }, - "execution_count": 8, + "execution_count": 159, "outputs": [] }, { @@ -607,88 +619,133 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 195, "outputs": [ { "name": "stdout", - "text": "2024-04-04 15:55:32,815 INFO Started executing jobs locally\n2024-04-04 15:55:32,892 INFO Starting job - base qe job (72ab2547-8a66-4dd0-a95a-b6255a668cd8)\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:22:12,541 INFO Started executing jobs locally\n", + "2024-06-30 23:22:12,543 INFO Starting job - base qe job (298bff7e-e31e-405e-b41d-34c581667aac)\n" + ] }, { "name": "stderr", - "text": "[jupyter-jan-2djanssen-2dqua-2dsso-5fpyiron-5fbase-2d4ksucf2d:00139] 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": "stream" + "output_type": "stream", + "text": [ + "Authorization required, but no authorization protocol specified\n", + "Authorization required, but no authorization protocol specified\n" + ] }, { "name": "stdout", - "text": "2024-04-04 15:56:37,395 INFO Finished job - base qe job (72ab2547-8a66-4dd0-a95a-b6255a668cd8)\n2024-04-04 15:56:37,396 INFO Starting job - get_ev_curve (87ad6b9b-9f34-463e-b705-1ab7cdcf9aee)\n2024-04-04 15:56:37,404 INFO Finished job - get_ev_curve (87ad6b9b-9f34-463e-b705-1ab7cdcf9aee)\n2024-04-04 15:56:37,406 INFO Starting job - static qe job (b0759785-155b-4e79-9b72-c626067d81e1)\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:22:42,392 INFO Finished job - base qe job (298bff7e-e31e-405e-b41d-34c581667aac)\n", + "2024-06-30 23:22:42,393 INFO Starting job - get_ev_curve (3b25ca75-bb7f-4a5e-bd4f-a0e9690bbb74)\n", + "2024-06-30 23:22:42,404 INFO Finished job - get_ev_curve (3b25ca75-bb7f-4a5e-bd4f-a0e9690bbb74)\n", + "2024-06-30 23:22:42,407 INFO Starting job - static qe job (b2bea4ad-f208-4076-b77d-f32119345366)\n" + ] }, { "name": "stderr", - "text": "[jupyter-jan-2djanssen-2dqua-2dsso-5fpyiron-5fbase-2d4ksucf2d:00149] 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", - "output_type": "stream" + "output_type": "stream", + "text": [ + "Authorization required, but no authorization protocol specified\n", + "Authorization required, but no authorization protocol specified\n" + ] }, { "name": "stdout", - "text": "2024-04-04 15:56:45,563 INFO Finished job - static qe job (b0759785-155b-4e79-9b72-c626067d81e1)\n2024-04-04 15:56:45,564 INFO Starting job - static qe job (514079e9-d6ae-4369-8b80-bf8ca7860540)\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:22:46,253 INFO Finished job - static qe job (b2bea4ad-f208-4076-b77d-f32119345366)\n", + "2024-06-30 23:22:46,254 INFO Starting job - static qe job (6c8537ac-07c1-407b-b341-a395c9685348)\n" + ] }, { "name": "stderr", - "text": "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-jan-2djanssen-2dqua-2dsso-5fpyiron-5fbase-2d4ksucf2d:00159] 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": "stream" + "output_type": "stream", + "text": [ + "Authorization required, but no authorization protocol specified\n", + "Authorization required, but no authorization protocol specified\n" + ] }, { "name": "stdout", - "text": "2024-04-04 15:56:53,979 INFO Finished job - static qe job (514079e9-d6ae-4369-8b80-bf8ca7860540)\n2024-04-04 15:56:53,980 INFO Starting job - static qe job (6e3c5a28-4edb-4244-9e35-0b8733b946c4)\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:22:50,257 INFO Finished job - static qe job (6c8537ac-07c1-407b-b341-a395c9685348)\n", + "2024-06-30 23:22:50,258 INFO Starting job - static qe job (579b021c-3908-4988-8f37-d16b3cf72076)\n" + ] }, { "name": "stderr", - "text": "[jupyter-jan-2djanssen-2dqua-2dsso-5fpyiron-5fbase-2d4ksucf2d:00169] 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", - "output_type": "stream" + "output_type": "stream", + "text": [ + "Authorization required, but no authorization protocol specified\n", + "Authorization required, but no authorization protocol specified\n" + ] }, { "name": "stdout", - "text": "2024-04-04 15:57:03,600 INFO Finished job - static qe job (6e3c5a28-4edb-4244-9e35-0b8733b946c4)\n2024-04-04 15:57:03,600 INFO Starting job - static qe job (980b72a5-fbea-445c-9075-a880322c8261)\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:22:54,494 INFO Finished job - static qe job (579b021c-3908-4988-8f37-d16b3cf72076)\n", + "2024-06-30 23:22:54,495 INFO Starting job - static qe job (e061eee6-4e8a-4d91-8aea-436078178f15)\n" + ] }, { "name": "stderr", - "text": "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-jan-2djanssen-2dqua-2dsso-5fpyiron-5fbase-2d4ksucf2d:00179] 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", - "output_type": "stream" + "output_type": "stream", + "text": [ + "Authorization required, but no authorization protocol specified\n", + "Authorization required, but no authorization protocol specified\n" + ] }, { "name": "stdout", - "text": "2024-04-04 15:57:14,907 INFO Finished job - static qe job (980b72a5-fbea-445c-9075-a880322c8261)\n2024-04-04 15:57:14,908 INFO Starting job - static qe job (a44a935f-6bd2-4279-bbcb-53d5ed890a99)\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:22:59,351 INFO Finished job - static qe job (e061eee6-4e8a-4d91-8aea-436078178f15)\n", + "2024-06-30 23:22:59,352 INFO Starting job - static qe job (538fac48-00b5-49c2-8476-a6635130916b)\n" + ] }, { "name": "stderr", - "text": "Note: The following floating-point exceptions are signalling: IEEE_INVALID_FLAG\n[jupyter-jan-2djanssen-2dqua-2dsso-5fpyiron-5fbase-2d4ksucf2d:00189] 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": "stream" + "output_type": "stream", + "text": [ + "Authorization required, but no authorization protocol specified\n", + "Authorization required, but no authorization protocol specified\n" + ] }, { "name": "stdout", - "text": "2024-04-04 15:57:27,174 INFO Finished job - static qe job (a44a935f-6bd2-4279-bbcb-53d5ed890a99)\n2024-04-04 15:57:27,174 INFO Starting job - store_inputs (87ad6b9b-9f34-463e-b705-1ab7cdcf9aee, 2)\n2024-04-04 15:57:27,176 INFO Finished job - store_inputs (87ad6b9b-9f34-463e-b705-1ab7cdcf9aee, 2)\n2024-04-04 15:57:27,176 INFO Starting job - plot_energy_volume_curve_job (9987ab9f-1ae9-4172-8e31-b2c9920d4791)\n2024-04-04 15:57:27,256 INFO Finished job - plot_energy_volume_curve_job (9987ab9f-1ae9-4172-8e31-b2c9920d4791)\n2024-04-04 15:57:27,256 INFO Finished executing jobs locally\n", - "output_type": "stream" + "output_type": "stream", + "text": [ + "2024-06-30 23:23:04,126 INFO Finished job - static qe job (538fac48-00b5-49c2-8476-a6635130916b)\n", + "2024-06-30 23:23:04,127 INFO Starting job - store_inputs (3b25ca75-bb7f-4a5e-bd4f-a0e9690bbb74, 2)\n", + "2024-06-30 23:23:04,129 INFO Finished job - store_inputs (3b25ca75-bb7f-4a5e-bd4f-a0e9690bbb74, 2)\n", + "2024-06-30 23:23:04,130 INFO Starting job - plot_energy_volume_curve_job (589b3583-80af-49ac-89a5-3f70469fdd9f)\n", + "2024-06-30 23:23:04,221 INFO Finished job - plot_energy_volume_curve_job (589b3583-80af-49ac-89a5-3f70469fdd9f)\n", + "2024-06-30 23:23:04,222 INFO Finished executing jobs locally\n" + ] }, { - "execution_count": 10, - "output_type": "execute_result", "data": { - "text/plain": "{'72ab2547-8a66-4dd0-a95a-b6255a668cd8': {1: Response(output=QETaskDoc(structure=MSONAtoms(symbols='Al4', pbc=True, cell=[4.045218941837687, 4.045218941837687, 4.045218941837687]), energy=-1074.9365272693506, volume=66.1951387021735), detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n '87ad6b9b-9f34-463e-b705-1ab7cdcf9aee': {1: Response(output=None, detour=None, addition=None, replace=Flow(name='Flow', uuid='0e46d480-7699-4e03-889b-b4ba65fe3d38')\n 1. Job(name='static qe job', uuid='b0759785-155b-4e79-9b72-c626067d81e1')\n 2. Job(name='static qe job', uuid='514079e9-d6ae-4369-8b80-bf8ca7860540')\n 3. Job(name='static qe job', uuid='6e3c5a28-4edb-4244-9e35-0b8733b946c4')\n 4. Job(name='static qe job', uuid='980b72a5-fbea-445c-9075-a880322c8261')\n 5. Job(name='static qe job', uuid='a44a935f-6bd2-4279-bbcb-53d5ed890a99')\n 6. Job(name='store_inputs', uuid='87ad6b9b-9f34-463e-b705-1ab7cdcf9aee'), stored_data=None, stop_children=False, stop_jobflow=False),\n 2: Response(output={'energies': [OutputReference(b0759785-155b-4e79-9b72-c626067d81e1, .energy), OutputReference(514079e9-d6ae-4369-8b80-bf8ca7860540, .energy), OutputReference(6e3c5a28-4edb-4244-9e35-0b8733b946c4, .energy), OutputReference(980b72a5-fbea-445c-9075-a880322c8261, .energy), OutputReference(a44a935f-6bd2-4279-bbcb-53d5ed890a99, .energy)], 'volumes': [OutputReference(b0759785-155b-4e79-9b72-c626067d81e1, .volume), OutputReference(514079e9-d6ae-4369-8b80-bf8ca7860540, .volume), OutputReference(6e3c5a28-4edb-4244-9e35-0b8733b946c4, .volume), OutputReference(980b72a5-fbea-445c-9075-a880322c8261, .volume), OutputReference(a44a935f-6bd2-4279-bbcb-53d5ed890a99, .volume)]}, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n 'b0759785-155b-4e79-9b72-c626067d81e1': {1: Response(output=QETaskDoc(structure=MSONAtoms(symbols='Al4', pbc=True, cell=[3.9056159296787105, 3.9056159296787105, 3.9056159296787105]), energy=-1074.8451830762128, volume=59.575624050752516), detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n '514079e9-d6ae-4369-8b80-bf8ca7860540': {1: Response(output=QETaskDoc(structure=MSONAtoms(symbols='Al4', pbc=True, cell=[3.9766426435887574, 3.9766426435887574, 3.9766426435887574]), energy=-1074.9158947387848, volume=62.88538094246082), detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n '6e3c5a28-4edb-4244-9e35-0b8733b946c4': {1: Response(output=QETaskDoc(structure=MSONAtoms(symbols='Al4', pbc=True, cell=[4.045218924156295, 4.045218924156295, 4.045218924156295]), energy=-1074.936525208987, volume=66.19513783416937), detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n '980b72a5-fbea-445c-9075-a880322c8261': {1: Response(output=QETaskDoc(structure=MSONAtoms(symbols='Al4', pbc=True, cell=[4.111545777030954, 4.111545777030954, 4.111545777030954]), energy=-1074.9194989203452, volume=69.50489472587755), detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n 'a44a935f-6bd2-4279-bbcb-53d5ed890a99': {1: Response(output=QETaskDoc(structure=MSONAtoms(symbols='Al4', pbc=True, cell=[4.175799058074337, 4.175799058074337, 4.175799058074337]), energy=-1074.8741797823543, volume=72.81465161758611), detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)},\n '9987ab9f-1ae9-4172-8e31-b2c9920d4791': {1: Response(output=None, detour=None, addition=None, replace=None, stored_data=None, stop_children=False, stop_jobflow=False)}}" + "text/html": "", + "text/plain": "" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" }, { - "output_type": "display_data", "data": { "text/plain": "
", - "image/png": "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SkrKOT+rb++nhnH+41Hf3k8thmEYZoxoiYiIiDgDzVkSERERqYTKkoiIiEglVJZEREREKqGyJCIiIlIJlSURERGRSqgsiYiIiFRCZUlERESkEipLIiIiIpVQWRKRei0iIoLXX3/d7Bgi4sBUlkTEaQ0dOpT+/ftX+LPVq1djsVjYuHGjnVOJSF2jsiQiTuvee+/lxx9/ZN++fef87IMPPqBLly5069bNhGQiUpeoLImI0xoyZAhBQUHMmjWr3ON5eXl8/vnn3HvvvcyfP5+oqCg8PT2JiIhgxowZ532+tLQ0LBYLiYmJZY+dPHkSi8XCihUrAFixYgUWi4WlS5fStWtXvL29ueaaazhy5AjffvstHTp0wN/fn9tuu428vLyy5zEMg5deeolWrVrh7e1NTEwM8+bNq8nDISK1RGVJRJyWm5sbd911F7NmzeL31wSfO3cuhYWFxMbGMnr0aG699Va2bNnC1KlTmTJlyjnlqjqmTp3Km2++yapVqzhw4ACjR4/m9ddf59NPP+Wbb75h2bJl/Pvf/y7b/sknn2TmzJm8/fbbbNu2jQkTJnDnnXfy008/XXIWEaldFuP37zAiIk5mx44ddOjQgR9//JGrr74agCuvvJJmzZphsVg4evQo3333Xdn2jz/+ON988w3btm0DSid4P/zwwzz88MOkpaXRsmVLNm3aRJcuXYDSkaWGDRuyfPlyrrrqKlasWMHVV1/N999/z7XXXgvA9OnTmTRpErt376ZVq1YAPPDAA6SlpREfH09ubi6BgYH8+OOPxMbGlmW57777yMvL49NPP7XHoRKRatLIkog4tcjISPr06cMHH3wAwO7du/nll1+45557SE5Opm/fvuW279u3Lzt37qSkpOSSfm90dHTZ/w8ODsbHx6esKJ197MiRIwBs376d/Px8rrvuOvz8/MpuH374Ibt3776kHCJS+9zMDiAicqnuvfdexo8fz//93/8xc+ZMwsPDufbaazEMA4vFUm7bygbTXVxcztmmqKiowm3d3d3L/r/FYil3/+xjNpsNoOx/v/nmG5o1a1ZuO09Pzwu9PBExmUaWRMTpjR49GldXVz799FNmz57N2LFjsVgsdOzYkV9//bXctqtWraJdu3a4urqe8zxNmjQBID09veyx30/2rq6OHTvi6enJ/v37adOmTblb8+bNL/n5RaR2aWRJRJyen58ft9xyC5MnTyY7O5sxY8YA8Oijj3LZZZfx7LPPcsstt7B69WrefPNN3nrrrQqfx9vbm969ezN9+nQiIiI4duwYTz755CXna9CgAY899hgTJkzAZrPRr18/cnJyWLVqFX5+ftx9992X/DtEpPZoZElE6oR7772XrKws+vfvT4sWLQDo1q0bX3zxBXPmzKFTp0489dRT/POf/ywrUxX54IMPKCoqokePHvztb3/jueeeq5F8zz77LE899RTTpk2jQ4cODBw4kMWLF9OyZcsaeX4RqT36NpyIiIhIJTSyJCIiIlIJlSURERGRSqgsiYiIiFRCZUlERESkEipLIiIiIpVQWRIRERGphMqSiIiISCVUlkREREQqobIkIiIiUgmVJREREZFKqCyJiIiIVEJlSURERKQS/w+KFmKjiKyciAAAAABJRU5ErkJggg==" + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHACAYAAACyIiyEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZKElEQVR4nO3deVxVdeL/8de9LJd9UUFERXAFN3LPpabSzCzNJc0yS7NtZmwms1Ira2oqrbRpapqW+TaoWVOZLZZlaloZ4pp7iIoiKosLsgiy3vP7Q+UXqYgI93Av7+fjcR+P4XDO5X3PEPft53zu51gMwzAQERERkfOymh1AREREpC5TWRIRERGphMqSiIiISCVUlkREREQqobIkIiIiUgmVJREREZFKqCyJiIiIVEJlSURERKQSKksiIiIilVBZEhEREamEypJJXnjhBfr06YOPjw9BQUFVOsYwDJ5++mmaNGmCt7c3AwYMYM+ePeXf/+GHH7BYLOd9bNiw4Zzn27t3L/7+/lX++b81dOhQIiIi8PLyokmTJowbN460tLRLfh4REZG6TmXJJMXFxYwaNYo//vGPVT7m5Zdf5vXXX+ftt99m3bp1+Pr6csMNN1BYWAhAnz59SE9Pr/C49957iYqKonv37hWeq6SkhNtvv52rrrqqWvmvvfZaPvnkE5KSkli0aBHJycnceuut1XouERGRusyiG+maa+7cuTz88MNkZ2dXup9hGISHhzNlyhQeffRRAHJycmjcuDFz585lzJgx5xxTUlJC06ZNeeihh5gxY0aF702dOpW0tDT69+9/3p//f//3f8yZM4f9+/cTGRnJX/7yF/70pz9dMN/ixYsZNmwYRUVFeHh4VO3Fi4iIOAGNLDmJ/fv3k5GRwYABA8q3BQYG0qtXLxISEs57zOLFizl+/DgTJkyosH3lypUsXLiQN99887zHffDBBzz99NO88MILJCYm8uKLLzJjxgzmzZt33v2zsrL44IMP6NOnj4qSiIi4HJUlJ5GRkQFA48aNK2xv3Lhx+fd+77333uOGG26gWbNm5duOHz/O+PHjmTt3LgEBAec97plnnmHOnDmMGDGCqKgoRowYweTJk3nnnXcq7Dd16lR8fX1p2LAhqampfPnll5fzEkVEROoklaUaNG3atAtOsD772LVrl0OyHDp0iO+++46JEydW2H7fffdxxx13cPXVV5/3uPz8fJKTk5k4cSJ+fn7lj+eff57k5OQK+z722GNs3ryZZcuW4ebmxl133YWu6oqIiKtxNzuAK5kyZQrjx4+vdJ+WLVtW67nDwsIAyMzMpEmTJuXbMzMzueKKK87ZPy4ujoYNGzJ06NAK21euXMnixYuZPXs2cHoulN1ux93dnXfffZebbroJgP/85z/06tWrwrFubm4Vvm7UqBGNGjWibdu2xMTE0Lx5c9auXUvv3r2r9RpFRETqIpWlGhQSEkJISEitPHdUVBRhYWF8//335eUoNzeXdevWnfOJOsMwiIuL46677jpnDlFCQgJlZWXlX3/55Ze89NJLrFmzhqZNmxIcHEx4eDj79u1j7NixVc5nt9sBKCoqquYrFBERqZtUlkySmppKVlYWqamplJWVsWXLFgBat26Nn58fANHR0cycOZPhw4djsVh4+OGHef7552nTpg1RUVHMmDGD8PBwhg0bVuG5V65cyf79+7n33nvP+bkxMTEVvt64cSNWq5WOHTuWb3v22Wf5y1/+QmBgIIMGDaKoqIiNGzdy4sQJHnnkEdatW8eGDRvo168fwcHBJCcnM2PGDFq1aqVRJRERcTkqSyZ5+umnK3y6rEuXLgCsWrWKa665BoCkpCRycnLK93n88cfJz8/n/vvvJzs7m379+rF06VK8vLwqPPd7771Hnz59iI6Orla2e++9Fx8fH1555RUee+wxfH196dSpEw8//DAAPj4+fPbZZzzzzDPk5+fTpEkTBg0axFNPPYXNZqvWzxQREamrtM6SiIiISCX0aTgRERGRSqgsiYiIiFRCc5ZqgN1uJy0tDX9/fywWi9lxREREpAoMwyAvL4/w8HCs1guPH6ks1YC0tDSaN29udgwRERGphoMHD1a428XvqSzVAH9/f+D0yb7QLURERESkbsnNzaV58+bl7+MXorJUA85eegsICFBZEhERcTIXm0KjCd4iIiIilVBZEhEREamEypKIiIhIJVSWRERERCqhsiQiIiJSCZUlERERkUqoLImIiIhUQmVJREREpBIqSyIiIiKVUFkSERERqYTKkoiIiEglVJZEREREKqGyVIfZ7Qar9xzFMAyzo4iIiNRbKkt1lGEYDH3zZ8a9t57Ve46ZHUdERKTeUlmqoywWC91bNAAgLn6/yWlERETqL5WlOmx8n0gsFliVdJR9R0+a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" }, - "metadata": {} + "metadata": {}, + "output_type": "display_data" } ], "source": [ @@ -724,7 +781,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "start_time": "2024-04-04T12:24:48.120617Z" + "end_time": "2024-06-30T21:23:04.301670278Z", + "start_time": "2024-06-30T21:22:12.537293360Z" } } }, @@ -739,8 +797,17 @@ }, { "cell_type": "code", - "execution_count": 15, - "outputs": [], + "execution_count": 196, + "outputs": [ + { + "data": { + "text/html": "", + "text/plain": "" + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "graph = to_mermaid(Flow(qe_flow), show_flow_boxes=True)\n", "mm(graph)" @@ -748,13 +815,18 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-29T17:49:08.789350732Z", - "start_time": "2024-06-29T17:49:08.741858609Z" + "end_time": "2024-06-30T21:23:23.730789361Z", + "start_time": "2024-06-30T21:23:23.682800183Z" } } }, { - "metadata": {}, + "metadata": { + "ExecuteTime": { + "end_time": "2024-06-30T21:20:50.166986280Z", + "start_time": "2024-06-30T21:20:50.152786964Z" + } + }, "cell_type": "markdown", "source": [ "## Submission to an HPC / Check pointing / Error handling\n", @@ -773,7 +845,11 @@ "There are no dedicated mechanisms to save whole projects, but the database can be used to achieve this." ], "metadata": { - "collapsed": false + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-30T21:19:50.638818400Z", + "start_time": "2024-06-30T21:19:50.628780294Z" + } } }, {