Overview

This project provides an “input-to-analysis” workflow for simulating adatom diffusion on FCC metal surfaces. It demonstrates how to set up surface diffusion simulations in LAMMPS, manage EAM potentials, and parse trajectory data into energy and trajectory plots using Python. The LAMMPS input scripts are adapted from Eric N. Hahn’s adatom tutorial; the Python analysis layer (plot_energy.py, plot_xy.py) is my own, written while in CSElab (Harvard, 2023).

The workflow covers two material systems (Copper (Cu) and Platinum (Pt)) providing comparative datasets that highlight how atomic mass and bonding strength affect surface dynamics.

Features

Simulation Architecture

The project separates simulation logic from analysis code:

DirectoryDescription
/adatom_cuCopper adatom diffusion on Cu(100)
/adatom_ptPlatinum adatom diffusion on Pt(100)

Each directory contains:

  • LAMMPS input scripts (.in files) defining the physics
  • EAM potential files for metallic bonding (the Cu potential is committed; the Pt potential must be downloaded separately from the NIST Interatomic Potentials Repository, so the Pt system does not run as-checked-out)
  • Python analysis scripts for trajectory and energy parsing

Key Features

  • EAM Potentials: Uses Embedded Atom Method alloy potentials to accurately model metallic bonding and surface energies, providing accuracy beyond simple Lennard-Jones potentials
  • Automated Analysis: Python pipeline (plot_energy.py, plot_xy.py) that parses raw thermodynamic logs and trajectory dumps to generate “health check” dashboards
  • Workflow Orchestration: Demonstrates the “Input → Simulation → Analysis” loop, automating the transition from raw .lammpstrj files to publication-ready plots
  • Kokkos Support: Includes Kokkos execution commands for GPU/multi-threaded runs

Simulation Parameters

ParameterValuePurpose
EnsembleNVT → NVEEquilibration followed by energy conservation checks
PotentialEAM/alloyAccurate metallic bonding for surface dynamics
MinimizationCG (1.0e-4)Remove steric overlaps before dynamics
Timestep5 fs (metal units)EAM-appropriate integration step
Trajectory dumpevery 5 steps (25 fs)Tracks adatom site-to-site hops

Usage

The repository includes LAMMPS input scripts and Python analysis scripts. Run the LAMMPS scripts to generate trajectory data, then use the Python scripts to visualize the results.

Results

This workflow is documented in detail in companion blog posts: