Pt diffusion on Pt surfaces using NEB calculations

Introduction

In this tutorial you will learn how to perform Nudged Elastic Band (NEB) calculations to investigate diffusion and reaction barriers. As an example, you will calculate the diffusion barrier for two different diffusion mechanisms of a single Pt adatom on a Pt(100) surface [1] [2].

Specifically, in this tutorial you will:

  • create and optimize the Pt bulk configuration using ATK-ForceField;
  • create the Pt(100) surface with a Pt ad-atom;
  • construct the NEB path starting from the inital and final configurations of the exchange diffusion and of the direct jump processes using an advanced method implemented in VNL for the creation of high-quality initial reaction paths;
  • set up and run the NEB calculation using ATK-ForceField;
  • analyze the results and compare with the literature.

In order to have more details about the parameters used to construct and optimize the NEB object, you can check the ATK manual and more specifically the section regarding the NudgedElasticBand class and OptimizeNudgedElasticBand function.

Note

The NEB method employed in this tutorial requires the identification a priori of the initial and final configurations and of an initial guess for the barrier path, which is often a non-trivial task. However, other powerful methods, such as the new Adaptive Kinetic Monte Carlo (AKMC) tool implemented in ATK, allow to obtain exactly the same information without the definition neither of a final configuration, nor of a path guess, as shown in this tutorial.

Creating the Pt ad-atom on Pt(100) structure

In this chapter you will set-up the strucure of a Pt ad-atom on Pt(111), that will be used as the initial configuration in the NEB calculations.

  1. Open the VNL and create a new project by clicking on Create New. Give the project a Title (here: “Pt_Pt100_NEB”), select the folder where the information will be stored, then click OK and then Open to start the project.

  2. In the VNL main window, click on the builder_icon to open the Builder.

    ../../_images/11.png
  3. Import the Pt fcc bulk configuration: click on Add ‣ From Database and search for “Platinum”. Then, click on the add_to_icon icon to add the structure to the Stash.

  4. Click on the sendto_icon icon at the bottom right of the VNL main window to send the Pt primitive cell from the Stash to the Script Generator.

    ../../_images/21.png
  5. In the Script Generator, change the name of the Default output file in the Global IO panel to “Pt_bulk.nc”.

  6. Add the following blocks to the Script panel by double clicking on the correspoding icons in the Blocks panel in the left-hand side of the screen:

    • New Calculator
    • Optimization ‣ Optimize Geometry
    ../../_images/31.png
  7. Double click on the New Calculator block in the Script panel and modify the following parameters:

    • In the Calculators panel, select ATK-ForceField
    • In the Potential Settings panel, select the “EAM_Pt_2004” parameter set [3].
    ../../_images/41.png

Note

For ATK-versions older than 2017, the ATK-ForceField calculator can be found under the name ATK-Classical.

  1. Double click on the Optimize Geometry block and modify the following parameters:

    • Force tolerance: 0.01 eV/\(Å\)
    • Stress tolerance: 0.001 eV/\(Å\)
    • Uncheck the constrain cell box in order to allow the cell to relax.

    The Optimize Geometry panel should look like the picture below.

    ../../_images/51.png
  2. Click on the sendto_icon icon to send the script to the Job Manager. Save the script as “Pt_bulk.py”.

  3. In the Select Machine window, make sure that the Machine drop-down menu is set to Local, then press OK.

    ../../_images/61.png
  4. In the Job Manager, make sure that the script “Pt_bulk.nc” is selected, then click on the Run Queue button (see the figure below) to start the simulation. It should take only few seconds to complete.

    ../../_images/71.png

    When the jobs is finished, close the Job Manager and go back to the VNL main window.

  5. In the VNL main windown, two new objects will appear in the LabFloor panel. They correspond to the inital (“gID000”) and to the optimized (“gID001”) geometries of bulk Pt, respectively.

    ../../_images/81.png
  6. Drag and Drop the “glD001”’ object into the Builder.

  7. In the Builder, select the newly imported “Pt_bulk.nc” object and click on Builder ‣ Surface (Cleave).

  8. In the Define the surface panel, make sure that the Miller indexes are set to \(h=1\), \(k=0\), \(l=0\), and then click Next.

  9. In the Define surface lattice panel, set the lattice vector according to the figure below in order to define a \(5\times5p\) surface.

    ../../_images/91.png

    Once you are done, click Next

  10. Set the parameters in the Finalize output configuration panel according to the figure below to obtain a 5-layers slab with 10 \(Å\) of vacuum.

    ../../_images/10.png

    Once you are done, click Finish to add the structure to the Stash.

  11. In the Stash left-click with the mouse on the “Pt_bulk.nc (100)” object and select Copy. Then, left-click again on the “Pt_bulk.nc (100) (1)” object and select Rename to change its name in “initial.nc”

  12. Click on the camera_icon icon to open the Camera panel (see figure below), and orient the system along the XY direction.

    ../../_images/111.png

    Once you are done, close the Camera panel and use the mouse scroll button to zoom on the figure.

  13. While holding down the CTRL button on your keyboard, use the mouse left button to select a square of four Pt atoms of the Pt(100) topmost layer. Then add an extra atom in between them by clicking on the AlignmentPoint02a_icon icon as shown in the figure below.

    ../../_images/121.png
  14. Select the new Pt atom, and click on Coordinate Tools ‣ Translate in the Panel plugins on the right-hand side of the screen.

    ../../_images/131.png
  15. In the Translate panel, define the translation vector as in the figure below to move the atom at about 1.6 \(Å\) above the surface.

    ../../_images/14.png

    Once you are done, click Apply. The structure you have just obtained for a Pt ad-atom on Pt(100) will be used as the initial configuration for both the NEB calculations performed in this tutorial.

    ../../_images/15.png

