Skip to content

Releases: materialsproject/atomate2

v0.0.17

30 Sep 09:16
Compare
Choose a tag to compare

Bug Fixes 🐛

Documentation 📖

House-Keeping 🧹

Full Changelog: v0.0.16...v0.0.17

v0.0.16

26 Sep 09:27
Compare
Choose a tag to compare

This release brings lots of new workflows and support for all ASE calculators.

New Features 🎉

Documentation 📖

House-Keeping 🧹

  • Remove emmet == pin in pyproject.toml and update version in strict by @Andrew-S-Rosen in #988

New Contributors

Full Changelog: v0.0.15...v0.0.16

v0.0.15

20 Aug 10:23
Compare
Choose a tag to compare

NOTE: This version updates the VASP workflows to use input sets defined in pymatgen. Please make sure your pymatgen version is updated accordingly.

New Features 🎉

Bug Fixes 🐛

  • Fix tests and installation bug by @jmmshn in #765
  • Add revert_default_dtype context manager to fix clashing global torch.dtype between MACE and CHGNet by @janosh in #766
  • Fix TrajectoryObserver.to_ase_trajectory return type by @janosh in #852
  • Fix JobStoreDocument attribute access by @mjwen in #710
  • fix CP2K TaskDocument by @lory-w in #900
  • Add back symprec kwarg to MP and MatPES set generators by @janosh in #947
  • Fix MPID assignment in electrode workflow by @esoteric-ephemera in #956

Enhancements 🛠

Documentation 📖

  • Corrected typo in doc by @rul048 in #775
  • Add more details to the installation guide by @JaGeo in #810
  • Add missing calculator_kwargs and remove outdated model/model_kwargs in ForceFieldRelaxMaker doc strings by @janosh in #830
  • Document the option to run LOBSTER with one jobscript only by @JaGeo in #811
  • Fix title hierarchies in VASP documentation by @JaGeo in #853
  • Docs: add Document Models / emmet tutorial by @rkingsbury in #917
  • Writing tutorial for high level overview of atomate2 concepts. by @QuantumChemist in #757
  • Tutorial for blob storage with test by @jmmshn in #776
  • [WIP] Documentation update by @AntObi in #850
  • Added documentation about JSONStore usage within Installation by @abhardwaj73 in #945
  • Remove README note about atomate2 mostly being for VASP by @Andrew-S-Rosen in #957
  • Increase k-point density for MP GGA static calculations to close issue #844 by @esoteric-ephemera in #854
  • Adds missing MAGMOMs for MatPES jobs by @esoteric-ephemera in #854

House-Keeping 🧹

  • Make functions prefixed with _ but cross-imported public by @janosh in #767
  • Warn on non-default ATOMATE2_CONFIG_FILE that's not found by @janosh in #794
  • Remove abinit __all__ module star exports by @janosh in #804
  • Turn ForceFieldRelaxMaker._calculator method into calculator property by @janosh in #839
  • Update LobsterPy version in standard installation by @JaGeo in #841
  • CI add repository_dispatch event for pymatgen_ci_trigger by @janosh in #835
  • Add test for supercell matrix creation in phonon workflow by @JaGeo in #873
  • ruff fixes by @janosh in #894
  • ruff fixes by @janosh in #946

New Contributors

Full Changelog: v0.0.14...v0.0.15

v0.0.14

29 Feb 14:13
Compare
Choose a tag to compare

New Features 🎉

Bug Fixes 🐛

  • Skip final LDAU/J/L/MAGMOM updates and fix setting MAGMOM via user_incar_settings by @JonathanSchmidt1 in #648
  • Prep for next pymatgen release by @janosh in #690
  • [bug fix] SC Matrix Checking Logic by @jmmshn in #704
  • Fix elastic conventional structure by @mjwen in #706
  • Add KspacingMetalHandler to VASP _DEFAULT_HANDLERS by @janosh in #600
  • Fix import error [ijson] by @naik-aakash in #708
  • Print invalid value and list valid ones in PhononMaker error messages by @janosh in #728
  • Update minimum monty version, allow newer pydantic by @mkhorton in #720
  • Fix phonon + Lobster flow by removing magmoms before passing to phonopy by @naik-aakash in #751
  • Fix MP query by @utf in #755

Enhancements 🛠

  • add directory of task doc generation to phonon schema by @JaGeo in #674
  • Ensure MP VASP sets don't use auto_ismear, few other fixes by @esoteric-ephemera in #673
  • Schema update > Update plot example LOBSTER workflow by @naik-aakash in #682
  • Modify BadInputSetWarning logic for relaxations of a likely metal by @Andrew-S-Rosen in #727
  • Define MLFF Enum to ensure consistent force field names by @janosh in #729

Documentation 📖

House-Keeping 🧹

  • Address TODO re missing asserts in test_elastic_wf_with_mace() by @janosh in #679
  • Update lobsterpy version by @naik-aakash in #683
  • Fix all ruff PT011 (not checking error message when testing exceptions) by @janosh in #698

