v0.5.0: The 🎅🏻 Release
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
toquacc.recipes.espresso.phonons.phonon_job
- Changed default
fmax
forquacc.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.