Generating NEB Simulations

This section will guide you setting up, running, and viewing the results of an NEB simulation. For this, the basic steps are:

  1. Import Structure
  2. Prepare Structure
  3. Generate Migration Paths
  4. Generate NEB Simulations
  5. Run the NEB Simulations
  6. Viewing Computed Barriers

Danger

Depending on what you set the "division count" to (see here), this may schedule a lot of jobs (one per division)! Make sure you are allowed to schedule that many jobs!

Note

This is designed for running on clusters that use the slurm job scheduler, and have LAMMPS installed.

Note

By this point, you should already have an annealed structure. More information on annealing structure can be found here.


1) Import Structure

Load your structure into the program:

Load structure from menu bar Load structure from panel

You should now see the structure in the viewport:

Example of structure loaded in the viewport


2) Prepare Structure

It is required to define a starting vacancy. To do so, use the "Mark as Starting Vacancy" tool found in the "Modify" section:

Example of an atom marked as a starting vacancy

Additionally, you may wish to mark other atoms as vacancies, or dope atoms:

Example with two doped atoms and one vacancy

As always, more information on these tools can be found in their respective sections.


3) Generate Migration Paths

Go to the "Migration Paths" panel on the right side:

Migration paths panel

Here, you can either load the migration paths from a file, or you can generate new ones using a proximity-based system. To generate new ones, click on "From Neighbors..." to launch the "Paths From Neighbors" dialog:

Dialog for generating paths from neighbors

Enter the parameters that best fit your case. Additionally, several filters are available to determine which paths should be generated. A description of the fields can be found here.

Note that for large structures, it may take a few moments to generate the paths, especially if "Remove Obstructed Paths" is enabled. Once generated, they will, be present as white arrows in the viewport:

White arrows representing migration paths connect atoms in the viewport

4) Generate NEB Simulations

Go to Simulation > Generate Simulation to launch the simulation generator dialog:

Menu bar button for launching the simulation builder dialog

Switch to the NEB simulation:

The NEB simulation builder tab

Enter parameters for your simulation. An explanation of all the fields can be found here. Once ready, click "Ok" to generate.


5) Run the NEB Simulations

Upload the resulting files to your cluster using the method of your choice (scp, FileZilla, etc.)

To run the simulation, navigate to the directory containing your simulation files and run the command:

sbatch slurm-mpi-main.sh

This will run the master job scheduling script. It will first run a pre-minimizer job if it detects one hasn't been run already. If it detects the pre-minimizer has been run (meaning you've run this script before), this step will be skipped. Generally, you will not need to worry about this preparation step.

The master job script will then schedule each division as a separate job. These jobs will first wait for the pre-minimizer to finish before running themselves.

Depending on how many paths you're simulating, it may take some time for them to complete. Once finished, a final compilation script will run automatically, compiling the energy barriers into a single table found in /Compiled Energy Barriers/[NAME] Barriers.csv.

Finally, any paths that failed to run—whether due to convergence issues or the cluster having a bad day—will be logged to /Missing Barriers/Missing.csv. This can be loaded back into the viewer as ordinary migration paths.


6) Viewing Computed Barriers

Once all jobs have finished, download the completed barriers file from /Compiled Energy Barriers/[NAME] Barriers.csv. Additionally, any barriers that failed to compute—whether from failing to converge or from job time limits—will be saved to /Missing Barriers/Missing.csv. You may want to check/download this file in case any such issues occurred.

Then, load your structure back in. For convenience, a template file (named template.gz) was automatically added to the simulation directory upon initial generation. That way, you can restore the complete initial setup for reference.

Screenshot of template.gz file in a main simulation directory

Next, load the energy barriers into the viewer using the "Migration Paths" panel.

Button in migration paths panel to load barriers from a file

Now that your barriers are loaded in, it's possible that some of them didn't converge properly. This could skew the energy scale into entirely unreasonable territory:

Energy scale skewed by poorly converging barriers. The upper bound reads about 2483.94 eV

Fortunately, you can use the newly visible energy scale bar to adjust the limits of the range:

Energy scale after being manually edited. The upper bound reads 10 eV

Additionally, you can toggle "Clip Energy Barriers" to hide any barrier outside the energy range. This is found under Structure > Clip Energy Barriers:

Menu bar button for toggling energy barrier clipping