Releases: Quantum-Accelerators/quacc
Releases · Quantum-Accelerators/quacc
v0.7.0: The multi 🧵 release
Summary
After countless PRs to upstream codes and some messing around with the innards of quacc, you can now run multiple @job
s in a single Python process. This was historically not possible because quacc had to make os.chdir
calls to the calculation working directory, which breaks thread safety. These calls to os.chdir
have now been successfully removed with proper directory handling in ASE and Custodian, and the removal of all relative paths in quacc.
Of course, there are several other additions and bugfixes, as outlined below.
Changelog
Added
- Added a
non_scf_job
for VASP
Changed
- There are no more
os.chdir
calls to ensure thread safety - Use
pymatgen.io.ase.MSONAtoms
to make MSONableAtoms
- Changed default NEDOS value from 5001 to 3001 for VASP static jobs (10x the default)
Fixed
- Fixed multithreaded
@task
distribution with VASP and Q-Chem - Fixed a bug where, with Prefect, the
State
would raise an indexing error when passing around deferreddict
entries - Fixed a bug when
job_parameters
andjob_decorators
are both passed tocustomize_funcs()
- Raise a
ValueError
when the user providesSCRATCH_DIR
orRESULTS_DIR
as a relative path
PRs
- Fix psi4 test suite by @Andrew-S-Rosen in #1856
- More docs cleanup by @Andrew-S-Rosen in #1857
- Clarify recipe docs by @Andrew-S-Rosen in #1859
- Update pyproject.toml by @Andrew-S-Rosen in #1860
- Fix
None
job_params ingrid_phonon_flow
by @Andrew-S-Rosen in #1862 - Add more customize_funcs tests by @Andrew-S-Rosen in #1863
- Raise a ValueError if RESULTS_DIR or SCRATCH_DIR is relative by @Andrew-S-Rosen in #1861
- Bump covalent-slurm-plugin from 0.16.0rc0 to 0.18.0 by @dependabot in #1869
- Bump parsl[monitoring] from 2024.2.26 to 2024.3.4 by @dependabot in #1868
- Bump prefect from 2.16.1 to 2.16.3 by @dependabot in #1870
- Patch
__getitem__
method on PrefectState
by @Andrew-S-Rosen in #1871 - Change NEDOS from 5001 to 3001 in VASP
static_job
by @Andrew-S-Rosen in #1867 - Streamline
MSONAtoms
by @Andrew-S-Rosen in #1873 non_scf_job
for vasp calculations by @yw-fang in #1840- Update NEDOS in VASP static job by @Andrew-S-Rosen in #1874
- Don't call a subprocess with Q-Chem Custodian by @Andrew-S-Rosen in #1851
- Don't call a subprocess with VASP custodian by @Andrew-S-Rosen in #1850
- Set
CHDIR
toFalse
by @Andrew-S-Rosen in #1875
New Contributors
Full Changelog: v0.6.10...v0.7.0
v0.6.10
[0.6.10]
Fixed
- Fixed pickle-ability of the schemas
- Fixed multithreaded
@task
distribution with GULP, Espresso, and common phonon flow recipes - Fixed concurrency issues with VASP/Q-Chem due to refactoring
Removed
- Removed the
quacc.schemas.atoms._quacc_sanitize
function
What's Changed
- Make ESPRESSO compatible with chdir: False by @tomdemeyere in #1822
- ESPRESSO: fix failing dask tests when CHDIR: False by @tomdemeyere in #1825
- Bump sella by @Andrew-S-Rosen in #1827
- Fix pickle serializability by @Andrew-S-Rosen in #1828
- Get rid of
_quacc_sanitize
function by @Andrew-S-Rosen in #1829 - Refactor NewtonNet vibthermo by @Andrew-S-Rosen in #1830
- Refactor schemas by @Andrew-S-Rosen in #1831
- Refactor phonopy schema by @Andrew-S-Rosen in #1832
- Bump emmet-core from 0.78.6 to 0.78.7 by @dependabot in #1836
- Update Covalent docs by @Andrew-S-Rosen in #1839
- Fix
self
assignment for command in VASP calculator by @Andrew-S-Rosen in #1842 - Add script support for custodian by @Andrew-S-Rosen in #1846
- Remove unnecessary test by @Andrew-S-Rosen in #1847
- Revert custodian subprocess in Q-Chem by @Andrew-S-Rosen in #1844
- Fix Q-Chem mocking for multithreading by @Andrew-S-Rosen in #1848
- Fix multithreading support in qchem by @Andrew-S-Rosen in #1849
- Revert custodian subprocess in VASP by @Andrew-S-Rosen in #1843
- Streamline the documentation by @Andrew-S-Rosen in #1841
- Add Dask details to executor documentation by @Andrew-S-Rosen in #1853
- Add Prefect documentation by @Andrew-S-Rosen in #1854
Full Changelog: v0.6.9...v0.6.10
v0.6.9
[0.6.9]
Added
- Added MP compatability corrections in VASP MP recipes
- Added various phonon recipes for Espresso
- Added various DOS recipes for Espresso
Fixed
- Fixed a rare edge case where final magmoms would not be moved to initial magmoms of next run in MP VASP recipes
What's Changed
- Better thread safety in tests by @Andrew-S-Rosen in #1805
- Fix thread safety of q-chem tests by @Andrew-S-Rosen in #1806
- Fix thread safety in q-chem test by @Andrew-S-Rosen in #1808
- Bump emmet-core from 0.78.0 to 0.78.6 by @dependabot in #1809
- Bump prefect from 2.16.0 to 2.16.1 by @dependabot in #1810
- Espresso Bands job and flow by @Nekkrad in #1701
- Bump pymatgen from 2024.2.23 to 2024.3.1 by @dependabot in #1812
- Revert "Bump pymatgen from 2024.2.23 to 2024.3.1" by @Andrew-S-Rosen in #1813
- Store eigenvectors in phonopy run by @Andrew-S-Rosen in #1815
- Stricter magmom handler and tests by @Andrew-S-Rosen in #1816
- Add more
monty.dev.requires
decorators by @Andrew-S-Rosen in #1817 - Espresso: faster tests by @tomdemeyere in #1819
- Bump pymatgen and shakenbreak by @Andrew-S-Rosen in #1814
- Espresso: q2r and matdyn jobs by @tomdemeyere in #1789
- Apply MP corrections in MP recipes by @Andrew-S-Rosen in #1820
Full Changelog: v0.6.8...v0.6.9
v.0.6.8
[0.6.8]
Added
- Added an option to prevent
os.chdir
calls for multithread safety - Added a common elastic calculation
Changed
- Switched to
ruff
for formatting, replacing the need forblack
andisort
- Changed VASP double relaxes to be flows and not jobs
- Changed the behavior of
quacc.utils.files.copy_decompress_files
Fixed
- Fixed
copy_files
handling with workflow engines - Fixed MP VASP double relaxes, where the same relaxation was done twice by mistake
- Fixed use of
**calc_kwargs
in MP flow recipes
What's Changed
- style: format code with Black, isort and Prettier by @deepsource-autofix in #1745
- Add more MP VASP tests by @Andrew-S-Rosen in #1746
- Fix MP double-relax by @Andrew-S-Rosen in #1748
- Refactor VASP mocked tests by @Andrew-S-Rosen in #1750
- Bump pymatgen from 2024.2.20 to 2024.2.23 by @dependabot in #1751
- Bump pymatgen-analysis-defects from 2024.2.9 to 2024.2.24 by @dependabot in #1754
- Bump maggma from 0.63.2 to 0.63.3 by @dependabot in #1753
- Bump dask[distributed] from 2024.2.0 to 2024.2.1 by @dependabot in #1755
- Bump pydantic from 2.6.1 to 2.6.2 by @dependabot in #1756
- Bump prefect from 2.15.0 to 2.16.0 by @dependabot in #1758
- Bump parsl[monitoring] from 2024.2.12 to 2024.2.19 by @dependabot in #1757
- Bump dask-jobqueue from 0.8.2 to 0.8.5 by @dependabot in #1752
- Bump monty from 2024.2.2 to 2024.2.26 by @dependabot in #1764
- Set an upper bound on
jax
version with sella by @Andrew-S-Rosen in #1766 - Fix jax version by @Andrew-S-Rosen in #1767
- style: format code with Black, isort and Prettier by @deepsource-autofix in #1768
- style: format code with Black, isort and Prettier by @deepsource-autofix in #1769
- Fix docstring by @Andrew-S-Rosen in #1772
- Common flow for elastic constants calculations by @Nekkrad in #1762
- style: format code with Black, isort and Prettier by @deepsource-autofix in #1775
- Allow for thread-safe execution by @Andrew-S-Rosen in #1780
- Use
.to_ase_atoms()
by @Andrew-S-Rosen in #1782 - style: format code with Black, isort and Prettier by @deepsource-autofix in #1788
- Refactor and streamline
copy_files
handling by @Andrew-S-Rosen in #1759 - Modify VASP double relaxes to be a flow by @Andrew-S-Rosen in #1786
- Create .pre-commit-config.yaml by @Andrew-S-Rosen in #1793
- Fix double_relax_flow by @Andrew-S-Rosen in #1794
- Bump emmet by @Andrew-S-Rosen in #1795
- Bump parsl[monitoring] from 2024.2.19 to 2024.2.26 by @dependabot in #1797
- Bump covalent-cloud from 0.40.1 to 0.45.1 by @dependabot in #1799
- Bump maggma from 0.63.3 to 0.63.4 by @dependabot in #1800
- Bump pydantic from 2.6.2 to 2.6.3 by @dependabot in #1798
- Bump emmet-core from 0.77.1 to 0.78.0 by @dependabot in #1802
- Clean up conftest.py imports by @Andrew-S-Rosen in #1803
Full Changelog: v0.6.7...v0.6.8
v0.6.7
Summary
Added
- Added a
store_intermediate_files
keyword option toquacc.runners.ase.run_opt()
to allow for storing of the logfiles in intermediate geometry optimization steps. - Added support for Pymatgen-based input sets in VASP jobs
- Added an MP meta-GGA VASP static job
- Added MP GGA relax job, MP GGA static job, and MP GGA relax flow
- Added a validity checker on CLI parameters
Changed
- Changed the default ASE optimizer from
FIRE
toBFGS
for most recipes - Changed the VASP
DoubleRelaxSchema
to be consistent between flows - Refactored VASP and Q-Chem execution commands in custom calculators
Fixed
- Fixed
dir_name
in VASP output schema - Fixed auto-detection of the Prefect workflow engine in settings
- Fixed compatability of MP meta-GGA workflow with that in atomate2
What's Changed
- Add test for
copy_decompress_files_from_dir
by @Andrew-S-Rosen in #1699 - bump
matgl
by @Andrew-S-Rosen in #1703 - Update hpc_tests.sh by @Andrew-S-Rosen in #1705
- Check for
MutableMapping
, notdict
in utils by @Andrew-S-Rosen in #1706 - Stricter matches on raised errors in test suite by @Andrew-S-Rosen in #1707
- Add an option to store intermediate log files during ASE opt by @Andrew-S-Rosen in #1711
- Use a (mostly) consistent default ASE optimizer by @Andrew-S-Rosen in #1712
- Streamline opt params by @Andrew-S-Rosen in #1713
- Support Pymatgen-style VASP input sets by @Andrew-S-Rosen in #1649
- Add a validity checker on CLI parameters by @Andrew-S-Rosen in #1717
- Add support for MP GGA Workflows by @Andrew-S-Rosen in #1719
- Bump parsl[monitoring] from 2024.2.5 to 2024.2.12 by @dependabot in #1720
- Bump custodian from 2023.10.9 to 2024.2.15 by @dependabot in #1721
- Bump maggma from 0.62.1 to 0.63.2 by @dependabot in #1722
- Bump phonopy from 2.21.0 to 2.21.1 by @dependabot in #1723
- Bump pydantic-settings from 2.1.0 to 2.2.0 by @dependabot in #1726
- Bump shakenbreak from 3.2.3 to 3.3.0 by @dependabot in #1724
- Bump prefect from 2.14.21 to 2.15.0 by @dependabot in #1725
- Add more pydantic-settings tests by @Andrew-S-Rosen in #1727
- Bump pydantic-settings from 2.2.0 to 2.2.1 by @dependabot in #1731
- Bump phonopy from 2.21.1 to 2.21.2 by @dependabot in #1730
- Fix and add tests for
dir_name
by @Andrew-S-Rosen in #1736 - style: format code with Black, isort and Prettier by @deepsource-autofix in #1738
- style: format code with Black, isort and Prettier by @deepsource-autofix in #1739
- Bump pymatgen by @Andrew-S-Rosen in #1741
- Refactor subprocess calls in VASP by @Andrew-S-Rosen in #1737
- Refactor subprocess calls for Q-Chem by @Andrew-S-Rosen in #1740
Full Changelog: v0.6.6...v0.6.7
v0.6.6
[0.6.6]
Fixed
- Using environment variables to set a setting to
None
now works as expected - Overall, more intuitive and robust handling of settings across the various input methods
Full Changelog: v0.6.5...v0.6.6
v0.6.5
[0.6.5]
Added
- PDOS jobs and flows for Espresso
Changed
- Modified the Espresso results schema to be DB-compatible
- The
PRIMARY_STORE
setting has changed toSTORE
and is now formatted more intuitively - Uses 2024 stable release of
black
Fixed
- Fixed usage of
MontyStore
as the data store option
Removed
- Removed the deprecated "q-chem legacy" recipes
v0.6.4
Added
- Added a
supercell_matrix
keyword argument to the phonon recipes. - More data is now generated, parsed, and stored in phonon workflows, including total DOS and the automatically generated band structure
Changed
- The
seekpath
dependency is now required for phonon workflows, as reflected in thequacc[phonons]
optional dependencies - Changed the
min_length: float | None
keyword argument in phonon flows tomin_lengths: float | tuple[float, float, float] | None
for greater flexibility. The default value is now set to 20.0 instead of 15.0 as well.
Fixed
- Fixed occasional edge cases where the charge/spin multiplicity checker would raise a
ValueError
in generating theRunSchema
- Fixed phonon flow with MACE-MP-0 when
dispersion=True
v0.6.3
[0.6.3]
Added
- Added phonon job for MLPs
- Added an ASE relax job recipe for ONETEP
- Added a non-SCF job for Quantum Espresso
- Added a DOS job for Quantum Espresso
- Added a DOS flow for Quantum Espresso
Changed
- Redesigned the
common_phonon_flow
to accept new keyword arguments that enable symmetry reduction. A pre-relaxation step is now also carried out by default.
Fixed
- Ensures the "restart" keyword argument is not set when a SciPy optimizer is used
- Fixed the
ONETEP_CMD
setting to bestr
instead ofPath
when used to instantiate the calculator - Quantum Espresso restarts are now disabled between steps in ASE relaxations
- Various bug fixes for the Espresso
grid_phonon_flow
- Fixed redundant
Structure
info in theRunSchema
v0.6.2
Changed
- The
CREATE_UNIQUE_DIR
setting is now set toTrue
by default. - The temporary directory name and its symlink have been slightly updated to have "tmp-" and "symlink-" at the front of the name instead of the end for easier file navigation.
Fixed
- Fixed an occasional race condition that occurs when running concurrent calculations in multi-threaded mode
- The temporary directory made when a
@job
runs now has a name consistent with the folder where the results will ultimately be stored.