Skip to content

NabKh/Tutorial-04-VASP-Catalysis

Repository files navigation

Tutorial 04: Practical DFT for Catalysis with VASP

From Surface Models to Reaction Mechanisms

License: CC BY-NC-SA 4.0 Python 3.9+

Author: Dr. Nabil Khossossi Duration: ~13 hours Level: Graduate / Advanced Website: sustai-nabil.com/teaching


Overview

This tutorial provides a comprehensive, hands-on introduction to density functional theory (DFT) calculations for heterogeneous catalysis using VASP. Following pedagogical principles from MIT, Stanford, and leading computational catalysis groups, this course bridges theory and practice through real-world examples.

Key Features

  • Problem-driven learning: Each module starts with a research question
  • Authentic datasets: Real catalyst surfaces (Pt, NiFe alloys, TM oxides)
  • Code-first pedagogy: Every concept paired with working Python/ASE scripts
  • Multi-code support: Primary focus on VASP, with references to GPAW, Quantum ESPRESSO

Prerequisites

Before starting this tutorial, you should complete:

  1. Tutorial 01: Introduction to ASE and DFT
  2. Tutorial 02: Python for Materials Science
  3. Tutorial 03: Crystal Structures & Symmetry

Additionally, you need:

  • Access to VASP (license required) or alternative DFT code
  • Basic quantum mechanics and solid-state physics background
  • Python programming experience

Course Structure

Module Topic Duration Key Concepts
1 VASP Input Files Mastery 1.5h INCAR, POSCAR, KPOINTS, POTCAR
2 Surface Slab Models 2h Miller indices, vacuum, convergence
3 Adsorption & Binding Sites 2h Site enumeration, adsorption energies
4 Spin-Polarized DFT 1h ISPIN, MAGMOM, magnetic ordering
5 DFT+U for Transition Metals 1.5h Hubbard U, strongly correlated systems
6 Transition States & Barriers 2.5h NEB, CI-NEB, Dimer method
7 Computational Hydrogen Electrode 1.5h HER/OER, free energy diagrams
8 Best Practices & Workflows 1h Convergence, HPC, reproducibility

Installation

1. Clone the repository

git clone https://github.com/nkhossossi/Tutorial-04-VASP-Catalysis.git
cd Tutorial-04-VASP-Catalysis

2. Create conda environment

conda env create -f environment.yml
conda activate vasp-catalysis

3. Verify installation

python -c "import ase; import pymatgen; print('Ready!')"

4. Launch Jupyter

jupyter lab

Running Examples

Catalyst Systems Covered

  1. Pt(111) + CO oxidation - Classic benchmark system
  2. NiFe alloy for HER - Earth-abundant electrocatalyst
  3. Transition metal oxides - Battery-relevant, DFT+U required

Example: Calculate CO Adsorption Energy

from ase.build import fcc111, add_adsorbate
from ase.calculators.vasp import Vasp

# Create Pt(111) with CO
slab = fcc111('Pt', size=(3,3,4), vacuum=15)
add_adsorbate(slab, 'CO', height=1.85, position='ontop')

# Setup VASP calculator
calc = Vasp(
    encut=450,
    kpts=(4,4,1),
    xc='PBE',
    ismear=1,
    sigma=0.1,
    ldipol=True,
    idipol=3
)

slab.calc = calc
energy = slab.get_potential_energy()

Alternative DFT Codes

While this tutorial focuses on VASP, we provide guidance for:

Code License Notebooks
GPAW Open Source 01_input_files/alternatives/gpaw_script.py
Quantum ESPRESSO Open Source 01_input_files/alternatives/quantum_espresso.md
AIMD Various Module 6 extensions
Gaussian/Schrödinger Commercial Cluster calculations

Related Resources

Tutorial Series

External References


Support

  • Issues/Questions: Open an issue on GitHub
  • Documentation: sustai-nabil.com/teaching
  • Contact: See website for contact information

License

This work is licensed under CC BY-NC-SA 4.0.

You are free to:

  • Share — copy and redistribute the material
  • Adapt — remix, transform, and build upon the material

Under the following terms:

  • Attribution — Give appropriate credit
  • NonCommercial — Not for commercial purposes
  • ShareAlike — Same license for derivatives

Happy Computing!

Dr. Nabil Khossossi

Releases

No releases published

Packages

 
 
 

Contributors