Releases: materialsproject/atomate2
v0.0.18
New Features 🎉
- Aims magnetic ordering by @tpurcell90 in #922
- Ferroelectric Workflow 2 by @fraricci in #1012
- Feat: GW workflow with VASP by @yanghan234 in #808
Enhancements 🛠
- Allow energy minimization maker to report energies by @orionarcher in #1004
- Implementation to adjust get_supercell_size to also generate orthorhombic supercells by @QuantumChemist in #923
- MPMorph Flows by @BryantLi-BLI in #938
House-Keeping 🧹
- Fix
ruff
PLC0206 by @janosh in #1009 - Update MACE to 0.3.6 by @orionarcher in #1032
- Allow custom mace model by specifying "model" in calculator kwargs" by @orionarcher in #1017
- feat: add dedicated fireworks optional dependency (Fix #1033). by @hongyi-zhao in #1035
- Make testing utils importable by @jmmshn in #1037
New Contributors
- @fraricci made their first contribution in #1012
- @hongyi-zhao made their first contribution in #1035
- @BryantLi-BLI made their first contribution in #938
- @yanghan234 made their first contribution in #808
Full Changelog: v0.0.17...v0.0.18
v0.0.17
Bug Fixes 🐛
- Fix
prev_dir
behavior in input set generator ofMPGGAStaticMaker
by @Andrew-S-Rosen in #996
Documentation 📖
House-Keeping 🧹
- Excise openff dependency from OpenMM testing by @orionarcher in #993
- Use
pytest-split
to parallelize across 3 runners and speedup CI by @esoteric-ephemera in #985
Full Changelog: v0.0.16...v0.0.17
v0.0.16
This release brings lots of new workflows and support for all ASE calculators.
New Features 🎉
- Anharmonicity Quantification workflow by @4kevinbeck5 in #901
- Workflow for Quasi-harmonic approximation (forcefields and VASP) by @JaGeo in #903
- Atomate2 OpenMM integration & broader classical MD framework by @orionarcher in #782
- Frequency Flattening Optimizer by @rohithsrinivaas in #863
- Including VASP surface adsorption flow by @itsduowang in #691
- Generalize forcefields for generic ASE calculator support by @esoteric-ephemera in #940
Documentation 📖
- Input set tutorial by @JonathanSchmidt1 in #780
House-Keeping 🧹
- Remove emmet
==
pin inpyproject.toml
and update version instrict
by @Andrew-S-Rosen in #988
New Contributors
- @4kevinbeck5 made their first contribution in #901
- @orionarcher made their first contribution in #782
- @rohithsrinivaas made their first contribution in #863
- @itsduowang made their first contribution in #691
Full Changelog: v0.0.15...v0.0.16
v0.0.15
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 🎉
- Add nequip force field relax- and staticmaker and corresponding tests by @JonathanSchmidt1 in #764
- Porting qchem into atomate2 by @rdguha1995 in #689
- Forcefield molecular dynamics and forcefield refactor by @esoteric-ephemera in #722
- Abinit workflows: static, non-scf and relaxation. by @davidwaroquiers in #183
- Add magnetic orderings workflow by @mattmcdermott in #432
- Add elastic workflow for FHI-aims by @tpurcell90 in #871
- Transition to pymatgen VASP input sets by @esoteric-ephemera in #854
- Add workflow to compute Gruneisen parameters by @naik-aakash in #752
Bug Fixes 🐛
- Fix tests and installation bug by @jmmshn in #765
- Add
revert_default_dtype
context manager to fix clashing globaltorch.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 🛠
- Add dir_name to ForceFieldMaker and **task_document_kwargs to from_ase_compatible_result by @QuantumChemist in #791
- Add flexible filename and extension to phonon new_plotter by @QuantumChemist in #792
- Simplify phonon
get_supercell_size()
and test clean up by @janosh in #783 - Add
fix_symmetry: bool = False
option to forcefield relax makers by @JonathanSchmidt1 in #789 - Update LobsterTaskDoc by @naik-aakash in #723
from_...
class methods now returntyping_extensions.Self
by @janosh in #840- Make Fermi Energy Optional for FHI-aims by @tpurcell90 in #793
- Handling failures in elastic flow by @gpetretto in #861
- Bug in supercell matrix determination in phonon workflow by @JaGeo in #872
- Add possibility to use your own M3GNet potential by @QuantumChemist in #911
- Equation of State workflow for FHI-aims by @ansobolev in #889
- Add NEP MLIP relax, static, and MD makers by @naik-aakash in #893
- add additional fields as kwargs to PhononBSDOSDoc by @naik-aakash in #910
- Defect: Allow bulk SC calculation to be skipped. by @jmmshn in #742
- Add
SevenNetRelaxMaker
+SevenNetStaticMaker
to force field jobs by @janosh in #918 - Lobster schema updates by @naik-aakash in #924
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 outdatedmodel
/model_kwargs
inForceFieldRelaxMaker
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 intocalculator
property by @janosh in #839 - Update LobsterPy version in standard installation by @JaGeo in #841
- CI add
repository_dispatch
event forpymatgen_ci_trigger
by @janosh in #835 - Add test for supercell matrix creation in phonon workflow by @JaGeo in #873
ruff
fixes by @janosh in #894ruff
fixes by @janosh in #946
New Contributors
- @rul048 made their first contribution in #775
- @davidwaroquiers made their first contribution in #183
- @ansobolev made their first contribution in #889
- @lory-w made their first contribution in #900
- @AntObi made their first contribution in #850
- @abhardwaj73 made their first contribution in #945
Full Changelog: v0.0.14...v0.0.15
v0.0.14
New Features 🎉
- Add lobster mp workflow by @JaGeo in #634
- Add FHI-aims DFT calculator by @tpurcell90 in #562
- Electrode Workflow by @jmmshn in #655
- Equation of state (EOS) workflows by @esoteric-ephemera in #623
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 newerpydantic
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 📖
- Update doc: adding metadata to flow by @naik-aakash in #638
- Fix hyperlink in Docs by @naik-aakash in #686
- Correct typo in doc by @JiQi535 in #716
- Fix docstring on
MatPesMetaGGAStaticSetGenerator
by @Andrew-S-Rosen in #725 - Add
citation.cff
file, Zenodo record and readme "How to cite" section by @janosh in #731
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
- @JonathanSchmidt1 made their first contribution in #648
- @rdguha1995 made their first contribution in #161
- @JiQi535 made their first contribution in #716
Full Changelog: v0.0.13...v0.0.14
v0.0.13
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 🎉
Bug Fixes 🐛
- Resolve bandstructure datastore bug by @JaGeo in #605
- Fix
TypeError
:PhononBSPlotter.save_plot()
got an unexpected keyword argumentimg_format
by @janosh in #625 ForceFieldRelaxMaker
defaultrelax_cell
toTrue
by @janosh in #635- Replace ase
ExpCellFilter
withFrechetCellFilter
inRelaxer
by @janosh in #636 - update lobsterpy version and schemas to match new version changes by @naik-aakash in #637
- Default
create_thermal_displacements
toFalse
in VASP and forcefieldPhononMaker
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 asOptional
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
tofake_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 🧹
- Update GitHub Action versions by @janosh in #640
- Drop
flake8
by @janosh in #658 - Enable all
ruff
rules by default by @janosh in #663
New Contributors
- @CompRhys made their first contribution in #612
- @danielzuegner made their first contribution in #651
Full Changelog: v0.0.12...v0.0.13
v0.0.12
What's Changed
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 ofcalcs_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()
ignoreFW.json.gz
in output directories by @janosh in #574- Fix
bandgap_tol
and deletebandgap_override
onMPMetaGGARelaxSetGenerator
by @janosh in #553 - Fix
VaspInputGenerator
's_set_kspacing
not respectingauto_ismear = False
norauto_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 ofVaspInputSet
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 📖
- Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in #516
- Add Aaron Kaplan and Matthew McDermott to
contributors.md
by @janosh in #560 - Document architectural difference between atomate 1 and 2 by @janosh in #381
- Add Thomas Purcell to
contributors.md
by @tpurcell90 in #568 - Add Alex Bonkowski to contributors list by @JaGeo in #573
- Add @matthewkuner to contributors by @matthewkuner in #575
- Update contributors.md by @utf in #579
House-Keeping 🧹
- Remove
__all__
from all modules by @janosh in #540 - removed py38 support, and add py 3.11 support by @naik-aakash in #537
- Check full INCAR by default in
mock_vasp
fixture by @janosh in #551 - skip validate charge test by @jmmshn in #563
- Add some type annotations by @ab5424 in #578
- Future type annotations by @janosh in #580
- Use
numpy.testing.assert_allclose
over assertnp.(all|is)close
by @janosh in #582
New Contributors
- @mattmcdermott made their first contribution in #506
- @tpurcell90 made their first contribution in #568
- @esoteric-ephemera made their first contribution in #561
- @ab5424 made their first contribution in #578
Full Changelog: v0.0.11...v0.0.12
v0.0.11
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 usereciprocal_density_metal
instead ofreciprocal_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 🎉
- CP2K Support by @nwinner in #157
- Add forcefield schemas/makers to atomate2 by @matthewkuner in #322
- Add
m3gnet
support to Atomate2 by @matthewkuner in #380 - Phonons for forcefields by @JaGeo in #398
Bug Fixes 🐛
- Fix Lobster Schema by @JaGeo in #266
- fix lso dos of lobster being not saved in schema by @naik-aakash in #279
- fix
_get_strong_bonds
function by @naik-aakash in #289 - [Bug Fix] For stringing defect calculations together by @jmmshn in #292
- BUGFIX
auto_lreal
by @jmmshn in #297 - Fix
Yb
PSP: changeYb_2
toYb_3
by @janosh in #319 - Fix typo by @janosh in #321
- Fix overriding
magmoms
inupdate_user_incar_settings(
by @janosh in #375 - Fix encoding of input
Molecule
coordinates in cclibTaskDocument
by @arosen93 in #411 - [FIX] fix elastic tensor flow by @mjwen in #415
- [BUG FIX] Edge case for Magmoms by @jmmshn in #460
- [FIX] Fix major bug that caused
user_incar_settings
to be overwritten in some cases by @matthewkuner in #412 - Test for
zip_outputs
by @gpetretto in #503
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
selectperflint
flake8-slots
by @janosh in #395- Bump
ruff
and fixPERF401
: 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 ofif key not in dict: dict[key] = ...
by @janosh in #452
New Contributors
- @naik-aakash made their first contribution in #279
- @matthewkuner made their first contribution in #322
- @gpetretto made their first contribution in #414
Full Changelog: v0.0.10...v0.0.11)
v0.0.10
Lobster workflow with VASP implementation (@JaGeo & @naik-aakash, #200)
Full Changelog: v0.0.9...v0.0.10
v0.0.9
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:
- Documentation of phonon workflow (@QuantumChemist, #232)
- Refactor defect code (@jmmshn, #214)
- Use
ruff
for linting (@janosh, #250)
Bug fixes:
- Use correct k-point density in phonon workflow (@JaGeo, #177)
- Fix use of
expanduser
path (@nwinner, #180) - Correct
calcs_reversed
to be in the proper order (@Zhuoying, #182) - Bugfix for
store_volumetric_data
(@jmmshn, #212)
New Contributors
- @mkhorton made their first contribution in #176
- @nwinner made their first contribution in #180
- @Zhuoying made their first contribution in #182
- @QuantumChemist made their first contribution in #232
Full Changelog: v0.0.8...v0.0.9