Run LAMMPS molecular dynamics with ReaxFF reactive force field. Use when the user needs reactive MD for combustion, oxidation, corrosion, or bond breaking/forming.
Scanned 9/20/2026
Install to Claude Code
npx -y skills add Hello-QM/catgo-LRG --skill reaxff --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Reaxff?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hello-qm-reaxff)More formats (shields.io, HTML) on the badges page.
---
name: lammps-reaxff
description: >
Run LAMMPS molecular dynamics with ReaxFF reactive force field. Use when the user
needs reactive MD for combustion, oxidation, corrosion, or bond breaking/forming.
compatibility: >
Requires LAMMPS compiled with the REAXFF package. A ReaxFF parameter file
(ffield.reax) is required for the element combination.
catalog-hidden: true
---
# LAMMPS + ReaxFF
## When to Use
- User needs reactive molecular dynamics (bonds can break and form)
- User wants to study combustion, pyrolysis, oxidation, or corrosion
- User needs to model chemical reactions at the atomic scale without QM
- User has a ReaxFF parameter file for the relevant elements
## Prerequisites
1. LAMMPS compiled with REAXFF package (`lmp -h | grep REAXFF`)
2. ReaxFF parameter file (`ffield.reax.xxx`) for the element combination
3. Initial structure — can be built with Packmol (see `data/packmol/SKILL.md`)
## Workflow Steps
### 1. Create workflow
```
catgo_workflow_engine(action="create", params={"name": "ReaxFF combustion - methane/O2"})
```
### 2. Add ReaxFF MD task
```
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "shell",
"name": "reaxff_md",
"command": "lmp -in lammps.in > lammps.log 2>&1",
"input_files": {
"lammps.in": "<input script>",
"ffield.reax.CHO": "<reaxff params>"
},
"system_name": "CH4_combustion"
})
```
### 3. Analyze with ReacNetGenerator (optional)
After MD completes, use `analysis/reacnetgen/SKILL.md` to extract reaction networks.
## LAMMPS Input Template — ReaxFF NVT
```
units real
boundary p p p
atom_style charge
read_data structure.lmp
pair_style reaxff NULL
pair_coeff * * ffield.reax.CHO C H O
neighbor 2.0 bin
neigh_modify every 10 delay 0 check yes
# Charge equilibration
fix qeq all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff
# Velocities
velocity all create 2000.0 12345 dist gaussian
# NVT
fix 1 all nvt temp 2000.0 2000.0 100.0
# Timestep (fs in real units)
timestep 0.25
# Output
thermo 100
thermo_style custom step temp pe ke etotal press vol density
dump 1 all custom 100 traj.lammpstrj id type q x y z
dump_modify 1 sort id element C H O
# Bond order output (for reaction analysis)
fix bonds all reaxff/bonds 1000 bonds.reax
run 500000
```
## Important ReaxFF-Specific Settings
### Charge Equilibration (MANDATORY)
ReaxFF requires dynamic charge equilibration at every step:
```
fix qeq all qeq/reaxff 1 0.0 10.0 1.0e-6 reaxff
```
**Never omit this fix.** Without it, charges are not updated and results are physically meaningless.
### Small Timestep
ReaxFF requires small timesteps due to reactive dynamics:
- **0.25 fs** — safe for most systems (recommended)
- **0.5 fs** — acceptable for heavy-atom systems without H
- **1.0 fs** — only for non-reactive equilibration phases
### Bond Order Output
For reaction analysis, write bond information:
```
fix bonds all reaxff/bonds 1000 bonds.reax
```
Feed `bonds.reax` to ReacNetGenerator for automated reaction network extraction.
## Parameter File Sources
| File | Elements | Reference |
|---|---|---|
| ffield.reax.CHO | C, H, O | Chenoweth et al. (2008) — combustion |
| ffield.reax.Fe_O_C_H | Fe, O, C, H | Aryanpour et al. (2010) — iron oxidation |
| ffield.reax.AB | A, B (various) | Check doi.org/10.1021/acs.jctc.* for specific systems |
Always cite the original ReaxFF parameterization paper.
## Parameter Guidance
| Parameter | Typical value | Notes |
|---|---|---|
| timestep | 0.25 fs | Real units (fs); must be small for reactive dynamics |
| NVT temp damp | 100 fs | 100-200 fs typical in real units |
| qeq tolerance | 1.0e-6 | Charge equilibration convergence |
| Temperature | 1500-3000 K | Reactive events need high T to overcome barriers |
| Run length | 500K-5M steps | 125 ps - 1.25 ns at 0.25 fs timestep |
| Dump freq | 100-500 | For trajectory and reaction analysis |
## Common Pitfalls
1. **Missing qeq/reaxff fix** — charges are not static in ReaxFF. Omitting charge equilibration gives garbage results.
2. **Wrong units** — ReaxFF uses `units real` (kcal/mol, Ang, fs). Never use `units metal`.
3. **Timestep too large** — 0.25 fs is the safe maximum. Larger timesteps cause energy conservation failure.
4. **Wrong element order** — `pair_coeff * * ffield.reax.CHO C H O` must match atom types in data file.
5. **Parameter file incompatibility** — ReaxFF parameters are NOT transferable between element combinations. Use only validated parameter sets.
6. **System too small** — ReaxFF MD of reactions needs at least 500-1000 atoms for meaningful statistics.
7. **Temperature too low** — reactions have barriers. Below 1000 K, you may see no reactive events in affordable simulation time.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!