Creating the final configuration for the exchange diffusion process

In this chapter, you will set-up the final configuration for the exchange diffusion process of a Pt ad-atom on Pt(100) [1].

In the exchange diffusion process, one surface Pt atoms is replaced with the Pt ad-atom, and the surface atom moves to the next four-fold hollow site along the [010] direction, as shown in the figure below. This process has been shown to be more favourable energetically than the direct jump (see next chapter) of the ad-atom between neighboring Pt(100) lattice hollow sites [1] [2].

../../_images/16.png
  1. In the Stash left-click with the mouse on the “initial.nc” object and select Copy. Then, left-click on the “initial.nc (1)” object and select Rename to change its name in “final_exchange.nc”

  2. Select the “final_exchange.nc” object in the Stash, select the atom shown in the figure below (atom number 88) and click Coordinate Tools ‣ Translate.

    ../../_images/17.png
  3. In the Translate Panel, translate the selected atom using the translation vector as defined in the figure below.

    ../../_images/18.png
  4. Select the Pt ad-atom, and translate the it using the translation vector defined in the figure below.

    ../../_images/19.png
  5. In this way, you have obtained the final configuration for the NEB calculation of the exchange diffusion process.

    ../../_images/20.png

Creating the final configuration for the direct jump process

In this chapter, you will set-up the final configuration for another possible diffusion process for a Pt ad-atom on Pt(100), in which the ad-atom jumps directly between neighboring four-fold hollow sites of the Pt(100) surface.

  1. In the Stash Copy again the “initial.nc” object and Rename the new “initial.nc (1)” object as “final_jump.nc”

  2. Select the “final_jump.nc” object in the Stash, select the Pt ad-atom and click Coordinate Tools ‣ Translate.

  3. In the Translate Panel, translate the Pt ad-atom using the translation vector as defined in the figure below.

    ../../_images/211.png
  4. In this way, you have obtained the final configuration for the NEB calculation of the direct jump diffusion process.

    ../../_images/22.png

Constructing the NEB paths

This chapter illustrate the steps needed to set-up the NEB images along the reaction path of the exchange diffusion process. The same steps can be followed to set-up the NEB path for the direct diffusion path, the only difference being the fact that the “final_jump.nc” object has to be considered as the final configuration at the moment of setting-up the NEB path.

  1. Click on Builder ‣ Nudged Elastic Band and drag and drop the “initial.nc” and “final_exchange.nc” into the left and right panels.

  2. In the Nudged Elastic Band panel, set the parameters as shown in the figure below.

    ../../_images/23.png

    Once you are done, click on Create to create an object in the Stash named “NEB: initial.nc final_exchanged.nc “, containing the initial and final configurations as well as the guessed configurations along the reaction path.

    ../../_images/25.png

    Note

    The image-dependent pair potential (IDPP) [4] implemented in VNL provides high quality guesses for the NEB reaction path compared to the more commonly employed linear interpolation method. For complex reaction paths, the improvement in terms of number of required iterations and speed can be substantial.

    Note

    You can apply several operations directly to the NEB object, in particular, you can:

    • select and apply the operations to specific images and/or specific atoms;
    • delete one or more images, recalculate the entire path or the path between selected images by right clicking on the selected configurations;
    • extract a single image from the NEB configuration directly to the Stash;
    • drag and drop any compatible configuration present in the Stash to some point into the NEB configuration:
    • use the Mirror, Rotate and Translate tools under Coordinate Tools to the selected atoms. The operations will apply to all images OR to the selected images!

