- Add lobster mp workflow by @JaGeo in materialsproject#634
- Add FHI-aims DFT calculator by @tpurcell90 in materialsproject#562
- Electrode Workflow by @jmmshn in materialsproject#655
- Equation of state (EOS) workflows by @esoteric-ephemera in materialsproject#623
- Skip final LDAU/J/L/MAGMOM updates and fix setting MAGMOM via
user_incar_settings
by @JonathanSchmidt1 in materialsproject#648 - Prep for next
pymatgen
release by @janosh in materialsproject#690 - fix SC Matrix Checking Logic by @jmmshn in materialsproject#704
- Fix elastic conventional structure by @mjwen in materialsproject#706
- Add
KspacingMetalHandler
to VASP_DEFAULT_HANDLERS
by @janosh in materialsproject#600 - Fix import error [ijson] by @naik-aakash in materialsproject#708
- Print invalid value and list valid ones in
PhononMaker
error messages by @janosh in materialsproject#728 - Update minimum
monty
version, allow newerpydantic
by @mkhorton in materialsproject#720 - Fix phonon + Lobster flow by removing magmoms before passing to
phonopy
by @naik-aakash in materialsproject#751 - Fix MP query by @utf in materialsproject#755
- add directory of task doc generation to phonon schema by @JaGeo in materialsproject#674
- Ensure MP VASP sets don't use auto_ismear, few other fixes by @esoteric-ephemera in materialsproject#673
- Schema update > Update plot example LOBSTER workflow by @naik-aakash in materialsproject#682
- Modify
BadInputSetWarning
logic for relaxations of a likely metal by @Andrew-S-Rosen in materialsproject#727 - Define
MLFF
Enum
to ensure consistent force field names by @janosh in materialsproject#729
- Update doc: adding metadata to flow by @naik-aakash in materialsproject#638
- Fix hyperlink in Docs by @naik-aakash in materialsproject#686
- Correct typo in doc by @JiQi535 in materialsproject#716
- Fix docstring on
MatPesMetaGGAStaticSetGenerator
by @Andrew-S-Rosen in materialsproject#725 - Add
citation.cff
file, Zenodo record and readme "How to cite" section by @janosh in materialsproject#731
- Address TODO re missing asserts in
test_elastic_wf_with_mace()
by @janosh in materialsproject#679 - Update lobsterpy version by @naik-aakash in materialsproject#683
- Fix all ruff PT011 (not checking error message when testing exceptions) by @janosh in materialsproject#698
- @JonathanSchmidt1 made their first contribution in materialsproject#648
- @rdguha1995 made their first contribution in materialsproject#161
- @JiQi535 made their first contribution in materialsproject#716
Full Changelog: https://github.com/materialsproject/atomate2/compare/v0.0.13...v0.0.14
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 approach used to chain workflows has now changed.
- Add setting
VASP_RUN_DDEC6: bool = False
by @janosh in materialsproject#587
- Resolve bandstructure datastore bug by @JaGeo in materialsproject#605
- Fix
TypeError
:PhononBSPlotter.save_plot()
got an unexpected keyword argumentimg_format
by @janosh in materialsproject#625 ForceFieldRelaxMaker
defaultrelax_cell
toTrue
by @janosh in materialsproject#635- Replace ase
ExpCellFilter
withFrechetCellFilter
inRelaxer
by @janosh in materialsproject#636 - update lobsterpy version and schemas to match new version changes by @naik-aakash in materialsproject#637
- Default
create_thermal_displacements
toFalse
in VASP and forcefieldPhononMaker
by @janosh in materialsproject#647 - Fix import of ASE filters when user has installed from PyPI and not gitlab by @esoteric-ephemera in materialsproject#650
- Mark schema fields with
None
default asOptional
to pass pydantic v2 validation by @danielzuegner in materialsproject#651
- Breaking: Unify previous directory
Maker
API by @janosh in materialsproject#593 - Add keyword
incar_exclude: Sequence[str] = None
tofake_run_vasp()
by @janosh in materialsproject#599 - Allow
prv_dir
to be used more in defect wf by @jmmshn in materialsproject#585 - Add MACE RelaxMaker and StaticMaker by @CompRhys in materialsproject#611
- Update lobster task schema by @naik-aakash in materialsproject#529
- Allow optimizer to be configured for MACE/GAP by @CompRhys in materialsproject#615
- MACE Static/RelaxMakers default to loading
mace_mp
instead of test model by @janosh in materialsproject#614 - Add optional 3rd static for PBE+U to
MatPesStaticFlowMaker
by @janosh in materialsproject#606 - Use PyPI version of MACE by @utf in materialsproject#668
- Multi step MD flow by @gpetretto in materialsproject#489
- Add @CompRhys to
contributors.md
by @CompRhys in materialsproject#612
- Update GitHub Action versions by @janosh in materialsproject#640
- Drop
flake8
by @janosh in materialsproject#658 - Enable all
ruff
rules by default by @janosh in materialsproject#663
- @CompRhys made their first contribution in materialsproject#612
- @danielzuegner made their first contribution in materialsproject#651
Full Changelog: https://github.com/materialsproject/atomate2/compare/v0.0.12...v0.0.13
- Breaking: default
Atomate2Settings.VASP_INHERIT_INCAR
toFalse
by @janosh in materialsproject#594
- Enforce magmom precedence in INCAR creation by @mattmcdermott in materialsproject#506
- Warn on empty config by @janosh in materialsproject#522
- CP2K use
calcs_reversed[0]
instead ofcalcs_reversed[-1]
to not reverse again by @janosh in materialsproject#534 - Fix wrong INCAR values in MP workflows by @janosh in materialsproject#550
- Fix failing tests from Pydantic v2 migration by @hrushikesh-s in materialsproject#558
- fixing pydantic v2 test errors by @hrushikesh-s in materialsproject#565
parse_additional_json()
ignoreFW.json.gz
in output directories by @janosh in materialsproject#574- Fix
bandgap_tol
and deletebandgap_override
onMPMetaGGARelaxSetGenerator
by @janosh in materialsproject#553 - Fix
VaspInputGenerator
's_set_kspacing
not respectingauto_ismear = False
norauto_kspacing = False
by @janosh in materialsproject#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 materialsproject#561 - Fix Lobster workflow by @JaGeo in materialsproject#583
- Change
MatPesGGAPlusMetaGGAStaticMaker.output
to dict containing both statics by @janosh in materialsproject#586 - Test MP + MatPES set generators by @janosh in materialsproject#596
- Add StructureMetadata as baseclass for output documents by @gpetretto in materialsproject#514
- Materials Project GGA and meta-GGA workflows by @janosh in materialsproject#504
- MP-compatible r2SCAN workflow (and a few general INCAR improvements) by @Andrew-S-Rosen in materialsproject#362
- Update to Pydantic v2 by @hrushikesh-s in materialsproject#567
- Add MatPES GGA and r2SCAN static makers by @janosh in materialsproject#532
- Move elastic workflow to common and build force-field elastic workflow by @JaGeo in materialsproject#581
- Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in materialsproject#516
- Add Aaron Kaplan and Matthew McDermott to
contributors.md
by @janosh in materialsproject#560 - Document architectural difference between atomate 1 and 2 by @janosh in materialsproject#381
- Add Thomas Purcell to
contributors.md
by @tpurcell90 in materialsproject#568 - Add Alex Bonkowski to contributors list by @JaGeo in materialsproject#573
- Add @matthewkuner to contributors by @matthewkuner in materialsproject#575
- Update contributors.md by @utf in materialsproject#579
- Remove
__all__
from all modules by @janosh in materialsproject#540 - removed py38 support, and add py 3.11 support by @naik-aakash in materialsproject#537
- Check full INCAR by default in
mock_vasp
fixture by @janosh in materialsproject#551 - skip validate charge test by @jmmshn in materialsproject#563
- Add some type annotations by @ab5424 in materialsproject#578
- Future type annotations by @janosh in materialsproject#580
- Use
numpy.testing.assert_allclose
over assertnp.(all|is)close
by @janosh in materialsproject#582
- @mattmcdermott made their first contribution in materialsproject#506
- @tpurcell90 made their first contribution in materialsproject#568
- @esoteric-ephemera made their first contribution in materialsproject#561
- @ab5424 made their first contribution in materialsproject#578
Full Changelog: https://github.com/materialsproject/atomate2/compare/v0.0.11...v0.0.12
Merge 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
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).
- CP2K Support by @nwinner in materialsproject#157
- Add forcefield schemas/makers to atomate2 by @matthewkuner in materialsproject#322
- Add
m3gnet
support to Atomate2 by @matthewkuner in materialsproject#380 - Phonons for forcefields by @JaGeo in materialsproject#398
- Fix Lobster Schema by @JaGeo in materialsproject#266
- fix lso dos of lobster being not saved in schema by @naik-aakash in materialsproject#279
- fix
_get_strong_bonds
function by @naik-aakash in materialsproject#289 - [Bug Fix] For stringing defect calculations together by @jmmshn in materialsproject#292
- BUGFIX
auto_lreal
by @jmmshn in materialsproject#297 - Fix
Yb
PSP: changeYb_2
toYb_3
by @janosh in materialsproject#319 - Fix typo by @janosh in materialsproject#321
- Fix overriding
magmoms
inupdate_user_incar_settings(
by @janosh in materialsproject#375 - Fix encoding of input
Molecule
coordinates in cclibTaskDocument
by @Andrew-S-Rosen in materialsproject#411 - [FIX] fix elastic tensor flow by @mjwen in materialsproject#415
- [BUG FIX] Edge case for Magmoms by @jmmshn in materialsproject#460
- [FIX] Fix major bug that caused
user_incar_settings
to be overwritten in some cases by @matthewkuner in materialsproject#412 - Test for
zip_outputs
by @gpetretto in materialsproject#503
- Extension of Lobster schema and additional tests by @JaGeo in materialsproject#272
- Use emmet VASP task document by @utf in materialsproject#269
- VASP inputset updates by @utf in materialsproject#270
- Linting by @utf in materialsproject#274
- Improve Lobster workflow preconverge step, kpoints, docs by @JaGeo in materialsproject#277
- add
has_doscar_lso
field to Lobsterout schema model and update lobsterpy version by @naik-aakash in materialsproject#286 - added simple chg check by @jmmshn in materialsproject#320
- Switch to emmet's
MoleculeMetadata
by @Andrew-S-Rosen in materialsproject#301 - Update update-precommit.yml by @utf in materialsproject#330
- Update dependencies by @utf in materialsproject#329
- Add missing molecule field to cclib TaskDocument by @Andrew-S-Rosen in materialsproject#353
- allow elastically unstable structures by @matthewkuner in materialsproject#355
- update lobstertask schema: add bandoverlaps,grosspop and sitepotentials fields by @naik-aakash in materialsproject#404
- Update CondensedBondingAnalysis schema by @naik-aakash in materialsproject#469
- Phonon tweaks by @utf in materialsproject#276
- Update to Defects WF by @jmmshn in materialsproject#430
- Small change to
gunzip
to allow better restarting by @jmmshn in materialsproject#476 - Remove VASP calc types schema by @mjwen in materialsproject#407
- Optionally zip files at the end of jobs by @gpetretto in materialsproject#414
- Add more documentation for Lobster by @JaGeo in materialsproject#267
- Use furo for docs theme by @utf in materialsproject#331
- Update Lobster documentation by @JaGeo in materialsproject#376
- Fix docs typos by @janosh in materialsproject#373
- Update FireWorks section of docs by @Andrew-S-Rosen in materialsproject#378
- Add a copy button to code blocks by @Andrew-S-Rosen in materialsproject#382
- clean up doc, remove left-overs from amset example by @JaGeo in materialsproject#394
- More details for lobster documentation by @JaGeo in materialsproject#431
- Deploy docs on every commit to
main
by @janosh in materialsproject#422 - Add clearer documentation on lobster worker by @JaGeo in materialsproject#440
- Docs: add basic workflow tutorial by @rkingsbury in materialsproject#408
- Use GitHub's
deploy-pages
action to deploy docs by @janosh in materialsproject#475
- More
ruff
by @janosh in materialsproject#344 - Move all type-hint only imports behind
if TYPE_CHECKING
by @janosh in materialsproject#354 ruff
selectperflint
flake8-slots
by @janosh in materialsproject#395- Bump
ruff
and fixPERF401
: Use a list comprehension to create transformed list by @janosh in materialsproject#421 - Simplify:
dict.get(key, None)
->dict.get(key)
by @janosh in materialsproject#429 dict.setdefault
instead ofif key not in dict: dict[key] = ...
by @janosh in materialsproject#452
- @naik-aakash made their first contribution in materialsproject#279
- @matthewkuner made their first contribution in materialsproject#322
- @gpetretto made their first contribution in materialsproject#414
Full Changelog: https://github.com/materialsproject/atomate2/compare/v0.0.10...v0.0.11)
Lobster workflow with VASP implementation (@JaGeo, @naik-aakash #200)
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 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 (@Andrew-S-Rosen, #138)
- Fix
mock_run_vasp
testing to accept args (@mjwen, #151) - Regenerate calc_types enum (@mjwen, #153)
New features:
- Include band-related features (e.g. band center, bandwidth, skewness, kurtosis) in VASP schema (@Andrew-S-Rosen, #92)
- Add
use_auto_ispin
andupdate_user_potcar_functional
powerups
Enhancements:
- Add
is_hubbard
andhubbards
to VASP task doc. - Migrate build system to pyproject.toml.
- Migrate docs to jupyter-book.
- Docs improvements (@janosh, @mjwen)
Bug fixes:
- Fix HSE tags.
- Fix running bader.
- Make potcar_spec argument usable (@jmmshn, #83)
- Replace monty which with shutil which (@Andrew-S-Rosen, #92)
- Fix
calculate_deformation_potentials()
(@janosh, #94) - Fix gzipping of files with numerical suffixes (@jmmshn, #116)
New features:
- cclib task document supporting virtually all popular molecular DFT codes out-of-the-box (@Andrew-S-Rosen, #64)
Enhancements:
- Add mag_density to VASP output doc (@Andrew-S-Rosen, #65)
- Double relax maker now supports two different Makers (@Andrew-S-Rosen, #32)
Bug fixes:
- Store band structure efermi in CalculationOutput (@Andrew-S-Rosen, #66)
- Support for VASP6 and latest pymatgen (@Andrew-S-Rosen, #75)
- Fixed atomate2 version string.
- Disabled orbital projections in the electron-phonon workflow.
This version removed Python 3.7 support following numpy and pymatgen.
New features:
- Base schema for molecule task documents (@Andrew-S-Rosen, #54)
Bug fixes:
- Fix VASP relaxation using custodian "FULL_OPT" (@Andrew-S-Rosen, #42)
- Fix supercell generation and input sets in electron-phonon workflow.
- Fix
HSEBSSetGenerator
INCAR settings. - Fix issue with magnetism in SOC structures.
- Fix bug with Fermi level and IBRION=1
- Better handling of URI generation.
- Tweak k-spacing formula to stop large band gaps giving negative values
Lots of improvements and bug fixes this release.
New features:
- AMSET workflow.
- Electron phonon band gap renormalisation workflow.
- Specific uniform and line mode band structure makers.
- Optics maker.
- Transmuter maker.
Enhancements:
- Support for automatic handling of ISPIN.
- Add MP base sets (@Andrew-S-Rosen, #27)
- Docs updates (@Andrew-S-Rosen, #13 #17)
- Options to strip band structure and DOS projects to reduce object sizes.
- Input sets now use generators to avoid serialization issues.
- Use smart efermi finding to remove errors with tetrahedron integration in VASP 6.
- Powerups can now work on
Maker
objects directly.
Bug fixes:
- Use PBEsol by default.
- Increase number of significant figures when writing POSCAR files.
- Remove unused INCAR settings (@Andrew-S-Rosen)
- Add missing LASPH flags on vdW functionals (@Andrew-S-Rosen, #31)
- Use
NSW=0
in static calculations (@Andrew-S-Rosen, #10) LREAL = False
in static jobs by default (@Andrew-S-Rosen, #23)- Add missing functionals in output schema (@Andrew-S-Rosen, #12)
- Many output schema fixes.
- Better support for FireWorks.
- Support writing additional files in VASP jobs.
Many updates to use the latest jobflow store features.
Automated releases.
Initial release.