diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index f2cc2a1b32..41c7bdf320 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -66,7 +66,7 @@ jobs: python -m pip install --upgrade pip mkdir -p ~/.abinit/pseudos cp -r tests/test_data/abinit/pseudos/ONCVPSP-PBE-SR-PDv0.4 ~/.abinit/pseudos - uv pip install .[strict,strict-forcefields,tests,abinit,approxneb] + uv pip install .[strict,strict-forcefields,tests,abinit,approxneb,aims] uv pip install torch-runstats torch_dftd uv pip install --no-deps nequip==0.5.6 @@ -156,7 +156,7 @@ jobs: test-notebooks-and-ase: # prevent this action from running on forks if: github.repository == 'materialsproject/atomate2' - + # It seems like anything torch-dependent and tblite can't be installed in the same environment # without the tblite tests failing in CI, see, e.g.: # https://github.com/tblite/tblite/issues/116 @@ -198,7 +198,7 @@ jobs: run: | micromamba activate a2 python -m pip install --upgrade pip - uv pip install .[strict,tests] + uv pip install .[strict,tests,aims] uv pip install tblite>=0.4.0 - name: Install pymatgen from master if triggered by pymatgen repo dispatch @@ -267,7 +267,7 @@ jobs: python -m pip install --upgrade pip mkdir -p ~/.abinit/pseudos cp -r tests/test_data/abinit/pseudos/ONCVPSP-PBE-SR-PDv0.4 ~/.abinit/pseudos - uv pip install .[strict,strict-forcefields,tests,abinit] + uv pip install .[strict,strict-forcefields,tests,abinit,aims] uv pip install torch-runstats uv pip install --no-deps nequip==0.5.6 diff --git a/pyproject.toml b/pyproject.toml index f5fd3a9f1f..cea622371c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,16 +34,17 @@ dependencies = [ "numpy", "pydantic-settings>=2.0.3", "pydantic>=2.0.1", - "pymatgen>=2024.11.13,<2025.10.7", + "pymatgen>=2024.11.13", "pymongo<=4.10.1", ] [project.optional-dependencies] abinit = ["abipy>=0.9.3"] +aims = ["pymatgen-io-aims>=0.0.5", "pymatgen>=2025.10.7"] amset = ["amset>=0.4.15", "pydash"] cclib = ["cclib>=1.8.1"] mp = ["mp-api>=0.37.5"] -phonons = ["phonopy>=1.10.8", "seekpath>=2.0.0"] +phonons = ["phonopy>=1.10.8,<2.43.3", "seekpath>=2.0.0"] # issue writing CIFs because of bug in phonopy >=2.43.3 lobster = ["ijson>=3.2.2", "lobsterpy>=0.4.0"] defects = [ "dscribe>=1.2.0", diff --git a/src/atomate2/aims/jobs/core.py b/src/atomate2/aims/jobs/core.py index 4bfca85377..2ff72f089a 100644 --- a/src/atomate2/aims/jobs/core.py +++ b/src/atomate2/aims/jobs/core.py @@ -10,7 +10,7 @@ from jobflow import Response, job from monty.serialization import dumpfn -from pymatgen.io.aims.parsers import read_aims_output +from pyfhiaims.external_interfaces.ase.io import read_aims_output from pymatgen.io.aims.sets.bs import BandStructureSetGenerator, GWSetGenerator from pymatgen.io.aims.sets.core import ( RelaxSetGenerator, diff --git a/tests/aims/species_dir/light/25_Mn_default b/tests/aims/species_dir/light/25_Mn_default index 700d08cdec..898c9e8d49 100644 --- a/tests/aims/species_dir/light/25_Mn_default +++ b/tests/aims/species_dir/light/25_Mn_default @@ -69,9 +69,9 @@ # hydro 5 g 10.8 # hydro 3 s 3.8 # "Third tier" - improvements: -1.38 meV to -0.13 meV -# hydro 5 p 8.6 -1.38 meV -# hydro 6 h 16 -0.73 meV -# hydro 3 d 10.8 -0.43 meV +# hydro 5 p 8.6 +# hydro 6 h 16 +# hydro 3 d 10.8 # hydro 5 f 6.8 # forced: -0.26 meV # hydro 5 g 6.4 # forced: -0.21 meV # hydro 5 s 9.8 # forced: -0.13 meV diff --git a/tests/aims/test_flows/test_eos.py b/tests/aims/test_flows/test_eos.py index a363d59520..feabae9167 100644 --- a/tests/aims/test_flows/test_eos.py +++ b/tests/aims/test_flows/test_eos.py @@ -101,6 +101,6 @@ def test_eos_from_parameters(mock_aims, tmp_path, si, species_dir): assert len(output["relax"]["energy"]) == 5 # the initial calculation also participates in the fit here assert output["relax"]["EOS"]["birch_murnaghan"]["b0"] == pytest.approx( - 0.5189578108402951, - rel=1e-4, + 0.5188838108657945, + rel=1e-3, ) diff --git a/tests/aims/test_flows/test_magnetism.py b/tests/aims/test_flows/test_magnetism.py index bf7cf31c5b..dc44fed94e 100644 --- a/tests/aims/test_flows/test_magnetism.py +++ b/tests/aims/test_flows/test_magnetism.py @@ -15,13 +15,7 @@ cwd = os.getcwd() -@pytest.mark.skip( - reason="pymatgen 2024.11.13 broke this test with ValueError: Structure contains " - "magnetic moments on both magmom site properties and spin species properties. This " - "is ambiguous. Remove one or the other." -) -# TODO re-attempt to fix and unskip this test -def test_magnetic_orderings(mock_aims, tmp_path, species_dir, mg2mn4o8): +def test_magnetic_orderings(mock_aims, species_dir, mg2mn4o8): parameters = { "k_grid": [2, 2, 2], "species_dir": (species_dir / "light").as_posix(), @@ -50,9 +44,9 @@ def test_magnetic_orderings(mock_aims, tmp_path, species_dir, mg2mn4o8): flow = maker.make(mg2mn4o8) - os.chdir(tmp_path) + # os.chdir(tmp_path) responses = run_locally(flow, create_folders=True, ensure_success=True) - os.chdir(cwd) + # os.chdir(cwd) final_output = responses[flow.jobs[-1].uuid][1].output diff --git a/tests/aims/test_makers/test_gw.py b/tests/aims/test_makers/test_gw.py index 8c2fad4300..b6a00fe15b 100644 --- a/tests/aims/test_makers/test_gw.py +++ b/tests/aims/test_makers/test_gw.py @@ -33,4 +33,4 @@ def test_gw_maker_molecule(tmp_dir, species_dir, mock_aims, o2): # validation the outputs of the job (maybe add gw energy levels as well) output1 = responses[job.uuid][1].output assert isinstance(output1, AimsTaskDoc) - assert output1.output.energy == pytest.approx(-4092.0702534) + assert output1.output.energy == pytest.approx(-4092.12667244759) diff --git a/tests/test_data/aims/MgMn2O4_magnetic/relax_1_3_(fm)/inputs/control.in.gz b/tests/test_data/aims/MgMn2O4_magnetic/relax_1_3_(fm)/inputs/control.in.gz index 70e55145e3..796eb376a6 100644 Binary files a/tests/test_data/aims/MgMn2O4_magnetic/relax_1_3_(fm)/inputs/control.in.gz and b/tests/test_data/aims/MgMn2O4_magnetic/relax_1_3_(fm)/inputs/control.in.gz differ diff --git a/tests/test_data/aims/MgMn2O4_magnetic/relax_2_3_(afm)/inputs/control.in.gz b/tests/test_data/aims/MgMn2O4_magnetic/relax_2_3_(afm)/inputs/control.in.gz index 1920d3f670..d90a75d753 100644 Binary files a/tests/test_data/aims/MgMn2O4_magnetic/relax_2_3_(afm)/inputs/control.in.gz and b/tests/test_data/aims/MgMn2O4_magnetic/relax_2_3_(afm)/inputs/control.in.gz differ diff --git a/tests/test_data/aims/MgMn2O4_magnetic/relax_3_3_(afm)/inputs/control.in.gz b/tests/test_data/aims/MgMn2O4_magnetic/relax_3_3_(afm)/inputs/control.in.gz index e9d546db88..cabdbdd041 100644 Binary files a/tests/test_data/aims/MgMn2O4_magnetic/relax_3_3_(afm)/inputs/control.in.gz and b/tests/test_data/aims/MgMn2O4_magnetic/relax_3_3_(afm)/inputs/control.in.gz differ diff --git a/tests/test_data/aims/MgMn2O4_magnetic/static_1_3_(fm)/inputs/control.in.gz b/tests/test_data/aims/MgMn2O4_magnetic/static_1_3_(fm)/inputs/control.in.gz index 400522bd39..4705ef3fd0 100644 Binary files a/tests/test_data/aims/MgMn2O4_magnetic/static_1_3_(fm)/inputs/control.in.gz and b/tests/test_data/aims/MgMn2O4_magnetic/static_1_3_(fm)/inputs/control.in.gz differ diff --git a/tests/test_data/aims/MgMn2O4_magnetic/static_2_3_(afm)/inputs/control.in.gz b/tests/test_data/aims/MgMn2O4_magnetic/static_2_3_(afm)/inputs/control.in.gz index 5cc1a12161..cdcd463fce 100644 Binary files a/tests/test_data/aims/MgMn2O4_magnetic/static_2_3_(afm)/inputs/control.in.gz and b/tests/test_data/aims/MgMn2O4_magnetic/static_2_3_(afm)/inputs/control.in.gz differ diff --git a/tests/test_data/aims/MgMn2O4_magnetic/static_3_3_(afm)/inputs/control.in.gz b/tests/test_data/aims/MgMn2O4_magnetic/static_3_3_(afm)/inputs/control.in.gz index be067f99d5..00639a1cdd 100644 Binary files a/tests/test_data/aims/MgMn2O4_magnetic/static_3_3_(afm)/inputs/control.in.gz and b/tests/test_data/aims/MgMn2O4_magnetic/static_3_3_(afm)/inputs/control.in.gz differ diff --git a/tutorials/phonon_workflow.ipynb b/tutorials/phonon_workflow.ipynb index 82ff8029db..3715885b1d 100644 --- a/tutorials/phonon_workflow.ipynb +++ b/tutorials/phonon_workflow.ipynb @@ -219,7 +219,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.16" + "version": "3.12.0" } }, "nbformat": 4,