diff --git a/.github/workflows/build_docs.yml b/.github/workflows/build_docs.yml index a9d48c9254..3222929bbe 100644 --- a/.github/workflows/build_docs.yml +++ b/.github/workflows/build_docs.yml @@ -6,6 +6,7 @@ on: workflow_dispatch: pull_request_review: types: [submitted] + merge_group: jobs: build: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 45cd6b1cfb..1016d12cfa 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,6 +6,7 @@ on: pull_request: branches: [main] push: + merge_group: jobs: lint: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d751b29d0f..fca9044537 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,6 +7,7 @@ on: branches: [main] push: branches: [main] + merge_group: jobs: test: diff --git a/docs/_toc.yml b/docs/_toc.yml index ef87ca09e0..7fb384a973 100644 --- a/docs/_toc.yml +++ b/docs/_toc.yml @@ -43,7 +43,8 @@ parts: - file: tutorials/intro - file: tutorials/OCP-introduction - file: tutorials/adsorbml_walkthrough - - file: tutorials/cattsunami_walkthrough + - file: tutorials/cattsunami_tutorial + - file: tutorials/fairchem_models_for_nebs - file: tutorials/NRR/NRR_toc sections: - file: tutorials/NRR/NRR_example diff --git a/docs/tutorials/NRR/NRR_example.md b/docs/tutorials/NRR/NRR_example.md index dfbdae3942..1a9197d473 100644 --- a/docs/tutorials/NRR/NRR_example.md +++ b/docs/tutorials/NRR/NRR_example.md @@ -34,6 +34,11 @@ import os from glob import glob import pandas as pd from fairchem.data.oc.utils import DetectTrajAnomaly + +# Set random seed to ensure adsorbate enumeration yields a valid candidate +# If using a larger number of random samples this wouldn't be necessary +import numpy as np +np.random.seed(22) ``` ```{code-cell} ipython3 diff --git a/docs/tutorials/fairchem_models_for_nebs.md b/docs/tutorials/fairchem_models_for_nebs.md index 6e5b454abc..85bfc46e13 100644 --- a/docs/tutorials/fairchem_models_for_nebs.md +++ b/docs/tutorials/fairchem_models_for_nebs.md @@ -14,6 +14,9 @@ kernelspec: # Tutorial for using Fair Chemistry models to relax NEBs ```{code-cell} ipython3 +--- +tags: ["skip-execution"] +--- from ase.optimize import BFGS from ase.io import read @@ -24,7 +27,6 @@ from fairchem.core.models.model_registry import model_name_to_local_file #Optional from x3dase.x3d import X3D import matplotlib.pyplot as plt -from pathlib import Path import os ``` @@ -33,6 +35,9 @@ import os Shown here are the values used consistently throughout the paper. ```{code-cell} ipython3 +--- +tags: ["skip-execution"] +--- fmax = 0.05 # [eV / ang] delta_fmax_climb = 0.4 # this means that when the fmax is below 0.45 eV/Ang climbing image will be turned on k = 1 # you may adjust this value as you see fit @@ -46,17 +51,24 @@ checkpoint_path = model_name_to_local_file('EquiformerV2-31M-S2EF-OC20-All+MD', ## If you have your own set of NEB frames ```{code-cell} ipython3 +--- +tags: ["skip-execution"] +--- """ Load your frames (change to the appropriate loading method) The approach uses ase, so you must provide a list of ase.Atoms objects with the appropriate constraints. """ -path_ = Path(__file__).parents[2] +cwd = os.getcwd() +path_ = os.path.abspath(os.path.join(cwd, os.pardir, os.pardir)) path_ = os.path.join(path_, "src", "fairchem", "applications", "cattsunami", "tutorial", "sample_traj.traj") frame_set = read(path_, ":")[0:10] # Change to the path to your atoms of the frame set ``` ```{code-cell} ipython3 +--- +tags: ["skip-execution"] +--- neb = OCPNEB( frame_set, checkpoint_path=checkpoint_path, @@ -78,7 +90,7 @@ if conv: You may use the `interpolate` function we implemented which is very similar to idpp but not sensative to periodic boundary crossings. Alternatively you can adopt whatever interpolation scheme you prefer. The `interpolate` function lacks some of the extra protections implemented in the `interpolate_and_correct_frames` which is used in the CatTSunami enumeration workflow. Care should be taken to ensure the results are reasonable. -IMPORTANT NOTES: +IMPORTANT NOTES: 1. Make sure the indices in the initial and final frame map to the same atoms 2. Ensure you have the proper constraints on subsurface atoms diff --git a/src/fairchem/applications/cattsunami/tutorial/sample_traj.traj b/src/fairchem/applications/cattsunami/tutorial/sample_traj.traj new file mode 100644 index 0000000000..66031c957e Binary files /dev/null and b/src/fairchem/applications/cattsunami/tutorial/sample_traj.traj differ