New Contributors

Full Changelog: v0.0.13...v0.0.14

v0.0.13

08 Jan 20:18
af667d8
Compare
Choose a tag to compare

BREAKING CHANGE

The API of Maker.maker for all workflows (VASP, CP2K, force fields) have been modified. Previously, this function had custom arguments for previous calculation directories (e.g., prev_vasp_dir, prev_cp2k_dir). These arguments have been standardised to prev_dir. Accordingly, the code used to chain workflows has changed and should be updated in all workflows (simply change prev_*_dir to prev_dir).

New Features 🎉

  • Add setting VASP_RUN_DDEC6: bool = False by @janosh in #587

Bug Fixes 🐛

  • Resolve bandstructure datastore bug by @JaGeo in #605
  • Fix TypeError: PhononBSPlotter.save_plot() got an unexpected keyword argument img_format by @janosh in #625
  • ForceFieldRelaxMaker default relax_cell to True by @janosh in #635
  • Replace ase ExpCellFilter with FrechetCellFilter in Relaxer by @janosh in #636
  • update lobsterpy version and schemas to match new version changes by @naik-aakash in #637
  • Default create_thermal_displacements to False in VASP and forcefield PhononMaker by @janosh in #647
  • Fix import of ASE filters when user has installed from PyPI and not gitlab by @esoteric-ephemera in #650
  • Mark schema fields with None default as Optional to pass pydantic v2 validation by @danielzuegner in #651

Enhancements 🛠

  • Breaking: Unify previous directory Maker API by @janosh in #593
  • Add keyword incar_exclude: Sequence[str] = None to fake_run_vasp() by @janosh in #599
  • Allow prv_dir to be used more in defect wf by @jmmshn in #585
  • Add MACE RelaxMaker and StaticMaker by @CompRhys in #611
  • Update lobster task schema by @naik-aakash in #529
  • Allow optimizer to be configured for MACE/GAP by @CompRhys in #615
  • MACE Static/RelaxMakers default to loading mace_mp instead of test model by @janosh in #614
  • Add optional 3rd static for PBE+U to MatPesStaticFlowMaker by @janosh in #606
  • Use PyPI version of MACE by @utf in #668
  • Multi step MD flow by @gpetretto in #489

Documentation 📖

House-Keeping 🧹

New Contributors

Full Changelog: v0.0.12...v0.0.13

v0.0.12

30 Oct 17:19
Compare
Choose a tag to compare

What's Changed

  • Breaking: default Atomate2Settings.VASP_INHERIT_INCAR to False by @janosh in #594

Bug Fixes 🐛

  • Enforce magmom precedence in INCAR creation by @mattmcdermott in #506
  • Warn on empty config by @janosh in #522
  • CP2K use calcs_reversed[0] instead of calcs_reversed[-1] to not reverse again by @janosh in #534
  • Fix wrong INCAR values in MP workflows by @janosh in #550
  • Fix failing tests from Pydantic v2 migration by @hrushikesh-s in #558
  • fixing pydantic v2 test errors by @hrushikesh-s in #565
  • parse_additional_json() ignore FW.json.gz in output directories by @janosh in #574
  • Fix bandgap_tol and delete bandgap_override on MPMetaGGARelaxSetGenerator by @janosh in #553
  • Fix VaspInputGenerator's _set_kspacing not respecting auto_ismear = False nor auto_kspacing = False by @janosh in #576
  • Clean up VASP powerups, correct params in MP flows, test for _set_u_params, test for _set_kspacing, fix _get_incar method of VaspInputSet by @esoteric-ephemera in #561
  • Fix Lobster workflow by @JaGeo in #583
  • Change MatPesGGAPlusMetaGGAStaticMaker.output to dict containing both statics by @janosh in #586
  • Test MP + MatPES set generators by @janosh in #596

Enhancements 🛠

  • Add StructureMetadata as baseclass for output documents by @gpetretto in #514
  • Materials Project GGA and meta-GGA workflows by @janosh in #504
  • [WIP] MP-compatible r2SCAN workflow (and a few general INCAR improvements) by @Andrew-S-Rosen in #362
  • Update to Pydantic v2 by @hrushikesh-s in #567
  • Add MatPES GGA and r2SCAN static makers by @janosh in #532
  • Move elastic workflow to common and build force-field elastic workflow by @JaGeo in #581

Documentation 📖

House-Keeping 🧹

New Contributors

Full Changelog: v0.0.11...v0.0.12

v0.0.11

02 Sep 09:48
6788a31
Compare
Choose a tag to compare

Task Document Changes

We have merged the atomate2 VASP task document with the one in emmet. The changes to the atomate2 schemas are:

  • PsuedoPotentialSummary -> Potcar
    • labels -> symbols
  • AnalysisSymmary -> AnalysisDoc
    • delta_volume_as_percent -> delta_volume_percent
  • InputSummary -> InputDoc
  • OutputSummary -> OutputDoc
    • density added
  • Status -> TaskState
  • TaskDocument -> TaskDoc
    • task_type added
  • Status -> TaskState