Setting up and running the NEB calculations

In this chapter you will learn how to set-up and run the NEB calculation for the exchange diffusion process. As in the previous chapter, similar steps can be used for the direct jump diffusion process.

  1. Click on the sendto_icon icon and send the “NEB: initial.nc final_exchange.nc “ object to the Script Generator.

  2. In the Script Generator, change the name of the Default output file in the Global IO panel to “NEB_exchange.nc”.

  3. Add the following blocks to the by double clicking the on the correspoding icons in the Blocks panel on the left-hand side of the screen:

    • New Calculator
    • Optimization ‣ Optimize Geometry
  4. Double click on the New Calculator block in the Script panel and modify the following parameters:

    • In the Calculators panel, select ATK-ForceField
    • In the Potential Settings panel, select the “EAM_Pt_2004” parameter set.
  5. Double click on the Optimize Geometry block in the Script panel and set the parameters according to the figure below.

    ../../_images/26.png

    Once you are done, click OK

  6. Click on the sendto_icon icon to send the script to the Job Manager. Save the script as “NEB_exchange.py”.

  7. In the Select Machine window, make sure that the Machine drop-down menu is set to Local, then press OK.

  8. In the Job Manager, make sure that the script “NEB_exchange.nc” is selected, then click on the Run Queue button start the simulation. It should take only few seconds to complete. When the jobs is finished, close the Job Manager and go back to the VNL main window.

Analyzing the results

  1. Once you have run the NEB calculations for both the exchange and the direct jump diffusion processes, two new files should appear in the LabFloor panel of the VNL main window. In the present case, they are called “NEB_exchange” and “NEB_jump” according to the corresponding simulated diffusion process.

    ../../_images/27.png
  2. Open the “NEB_exchange” file and select the “gID001” object, which contains the optimized NEB path for the exchange process. Then, click on the Movie Tool on the right-hand side of the screen.

    ../../_images/28.png
  3. Similarly, open the “NEB_jump” file, select the “gID001” object and click again on the Movie Tool on the right-hand side of the screen.

  4. By comparing the two barriers in the Movie Tool panels (see figure below) you can see that the energy barrier calculated for the exchange diffusion process and for the direct diffusion process are 0.589 eV and 0.928 eV, respectively. Thus, in agreement with the experiments [1] and more accurate density functional theory simulations [2], the classical potential simulations performed in this tutorial predict that the direct diffusion process is favoured agains the direct jump process by 0.334 eV.

    ../../_images/29.png

    Fig. 98 Calculated reaction path for the exchange diffusion process.

    ../../_images/30.png

    Fig. 99 Calculated reaction path for the direct jump diffusion process.

Note

As it can be seen in the tutorial at this link, the AKMC method arrives at exactly the same conclusion, without any a-priori knowledge of the potential energy surface of the system.

Conclusions

Troughout this tutorial, you have used ATK-ForceField and the VNL graphical user interface to set-up, calculate and analyze two different diffusion paths for a Pt ad-atom on Pt(100). In agreement with more accurate DFT simulations [2], the classical simulations predict that the exchange diffusion process is favored against the direct jump process. You might want to repeat this tutorial by using the ATK-DFT module, to compare directly with the DFT results reported in the literature [2].

Bibliography

[1](1, 2, 3, 4) G.L. Kellog and P.J. Feibelman “Surface Self-Diffusion on Pt(001) by an Atomic Exchange Mechanism” Phys. Rev. Lett. 64, 3143 (1990) PhysRevLett.64.3143
[2](1, 2, 3, 4, 5) P.J. Feibelman “Surface-diffusion mechanism versus electric field: Pt/Pt(001)” Phys. Rev. B 64, 125403 (2001) PhysRevB.64.125403
[3]X.W. Zhou, et al. “Misfit-energy-increasing dislocations in vapor-deposited CoFe/NiFe multilayers” Phys. Rev. B 69, 144113 (2004) PhysRevB.69.144113
[4]
  1. Smidstrup et al. “Improved initial guess for minimum energy path calculations” J. Chem. Phys. 140, 214106 (2014) link