Releases: materialsproject/atomate2
Release list
v0.0.20
Enhancements 🛠
- Add MatPES forcefields by @esoteric-ephemera in #1158
- Add
DynamicOpenMMFlowMakerfor dynamic OpenMM Simulations by @shehan807 in #1115 - atomate2 / OpenMM OPLS-AA Enhancements by @shehan807 in #1111
- Add updated MP workflows + cleanup by @esoteric-ephemera in #1139
Documentation 📖
- Improve documentation LOBSTER and PHONON workflow by @JaGeo in #1117
- Add key concept tutorial to tutorial list in README by @QuantumChemist in #1120
- Fixing headline levels in key_concepts_overview.md by @QuantumChemist in #1121
- try to fix the doc by @JaGeo in #1125
- Added code snippets for Grüneisen, QHA and EOS wfs documentation by @QuantumChemist in #1130
- a few improvements for the tutorials by @QuantumChemist in #1132
- Update tutorials.md by @JaGeo in #1138
- Electrode workflow and documentation improvements by @esoteric-ephemera in #1055
- Update index.md by @JaGeo in #1155
House-Keeping 🧹
- More CI fixes by @esoteric-ephemera in #1141
Other Changes
- Pin MACE calculator version, add missing metadata to AseStructureTaskDoc by @esoteric-ephemera in #1119
- Tutorials for QHA and Grüneisen workflows by @JaGeo in #1122
- add more headlines to tutorials and fix a typo by @JaGeo in #1126
- Minor update to tutorials by @naik-aakash in #1128
- adjust example flow names by @QuantumChemist in #1131
- Aims phonon tutorials by @tpurcell90 in #1136
- fix gruneisen tutorial by @JaGeo in #1142
- fix link again for aims tutorial by @JaGeo in #1143
- Append name relax by @JaGeo in #1150
- add more info on jobflow-remote by @JaGeo in #1154
- Add example MP-compatible phase diagram tutorial by @esoteric-ephemera in #1159
v0.0.19
Bug Fixes 🐛
- CP2K fixes by @janosh in #1056
- bug fix for linear strain passing in qha by @JaGeo in #1061
- Fix
generate_phonon_displacementsmagmom removal side effect by @janosh in #1064 - Fixed Failing Abinit tests bis by @VicTrqt in #1108
Enhancements 🛠
- Add trajectory reporter to openmm workflow by @orionarcher in #1053
PhononMakeradd options tocalculate_pdosand save force constants to file by @chouyoudou in #1008- Allow
MatPesStaticFlowMaker(static2=None)by @janosh in #997
Documentation 📖
- Minor docs cleanup by @esoteric-ephemera in #1047
- add openmm description to docs by @JaGeo in #1069
- Docs update, forcefield elastic convenience maker, forcefield enum hydration by @esoteric-ephemera in #1072
- Added the ChemRxiv citation by @hrushikesh-s in #1107
- Fix docs by @janosh in #1109
House-Keeping 🧹
- Fix minor phonon code formatting issues + typos by @janosh in #1070
- Fix bump phonopy by @naik-aakash in #1006
- update calorine version by @naik-aakash in #1083
- Deprecated
Structure.ntypespin pymatgen by @jmmshn in #1105
New Contributors
- @chouyoudou made their first contribution in #1008
- @VicTrqt made their first contribution in #1108
Full Changelog: v0.0.18...v0.0.19
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
ruffPLC0206 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_dirbehavior in input set generator ofMPGGAStaticMakerby @Andrew-S-Rosen in #996
Documentation 📖
House-Keeping 🧹
- Excise openff dependency from OpenMM testing by @orionarcher in #993
- Use
pytest-splitto 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.tomland update version instrictby @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_dtypecontext manager to fix clashing globaltorch.dtypebetween MACE and CHGNet by @janosh in #766 - Fix
TrajectoryObserver.to_ase_trajectoryreturn type by @janosh in #852 - Fix JobStoreDocument attribute access by @mjwen in #710
- fix CP2K TaskDocument by @lory-w in #900
- Add back
sympreckwarg 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 = Falseoption to forcefield relax makers by @JonathanSchmidt1 in #789 - Update LobsterTaskDoc by @naik-aakash in #723
from_...class methods now returntyping_extensions.Selfby @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+SevenNetStaticMakerto 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_kwargsand remove outdatedmodel/model_kwargsinForceFieldRelaxMakerdoc 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_FILEthat's not found by @janosh in #794 - Remove
abinit__all__module star exports by @janosh in #804 - Turn
ForceFieldRelaxMaker._calculatormethod intocalculatorproperty by @janosh in #839 - Update LobsterPy version in standard installation by @JaGeo in #841
- CI add
repository_dispatchevent forpymatgen_ci_triggerby @janosh in #835 - Add test for supercell matrix creation in phonon workflow by @JaGeo in #873
rufffixes by @janosh in #894rufffixes 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_settingsby @JonathanSchmidt1 in #648 - Prep for next
pymatgenrelease by @janosh in #690 - [bug fix] SC Matrix Checking Logic by @jmmshn in #704
- Fix elastic conventional structure by @mjwen in #706
- Add
KspacingMetalHandlerto VASP_DEFAULT_HANDLERSby @janosh in #600 - Fix import error [ijson] by @naik-aakash in #708
- Print invalid value and list valid ones in
PhononMakererror messages by @janosh in #728 - Update minimum
montyversion, allow newerpydanticby @mkhorton in #720 - Fix phonon + Lobster flow by removing magmoms before passing to
phonopyby @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
BadInputSetWarninglogic for relaxations of a likely metal by @Andrew-S-Rosen in #727 - Define
MLFFEnumto 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
MatPesMetaGGAStaticSetGeneratorby @Andrew-S-Rosen in #725 - Add
citation.cfffile, 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_formatby @janosh in #625 ForceFieldRelaxMakerdefaultrelax_celltoTrueby @janosh in #635- Replace ase
ExpCellFilterwithFrechetCellFilterinRelaxerby @janosh in #636 - update lobsterpy version and schemas to match new version changes by @naik-aakash in #637
- Default
create_thermal_displacementstoFalsein VASP and forcefieldPhononMakerby @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
Nonedefault asOptionalto pass pydantic v2 validation by @danielzuegner in #651
Enhancements 🛠
- Breaking: Unify previous directory
MakerAPI by @janosh in #593 - Add keyword
incar_exclude: Sequence[str] = Nonetofake_run_vasp()by @janosh in #599 - Allow
prv_dirto 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_mpinstead of test model by @janosh in #614 - Add optional 3rd static for PBE+U to
MatPesStaticFlowMakerby @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
flake8by @janosh in #658 - Enable all
ruffrules 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.gzin output directories by @janosh in #574- Fix
bandgap_toland deletebandgap_overrideonMPMetaGGARelaxSetGeneratorby @janosh in #553 - Fix
VaspInputGenerator's_set_kspacingnot respectingauto_ismear = Falsenorauto_kspacing = Falseby @janosh in #576 - Clean up VASP powerups, correct params in MP flows, test for
_set_u_params, test for_set_kspacing, fix_get_incarmethod ofVaspInputSetby @esoteric-ephemera in #561 - Fix Lobster workflow by @JaGeo in #583
- Change
MatPesGGAPlusMetaGGAStaticMaker.outputto 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.mdby @janosh in #560 - Document architectural difference between atomate 1 and 2 by @janosh in #381
- Add Thomas Purcell to
contributors.mdby @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_vaspfixture 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_allcloseover assertnp.(all|is)closeby @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->Potcarlabels->symbols
AnalysisSymmary->AnalysisDocdelta_volume_as_percent->delta_volume_percent
InputSummary->InputDocOutputSummary->OutputDocdensityadded
Status->TaskStateTaskDocument->TaskDoctask_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_metalinstead ofreciprocal_densityfor 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
m3gnetsupport 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_bondsfunction by @naik-aakash in #289 - [Bug Fix] For stringing defect calculations together by @jmmshn in #292
- BUGFIX
auto_lrealby @jmmshn in #297 - Fix
YbPSP: changeYb_2toYb_3by @janosh in #319 - Fix typo by @janosh in #321
- Fix overriding
magmomsinupdate_user_incar_settings(by @janosh in #375 - Fix encoding of input
Moleculecoordinates in cclibTaskDocumentby @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_settingsto be overwritten in some cases by @matthewkuner in #412 - Test for
zip_outputsby @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_lsofield 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
MoleculeMetadataby @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
gunzipto 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
mainby @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-pagesaction to deploy docs by @janosh in #475
House-Keeping 🧹
- More
ruffby @janosh in #344 - Move all type-hint only imports behind
if TYPE_CHECKINGby @janosh in #354 ruffselectperflintflake8-slotsby @janosh in #395- Bump
ruffand 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.setdefaultinstead 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)