Skip to content

Releases: Quantum-Accelerators/quacc

v0.5.2

06 Jan 08:11
3a6b096
Compare
Choose a tag to compare

[0.5.2]

Changed

  • ORCA and GULP recipes now use a more intuitive and concise list[str] input argument format instead of a dict format when overriding defaults

Fixed

  • Fixed concurrency issues with Dask subflows (credit: @zulissimeta)

v0.5.1

05 Jan 04:44
74730e5
Compare
Choose a tag to compare

[0.5.1]

Added

  • Adds a new ase_relax_job for ORCA
  • Adds a new relax_job and post_processing_job for Quantum Espresso
  • quacc.wflow_tools.customizers.strip_decorator and quacc.wflow_tools.customizers.redecorate are imported in the base __init__.py for easy user access
  • The CLI now has color

Changed

  • The test suite's SCRATCH_DIR and RESULTS_DIR are now fixed to a given location
  • The default Espresso preset has been changed to "sssp_1.3.0_pbe_efficiency"
  • To remove calculator defaults entirely, quacc.Remove is recommended in place of None
  • The quacc.wflow_tools.customizers.strip_decorator function is recommended instead of calling .__wrapped__

Fixed

  • Fixed Dask subflows that were calling .compute()
  • Fixed various bugs in the Espresso calculator and recipes

v0.5.0: The 🎅🏻 Release

29 Dec 21:29
af7f3b5
Compare
Choose a tag to compare

Summary

This release provides a more convenient and flexible mechanism to modify the parameters and/or execution details of individual jobs in a pre-made quacc workflow.

For instance, to run only the "relax_job" step on the local machine:

from ase.build import bulk
from quacc import job
from quacc.recipes.emt.slabs import bulk_to_slabs_flow

# Define the Atoms object
atoms = bulk("Cu")

# Customize the "relax_job" step
job_decorators = {"relax_job": job(executor="local")}

# Run the workflow
result = bulk_to_slabs_flow(atoms, job_decorators=job_decorators)

Similarly, individual job parameters can also be modified no matter how deep within the pre-made workflow they are:

from quacc import job

job_params = {"relax_job": {"asap_cutoff": True}}

result = bulk_to_slabs_flow(atoms, job_params=job_params)

Added

  • Created a quacc.wflow_tools.customizers module to aid in customizing pre-made recipes.

Changed

  • Overhauled how sub-jobs in recipes can be dynamically modified by the user to increase flexibility.
  • Added a default (basic) preset for Espresso recipes.
  • Moved the quacc.recipes.espresso.core.phonon job to quacc.recipes.espresso.phonons.phonon_job
  • Changed default fmax for quacc.recipes.mlp.core.relax_job to 0.05.
  • Renamed the quacc.utils.dicts.merge_several_dicts function to .recursive_dict_merge to better reflect its functionality.
  • Renamed the quacc.utils.dicts.merge_dicts function to ._recursive_dict_pair_merge to indicate that most users will not need it.

Fixed

  • Fixed the passing of **kwargs to @subflow decorators
  • Increased support of ~/ throughout quacc file handling mechanisms
  • Fixed an infinite recursion error when copy_decompress_files_from_dir was run in the current working directory.

v0.4.6: More Flexibility = More Power

18 Dec 06:35
c7d6aa7
Compare
Choose a tag to compare

0.4.6

This update introduces breaking (but beneficial) changes to the way complex workflows are designed (mostly those based on the @subflow pattern). Now, it is possible to modify the executor of any constituent Job in a workflow. Refer to the updated documentation.

Added

  • The WORKFLOW_ENGINE quacc setting now accepts None.
  • A DEBUG quacc setting as been added.

Changed

  • The way to run complex, dynamic flows has been modified to rely on functools.partial() instead of kwargs. See the updated documentation.
  • Refactored test suite

v0.4.5: Out With the Old; In With the New

14 Dec 05:25
c7dd41a
Compare
Choose a tag to compare

[0.4.5]

Added

  • Added ML interatomic potential recipes

Changed

  • ASE optimization log files and pickle files are written to disk by default
  • Deprecated the old Q-Chem recipes and replaced them with the updated versions

Removed

  • Officially drop support of the Prefect workflow engine

v0.4.4: The ESPRESSO release ☕

11 Dec 03:11
2d6a121
Compare
Choose a tag to compare

Summary

This release introduces core recipes for Quantum ESPRESSO, developed by @tomdemeyere!

Added

  • Added core Quantum ESPRESSO recipes and custom calculator. (@tomdemeyere)
  • Added a new function, quacc.utils.files.copy_decompress_files_from_dir

Changed

  • The copy_files kwarg in most recipes can now include a directory
  • Renamed quacc.utils.files.copy_decompress to quacc.utils.files.copy_decompress_files

Fixed

  • Quacc settings that are paths now have ~/ expanded in most cases

What's Changed

  • style: format code with Black, isort and Prettier by @deepsource-autofix in #1331
  • Move custodian tests by @Andrew-S-Rosen in #1332
  • Add espresso recipes and custom calculator by @tomdemeyere in #1238
  • style: format code with Black, isort and Prettier by @deepsource-autofix in #1333

New Contributors

Full Changelog: v0.4.3...v0.4.4

v0.4.3: The Dask release

10 Dec 07:57
Compare
Choose a tag to compare

[0.4.3]

Added

  • Added preliminary support for the Dask workflow engine via Dask Delayed and Dask Distributed.

Changed

  • Renamed CREATE_UNIQUE_WORKDIR to CREATE_UNIQUE_DIR to better reflect its utility.
  • The default for the SCRATCH_DIR setting is now None instead of ~/.quacc_scratch. In other words, the default is to not use a scratch directory. This should help with onboarding, and the ability to set it as None may be broadly of interest. Setting the SCRATCH_DIR to a given Path will still work as expected.
  • Files are no longer recursively copied from SCRATCH_DIR to RESULTS_DIR. Instead, they are recursively moved. This should speed up I/O operations.

Fixed

  • Fixed a missing phonopy_kwargs keyword argument in quacc.recipes.common.phonons

What's Changed

  • Bump prefect from 2.14.6 to 2.14.9 by @dependabot in #1302
  • Bump emmet-core from 0.74.3 to 0.74.5 by @dependabot in #1300
  • Bump phonopy from 2.20.0 to 2.21.0 by @dependabot in #1301
  • Bump parsl[monitoring] from 2023.11.20 to 2023.11.27 by @dependabot in #1304
  • style: format code with Black, isort and Prettier by @deepsource-autofix in #1314
  • style: format code with Black, isort and Prettier by @deepsource-autofix in #1316
  • style: format code with Black, isort and Prettier by @deepsource-autofix in #1315
  • mv * files from SCRATCH_DIR to RESULTS_DIR instead of cp -r, and make SCRATCH_DIR optional by @Andrew-S-Rosen in #1313
  • refactor: remove unnecessary f-string by @deepsource-autofix in #1318
  • style: format code with Black, isort and Prettier by @deepsource-autofix in #1317
  • Clearer description of path handling by @Andrew-S-Rosen in #1319
  • Add support for the Dask workflow engine by @Andrew-S-Rosen in #1323
  • Simplify Dask tutorial by @Andrew-S-Rosen in #1325
  • Update CHANGELOG.md by @Andrew-S-Rosen in #1329
  • Fix sporadic codecov upload issues by @Andrew-S-Rosen in #1328

Full Changelog: 0.4.2...v0.4.3

v0.4.2

04 Dec 05:05
ffa291a
Compare
Choose a tag to compare

[0.4.2]

Added

  • Added a Jenkins-based test suite that runs tests on HPC resources without mocking for Gaussian, GULP, ORCA, and VASP (minimal)
  • Added a TBLite phonon recipe

Changed

  • Changed the auto_kpts kwarg in the Vasp calculator to pmg_kpts
  • Internal refactoring of recipes to have a separate _base.py module when appropriate
  • Removed the unnecessary Atoms arg from the calc_setup function

Fixed

  • Fixed slow initial import (3 s --> 1 s)
  • Fixed a few broken type hints
  • Fixed functional and basis set strings in Gaussian recipes
  • Uses number of physical cores instead of logical cores as default for molecular DFT recipes

New Contributors

Full Changelog: v0.4.1...0.4.2

v0.4.1

15 Nov 23:10
ef9ec50
Compare
Choose a tag to compare

[0.4.1]

Changed

  • Switched to using the PyPi release of NewtonNet (1.1).
  • NewtonNet recipes don't run a Hessian calculation by default unless needed

Fixed

  • Fixed circular import issue when running Q-Chem calculations.

Removed

  • Removed unsupported qchem_internal_relax_job

v0.4.0

09 Nov 15:05
734846c
Compare
Choose a tag to compare

[0.4.0]

Added

  • Added quacc.recipes.common, including quacc.recipes.common.slabs, quacc.recipes.common.defects, and quacc.recipes.common.phonons
  • Added phonopy schema in quacc.schemas.phonopy
  • Added EMT phonon workflow

Changed

  • The method for specifying swaps to the default calculator arguments in recipes has been overhauled. In place of the previous calc_swaps: dict approach, additional parameters can be specified via the **kwargs. In practice, this means in recipes you can do scf = "diis", max_steps=100 instead of calc_swaps={"scf":"diis", "max_steps":100}, for instance.
  • Moved quacc.runners.calc to quacc.runners.ase
  • Moved quacc.runners.prep to quacc.schemas.prep
  • Reduced code duplication across complex flows

What's Changed

New Contributors

Full Changelog: v0.3.13...v0.4.0