From 7784e7adeb8ae1736b0f92e3431299b4d18f6908 Mon Sep 17 00:00:00 2001 From: superstar54 Date: Tue, 30 Apr 2024 11:11:31 +0000 Subject: [PATCH 1/4] Bump version v24.04.0rc1 -> v24.04.0rc2 --- docs/source/conf.py | 2 +- setup.cfg | 4 ++-- src/aiidalab_qe/version.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 603afa889..5258480c7 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -18,7 +18,7 @@ # -- Project information ----------------------------------------------------- -version = "v24.04.0rc1" +version = "v24.04.0rc2" release = f"{version}-dev" project = "Quantum ESPRESSO App" copyright_first_year = "2023" diff --git a/setup.cfg b/setup.cfg index 8cec53fdd..5cfab5ceb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = aiidalab_qe -version = 24.4.0rc1 +version = 24.4.0rc2 description = Package for the AiiDAlab QE app long_description = file: README.md long_description_content_type = text/markdown @@ -66,7 +66,7 @@ categories = quantum [bumpver] -current_version = "v24.04.0rc1" +current_version = "v24.04.0rc2" version_pattern = "v0Y.0M.PATCH[PYTAGNUM]" commit_message = "Bump version {old_version} -> {new_version}" commit = True diff --git a/src/aiidalab_qe/version.py b/src/aiidalab_qe/version.py index 2c5230544..6330e477a 100644 --- a/src/aiidalab_qe/version.py +++ b/src/aiidalab_qe/version.py @@ -3,4 +3,4 @@ """This module contains project version information for both the app and the workflow.""" -__version__ = "v24.04.0rc1" +__version__ = "v24.04.0rc2" From d13acbd1c6ed56d8712344e40aee709551ec4150 Mon Sep 17 00:00:00 2001 From: AndresOrtegaGuerrero <34098967+AndresOrtegaGuerrero@users.noreply.github.com> Date: Tue, 30 Apr 2024 15:53:18 +0200 Subject: [PATCH 2/4] Fix current year in app (#710) * Fix current year and Remove EPFL Affiliation --- qe.ipynb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qe.ipynb b/qe.ipynb index 2c07f2cd6..269e49674 100644 --- a/qe.ipynb +++ b/qe.ipynb @@ -39,6 +39,7 @@ " pass\n", "\n", "import urllib.parse as urlparse\n", + "from datetime import datetime\n", "\n", "import ipywidgets as ipw\n", "from aiidalab_widgets_base.bug_report import (\n", @@ -63,8 +64,9 @@ "template = files(static).joinpath(\"welcome.jinja\").read_text()\n", "style = files(static).joinpath(\"style.css\").read_text()\n", "welcome_message = ipw.HTML(env.from_string(template).render(style=style))\n", + "current_year = datetime.now().year\n", "footer = ipw.HTML(\n", - " f'

Copyright (c) 2023 AiiDAlab team (EPFL) Version: {__version__}

'\n", + " f'

Copyright (c) {current_year} AiiDAlab team  Version: {__version__}

