Overview

This project provides a complete “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 automatically parse trajectory data into publication-ready visualizations using Python.

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 accurate metallic bonding
  • 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 high-performance 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
Output5 fs resolutionHigh-fidelity trajectory capture

Usage/Gameplay

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: