Skip to content

v0.5.0: The 🎅🏻 Release

Compare
Choose a tag to compare
@Andrew-S-Rosen Andrew-S-Rosen released this 29 Dec 21:29
· 1282 commits to main since this release
af7f3b5

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.