home / skills / fl-sean03 / agentic-science-worker / lammps-simulation
npx playbooks add skill fl-sean03/agentic-science-worker --skill lammps-simulationReview the files below or copy the command above to add this skill to your agents.
---
name: lammps-simulation
description: Run LAMMPS molecular dynamics simulations. Use when asked to run MD simulations, energy minimization, equilibration, production runs, or calculate properties like diffusion, RDF, MSD. Supports both CPU and GPU execution.
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
- Grep
- WebSearch
- WebFetch
---
# LAMMPS Molecular Dynamics Simulation
You are executing LAMMPS molecular dynamics simulations on this workstation.
## CRITICAL: Finding Your Own Parameters
**You must find force field parameters yourself. They are NOT provided.**
### How to Find Force Field Parameters
**Step 1: Identify what you need**
- What material? (argon, water, copper, etc.)
- What property? (diffusion, structure, thermal conductivity)
- What conditions? (temperature, pressure)
**Step 2: Search literature**
```
Good search queries:
- "[material] lennard-jones parameters molecular dynamics"
- "[material] force field molecular dynamics"
- "[material] interatomic potential parameters"
- "[water model] parameters" (for TIP3P, TIP4P, SPC/E, etc.)
- "[metal] EAM potential"
```
**Step 3: Find authoritative sources**
| Material | Seminal Paper | Key Values |
|----------|--------------|------------|
| Liquid Argon | Rahman 1964, Phys. Rev. 136, A405 | ε/kB=119.8 K, σ=3.405 Å |
| TIP4P Water | Jorgensen 1983, J. Chem. Phys. 79, 926 | See paper Table I |
| TIP3P Water | Jorgensen 1983 (same paper) | ε=0.1521 kcal/mol, σ=3.1507 Å |
| SPC/E Water | Berendsen 1987, J. Phys. Chem. 91, 6269 | qO=-0.8476e, ε=0.1553 kcal/mol |
**Step 4: Download supplementary materials if needed**
Use Playwright or WebFetch to get SI with parameter tables.
**Step 5: Convert units**
```
kJ/mol → kcal/mol: divide by 4.184
eV → kcal/mol: multiply by 23.06
K → kcal/mol: multiply by 0.001987 (kB)
```
**Step 6: Document source in input file**
```lammps
# Lennard-Jones parameters for liquid argon
# Source: Rahman, Phys. Rev. 136, A405 (1964)
# ε/kB = 119.8 K = 0.238 kcal/mol, σ = 3.405 Å
pair_coeff 1 1 0.238 3.405
```
---
## Binary Location
LAMMPS is configured via environment variable (set in `.claude/settings.json` or shell):
```bash
# From environment variable
LMP="${LMP:-lmp}" # Falls back to 'lmp' in PATH
# Or check your config
echo $LMP
```
### Execution Commands
**CPU:**
```bash
$LMP -in input.lmp
```
**GPU (for large systems):**
```bash
$LMP -sf gpu -pk gpu 1 neigh yes -in input.lmp
```
---
## Complete Workflow (Agentic)
### Example: Liquid Argon Diffusion
**Given only:** "Calculate the self-diffusion coefficient of liquid argon"
**You do:**
1. **Search literature** for argon MD parameters
- Find Rahman 1964 as seminal paper
- Extract: ε/kB = 119.8 K, σ = 3.405 Å
- Note conditions: T = 94.4 K (triple point), ρ = 1.374 g/cm³
2. **Convert parameters**
- ε = 119.8 K × 0.001987 kcal/(mol·K) = 0.238 kcal/mol
3. **Calculate system size**
- N = 864 atoms (Rahman's choice, or 256-500 for faster)
- Box size from density: L = (N × M / (ρ × Nₐ))^(1/3)
4. **Create input file with citations**
```lammps
# Liquid Argon MD - Self-diffusion calculation
# Parameters from Rahman, Phys. Rev. 136, A405 (1964)
units real
atom_style atomic
boundary p p p
# Create FCC lattice, will melt to liquid
lattice fcc 5.26 # ~1.374 g/cm³
region box block 0 6 0 6 0 6
create_box 1 box
create_atoms 1 box
mass 1 39.948 # Argon
# LJ potential - Rahman 1964 parameters
pair_style lj/cut 10.0
pair_coeff 1 1 0.238 3.405 # ε=0.238 kcal/mol, σ=3.405 Å
# Initialize velocities at target temperature
velocity all create 94.4 12345
# Equilibration
fix 1 all nvt temp 94.4 94.4 100.0
timestep 2.0
thermo 100
run 10000
# Production with trajectory for MSD
reset_timestep 0
dump 1 all custom 100 trajectory.lammpstrj id type x y z
run 50000
```
5. **Run simulation**
```bash
$LMP -in input.lmp
```
6. **Analyze MSD and extract D**
- Use LAMMPS compute msd or post-process trajectory
- D = lim(t→∞) MSD(t) / (6t)
7. **Compare to literature**
- Rahman 1964: D ≈ 2.43 × 10⁻⁵ cm²/s
- Your result should be within ~10%
---
## Common Pair Styles and When to Use
| Pair Style | Use For | Notes |
|------------|---------|-------|
| `lj/cut` | Noble gases, simple fluids | Need ε, σ from literature |
| `lj/cut/coul/long` | Molecular systems with charges | Combine with kspace |
| `eam` | Metals | Download .eam file from literature |
| `tersoff` | Covalent (Si, C, etc.) | Use published parameter files |
| `reaxff` | Reactive systems | Requires force field file |
### Finding EAM Potentials for Metals
1. Search: "[metal] EAM potential LAMMPS"
2. Check NIST Interatomic Potentials Repository: https://www.ctcms.nist.gov/potentials/
3. Download the .eam.alloy or .eam.fs file
4. Reference in input:
```lammps
pair_style eam/alloy
pair_coeff * * Cu_Zhou04.eam.alloy Cu
```
---
## Input File Structure
1. **Units and style** - `units real` for most molecular systems
2. **Structure** - `read_data` or create with `lattice`/`create_atoms`
3. **Force field** - `pair_style` and `pair_coeff` (YOU FIND THESE)
4. **Dynamics** - `fix nvt/npt/nve`, `timestep`
5. **Output** - `thermo`, `dump`
6. **Run** - `minimize` or `run`
---
## Common Issues and Solutions
1. **"Unknown pair style"** - Style not compiled in. Check `$LMP -h` for available.
2. **"Bond atom missing"** - Topology error in data file
3. **"Out of range atoms"** - Timestep too large or bad parameters
4. **Wrong temperature/energy** - Check unit consistency (real vs metal vs lj)
---
## Property Calculations
### Diffusion Coefficient
```lammps
compute msd all msd
fix msd_out all ave/time 100 1 100 c_msd[4] file msd.dat
```
Then: D = slope(MSD vs t) / 6
### Radial Distribution Function
```lammps
compute rdf all rdf 100
fix rdf_out all ave/time 100 1 100 c_rdf[*] file rdf.dat mode vector
```
### Temperature/Pressure
Already in thermo output by default.
---
## Key Principle
**Don't use placeholder parameters.** Every `pair_coeff` line should have a citation in the comments. If you can't find parameters, search harder or report that the parameters aren't available in literature.