'\n", ")\n", "\n", "url = urlparse.urlsplit(jupyter_notebook_url) # noqa F821\n", From 83e5928214e7820e3090bedc3aff9efebfebf493 Mon Sep 17 00:00:00 2001 From: Xing Wang Date: Tue, 30 Apr 2024 18:12:11 +0200 Subject: [PATCH 3/4] fix code for xps, xas, and update the code resources (#711) This PR updates the codes and resources of the plugins - Fix the code for XAS and XPS - Update the resources for the builder --- src/aiidalab_qe/plugins/bands/workchain.py | 16 +++---------- src/aiidalab_qe/plugins/pdos/workchain.py | 28 ++++------------------ src/aiidalab_qe/plugins/utils.py | 13 ++++++++++ src/aiidalab_qe/plugins/xas/workchain.py | 13 ++++++++-- src/aiidalab_qe/plugins/xps/workchain.py | 10 +++++++- tests/test_submit_qe_workchain.py | 3 +++ 6 files changed, 44 insertions(+), 39 deletions(-) create mode 100644 src/aiidalab_qe/plugins/utils.py diff --git a/src/aiidalab_qe/plugins/bands/workchain.py b/src/aiidalab_qe/plugins/bands/workchain.py index efa234028..688673970 100644 --- a/src/aiidalab_qe/plugins/bands/workchain.py +++ b/src/aiidalab_qe/plugins/bands/workchain.py @@ -1,7 +1,7 @@ import numpy as np -from aiida import orm from aiida.plugins import DataFactory, WorkflowFactory from aiida_quantumespresso.common.types import ElectronicType, SpinType +from aiidalab_qe.plugins.utils import set_component_resources GAMMA = "\u0393" @@ -173,18 +173,8 @@ def generate_kpath_2d(structure, kpoints_distance, kpath_2d): def update_resources(builder, codes): - builder.scf.pw.metadata.options.resources = { - "num_machines": codes.get("pw")["nodes"], - "num_mpiprocs_per_machine": codes.get("pw")["ntasks_per_node"], - "num_cores_per_mpiproc": codes.get("pw")["cpus_per_task"], - } - builder.scf.pw.parallelization = orm.Dict(dict=codes["pw"]["parallelization"]) - builder.bands.pw.metadata.options.resources = { - "num_machines": codes.get("pw")["nodes"], - "num_mpiprocs_per_machine": codes.get("pw")["ntasks_per_node"], - "num_cores_per_mpiproc": codes.get("pw")["cpus_per_task"], - } - builder.bands.pw.parallelization = orm.Dict(dict=codes["pw"]["parallelization"]) + set_component_resources(builder.scf.pw, codes.get("pw")) + set_component_resources(builder.bands.pw, codes.get("pw")) def get_builder(codes, structure, parameters, **kwargs): diff --git a/src/aiidalab_qe/plugins/pdos/workchain.py b/src/aiidalab_qe/plugins/pdos/workchain.py index 18ddb5a49..2bc4c0a98 100644 --- a/src/aiidalab_qe/plugins/pdos/workchain.py +++ b/src/aiidalab_qe/plugins/pdos/workchain.py @@ -1,6 +1,6 @@ -from aiida import orm from aiida.plugins import WorkflowFactory from aiida_quantumespresso.common.types import ElectronicType, SpinType +from aiidalab_qe.plugins.utils import set_component_resources PdosWorkChain = WorkflowFactory("quantumespresso.pdos") @@ -33,28 +33,10 @@ def check_codes(pw_code, dos_code, projwfc_code): def update_resources(builder, codes): - builder.scf.pw.metadata.options.resources = { - "num_machines": codes.get("pw")["nodes"], - "num_mpiprocs_per_machine": codes.get("pw")["ntasks_per_node"], - "num_cores_per_mpiproc": codes.get("pw")["cpus_per_task"], - } - builder.scf.pw.parallelization = orm.Dict(dict=codes["pw"]["parallelization"]) - builder.nscf.pw.metadata.options.resources = { - "num_machines": codes.get("pw")["nodes"], - "num_mpiprocs_per_machine": codes.get("pw")["ntasks_per_node"], - "num_cores_per_mpiproc": codes.get("pw")["cpus_per_task"], - } - builder.nscf.pw.parallelization = orm.Dict(dict=codes["pw"]["parallelization"]) - builder.dos.metadata.options.resources = { - "num_machines": codes.get("dos")["nodes"], - "num_mpiprocs_per_machine": codes.get("dos")["ntasks_per_node"], - "num_cores_per_mpiproc": codes.get("dos")["cpus_per_task"], - } - builder.projwfc.metadata.options.resources = { - "num_machines": codes.get("projwfc")["nodes"], - "num_mpiprocs_per_machine": codes.get("projwfc")["ntasks_per_node"], - "num_cores_per_mpiproc": codes.get("projwfc")["cpus_per_task"], - } + set_component_resources(builder.scf.pw, codes.get("pw")) + set_component_resources(builder.nscf.pw, codes.get("pw")) + set_component_resources(builder.dos, codes.get("dos")) + set_component_resources(builder.projwfc, codes.get("projwfc")) # disable the parallelization setting for projwfc # npool = codes["pw"]["parallelization"]["npool"] # builder.projwfc.settings = orm.Dict(dict={"cmdline": ["-nk", str(npool)]}) diff --git a/src/aiidalab_qe/plugins/utils.py b/src/aiidalab_qe/plugins/utils.py new file mode 100644 index 000000000..a4172cc87 --- /dev/null +++ b/src/aiidalab_qe/plugins/utils.py @@ -0,0 +1,13 @@ +from aiida import orm + + +def set_component_resources(component, code_info): + """Set the resources for a given component based on the code info.""" + if code_info: # Ensure code_info is not None or empty + component.metadata.options.resources = { + "num_machines": code_info["nodes"], + "num_mpiprocs_per_machine": code_info["ntasks_per_node"], + "num_cores_per_mpiproc": code_info["cpus_per_task"], + } + if "parallelization" in code_info: + component.parallelization = orm.Dict(dict=code_info["parallelization"]) diff --git a/src/aiidalab_qe/plugins/xas/workchain.py b/src/aiidalab_qe/plugins/xas/workchain.py index 47a189cf5..d5b3cf000 100644 --- a/src/aiidalab_qe/plugins/xas/workchain.py +++ b/src/aiidalab_qe/plugins/xas/workchain.py @@ -4,6 +4,7 @@ from aiida import orm from aiida.plugins import WorkflowFactory from aiida_quantumespresso.common.types import ElectronicType, SpinType +from aiidalab_qe.plugins.utils import set_component_resources from aiidalab_qe.plugins import xas as xas_folder @@ -13,6 +14,12 @@ xch_elements = PSEUDO_TOC["xas_xch_elements"] +def update_resources(builder, codes): + """Update the resources for the builder.""" + set_component_resources(builder.core.scf.pw, codes.get("pw")) + set_component_resources(builder.core.xs_prod.xspectra, codes.get("xspectra")) + + def get_builder(codes, structure, parameters, **kwargs): from copy import deepcopy @@ -50,8 +57,8 @@ def get_builder(codes, structure, parameters, **kwargs): } spglib_settings = orm.Dict({"symprec": 1.0e-3}) - pw_code = codes["pw"] - xs_code = codes["xspectra"] + pw_code = codes["pw"]["code"] + xs_code = codes["xspectra"]["code"] overrides = { "core": { "scf": deepcopy(parameters["advanced"]), @@ -100,6 +107,8 @@ def get_builder(codes, structure, parameters, **kwargs): builder.pop("clean_workdir", None) builder.spglib_settings = spglib_settings builder.structure_preparation_settings = structure_preparation_settings + # update resources + update_resources(builder, codes) return builder diff --git a/src/aiidalab_qe/plugins/xps/workchain.py b/src/aiidalab_qe/plugins/xps/workchain.py index 270400fc7..f707ebd5e 100644 --- a/src/aiidalab_qe/plugins/xps/workchain.py +++ b/src/aiidalab_qe/plugins/xps/workchain.py @@ -1,6 +1,7 @@ from aiida.orm import Bool, Dict, Float, Group, QueryBuilder from aiida.plugins import WorkflowFactory from aiida_quantumespresso.common.types import ElectronicType, SpinType +from aiidalab_qe.plugins.utils import set_component_resources XpsWorkChain = WorkflowFactory("quantumespresso.xps") @@ -12,6 +13,11 @@ } +def update_resources(builder, codes): + """Update the resources for the builder.""" + set_component_resources(builder.ch_scf.pw, codes.get("pw")) + + def get_builder(codes, structure, parameters, **kwargs): from copy import deepcopy @@ -62,7 +68,7 @@ def get_builder(codes, structure, parameters, **kwargs): "supercell_min_parameter": Float(supercell_min_parameter_map[protocol]), "is_molecule_input": Bool(is_molecule_input), } - pw_code = codes.get("pw", None) + pw_code = codes["pw"]["code"] overrides_ch_scf = deepcopy(parameters["advanced"]) if is_molecule_input: overrides_ch_scf["pw"]["parameters"]["SYSTEM"]["assume_isolated"] = "mt" @@ -91,6 +97,8 @@ def get_builder(codes, structure, parameters, **kwargs): ) builder.pop("relax") builder.pop("clean_workdir", None) + # update resources + update_resources(builder, codes) if is_molecule_input: # set a large kpoints_distance value to set the kpoints to 1x1x1 builder.ch_scf.kpoints_distance = Float(5) diff --git a/tests/test_submit_qe_workchain.py b/tests/test_submit_qe_workchain.py index 51d3a4a1a..140d6a3b7 100644 --- a/tests/test_submit_qe_workchain.py +++ b/tests/test_submit_qe_workchain.py @@ -20,6 +20,9 @@ def test_create_builder_default( # regression test for the parameters generated by the app # this parameters are passed to the workchain data_regression.check(ui_parameters) + # test if create builder successfully + submit_step._create_builder() + # In the future, we will check the builder parameters using regresion test @pytest.mark.usefixtures("sssp") From b5919fc3f55db0a77d82489993e3986e796af82d Mon Sep 17 00:00:00 2001 From: Xing Wang Date: Tue, 30 Apr 2024 18:32:07 +0200 Subject: [PATCH 4/4] Bump AWB from 2.2.0a0 to 2.2.0 (#712) --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 5cfab5ceb..8e14eba75 100644 --- a/setup.cfg +++ b/setup.cfg @@ -27,7 +27,7 @@ install_requires = aiida-core~=2.2,<3 Jinja2~=3.0 aiida-quantumespresso~=4.6 - aiidalab-widgets-base[optimade]~=2.2.0a0 + aiidalab-widgets-base[optimade]~=2.2.0 aiida-pseudo~=1.4 filelock~=3.8 importlib-resources~=5.2