VASP input set updates

The VASP input sets have been reconfigured based on user feedback. The auto_kspacing option has been removed and KSPACING is no longer used in the atomate2 input sets by default. We have returned to using reciprocal_density as in atomate1. These changes mean the k-point mesh is no longer dependent on the precise band gap of the system. Instead, there are now two k-points settings, one for insulators and one for metals. This should remove issues when changing the functional from PBEsol -> HSE, in which the band gap increases but the k-point mesh would be expected to stay the same.

Two new options have been added to the BaseVaspInputSetGenerator:

  • auto_metal_kpoints: If true and the system is metallic, try and use reciprocal_density_metal instead of reciprocal_density for metallic systems.
  • auto_ismear: If true, the values for ISMEAR and SIGMA will be set automatically depending on the bandgap of the system. If the bandgap is not known (e.g., there is no previous VASP directory) then ISMEAR=0 and SIGMA=0.2; if the bandgap is zero (a metallic system) then ISMEAR=2 and SIGMA=0.2; if the system is an insulator, then ISMEAR=-5 (tetrahedron smearing).

New Features 🎉

Bug Fixes 🐛

Enhancements 🛠

  • Extension of Lobster schema and additional tests by @JaGeo in #272
  • Use emmet VASP task document by @utf in #269
  • VASP inputset updates by @utf in #270
  • Linting by @utf in #274
  • Improve Lobster workflow preconverge step, kpoints, docs by @JaGeo in #277
  • add has_doscar_lso field to Lobsterout schema model and update lobsterpy version by @naik-aakash in #286
  • added simple chg check by @jmmshn in #320
  • Switch to emmet's MoleculeMetadata by @arosen93 in #301
  • Update update-precommit.yml by @utf in #330
  • Update dependencies by @utf in #329
  • Add missing molecule field to cclib TaskDocument by @arosen93 in #353
  • allow elastically unstable structures by @matthewkuner in #355
  • update lobstertask schema: add bandoverlaps,grosspop and sitepotentials fields by @naik-aakash in #404
  • Update CondensedBondingAnalysis schema by @naik-aakash in #469
  • Phonon tweaks by @utf in #276
  • Update to Defects WF by @jmmshn in #430
  • Small change to gunzip to allow better restarting by @jmmshn in #476
  • Remove VASP calc types schema by @mjwen in #407
  • Optionally zip files at the end of jobs by @gpetretto in #414

Documentation 📖

  • Add more documentation for Lobster by @JaGeo in #267
  • Use furo for docs theme by @utf in #331
  • Update Lobster documentation by @JaGeo in #376
  • Fix docs typos by @janosh in #373
  • Update FireWorks section of docs by @arosen93 in #378
  • Add a copy button to code blocks by @arosen93 in #382
  • clean up doc, remove left-overs from amset example by @JaGeo in #394
  • More details for lobster documentation by @JaGeo in #431
  • Deploy docs on every commit to main by @janosh in #422
  • Add clearer documentation on lobster worker by @JaGeo in #440
  • Docs: add basic workflow tutorial by @rkingsbury in #408
  • Use GitHub's deploy-pages action to deploy docs by @janosh in #475

House-Keeping 🧹

  • More ruff by @janosh in #344
  • Move all type-hint only imports behind if TYPE_CHECKING by @janosh in #354
  • ruff select perflint flake8-slots by @janosh in #395
  • Bump ruff and fix PERF401: Use a list comprehension to create transformed list by @janosh in #421
  • Simplify: dict.get(key, None) -> dict.get(key) by @janosh in #429
  • dict.setdefault instead of if key not in dict: dict[key] = ... by @janosh in #452

New Contributors

Full Changelog: v0.0.10...v0.0.11)

v0.0.10

12 Mar 17:43
69f4743
Compare
Choose a tag to compare

Lobster workflow with VASP implementation (@JaGeo & @naik-aakash, #200)

Full Changelog: v0.0.9...v0.0.10

v0.0.9

08 Mar 21:36
Compare
Choose a tag to compare

New features:

  • Defect formation energy workflow with VASP implementation (@jmmshn, #215)
  • Job to retrieve a structure from the MP API at run-time (@mkhorton, #176)

Enhancements:

Bug fixes:

New Contributors

Full Changelog: v0.0.8...v0.0.9

v0.0.8

04 Oct 16:46
a3acfec
Compare
Choose a tag to compare

New features:

Enhancements:

  • Update IO classes to use pymatgen base classes (@rkingsbury, #141)
  • Read and write VASP structures with higher precision (@JaGeo, #167)

Bug fixes:

  • Fix code examples in docs (@JaGeo, #169)
  • Fix f-orbital DOS properties (@arosen93, #138)
  • Fix mock_run_vasp testing to accept args (@mjwen, #151)
  • Regenerate calc_types enum (@mjwen, #153)