VASP Ab Initio Molecular Dynamics (AIMD)
SkillDev toolsRun Born-Oppenheimer molecular dynamics with DFT forces at each step. Expensive but provides finite-temperature behavior, diffusion coefficients, and reaction dynamics.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the VASP Ab Initio Molecular Dynamics (AIMD) skill
About this capability
Ab initio molecular dynamics (AIMD) with VASP. NVT/NVE ensembles, temperature control, trajectory analysis.
What this skill tells your AI
The instructions your AI receives, as published by hello-qm/catgo-lrg in .claude/skills/vasp-md/SKILL.md and read by ahel’s review.
Run Born-Oppenheimer molecular dynamics with DFT forces at each step. Expensive but provides finite-temperature behavior, diffusion coefficients, and reaction dynamics.
When to Use
- Thermal stability — check if a structure is stable at operating temperature
- Diffusion — compute diffusion coefficients (e.g., Li-ion conductors)
- Reaction dynamics — observe bond breaking/forming at finite temperature
- Free energy sampling — metadynamics or thermodynamic integration
- Amorphous structures — melt-quench to generate amorphous phases
Basic NVT Molecular Dynamics
from catgo.workflow import Workflow
from catgo.workflow.builtins import geo_opt, md
wf = Workflow("AIMD at 600K")
struct = wf.add_task("structure_input", structure=structure_json)
# Optional: relax first
opt = wf.add_task(geo_opt, structure=struct.output.structure,
system_name="relax")
# NVT MD at 600 K
run = wf.add_task(md, structure=opt.output.structure,
IBRION=0, # Molecular dynamics
NSW=5000, # Number of MD steps
POTIM=1.0, # Time step in fs
TEBEG=600, # Starting temperature (K)
TEEND=600, # Ending temperature (K)
SMASS=0, # Nose-Hoover thermostat (NVT)
ISIF=2, # Fix cell shape/volume
system_name="AIMD_600K")
wf.submit()
MCP Workflow
catgo_workflow_engine(action="create", params={"name": "AIMD 600K"})
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "structure_input",
"structure": "<json>"
})
catgo_workflow_engine(action="add_task", params={
"workflow_id": "wf_xxx",
"task_type": "md",
"software": "vasp",
"structure": "{{t_001.output.structure}}",
"NSW": 5000,
"POTIM": 1.0,
"TEBEG": 600,
"TEEND": 600,
"SMASS": 0,
"system_name": "AIMD_600K"
})
catgo_workflow_engine(action="submit", params={"workflow_id": "wf_xxx"})
Key Parameters
| Parameter | Default | Purpose |
|---|---|---|
| IBRION | 0 | Molecular dynamics mode |
| NSW | 1000 | Number of MD steps |
| POTIM | 1.0 | Time step in femtoseconds |
| TEBEG | 300 | Initial temperature (K) |
| TEEND | 300 | Final temperature (K). Set equal to TEBEG for isothermal |
| SMASS | -1 | Thermostat: -1=NVE, 0=Nose-Hoover NVT, >0=Nose mass |
| ISIF | 2 | Fix cell (NVT). Use ISIF=3 for NPT (rare in AIMD) |
| NBLOCK | 1 | Write trajectory every NBLOCK steps |
Thermostat Selection (SMASS)
| SMASS | Ensemble | Use case |
|---|---|---|
| -1 | NVE (microcanonical) | Energy conservation test, short dynamics |
| 0 | NVT Nose-Hoover | Standard production MD at fixed T |
| 1-3 | NVT with Nose mass | Larger SMASS = slower T coupling (less perturbation) |
| -3 | Langevin thermostat | Better T control for small systems |
Recommendation: Use SMASS=0 (Nose-Hoover) for most production runs. Use SMASS=-1 (NVE) for energy conservation checks and very short equilibration diagnostics.
Temperature Ramp (Heating/Cooling)
To heat from 300 K to 1500 K (simulated annealing or melt-quench):
run = wf.add_task(md, structure=s,
NSW=10000,
POTIM=2.0,
TEBEG=300, # Start at 300 K
TEEND=1500, # Ramp to 1500 K
SMASS=0,
system_name="heating_ramp")
Time Step Selection (POTIM)
| System | Recommended POTIM (fs) | Reason |
|---|---|---|
| Heavy elements (Pt, Au, Ru) | 2.0 | Heavy atoms, slow dynamics |
| Oxides (TiO2, RuO2) | 1.0-1.5 | O is light, moderate step needed |
| Light elements (H, Li) | 0.5-1.0 | Fast H vibrations need small step |
| Proton transfer | 0.5 | H requires fine time resolution |
Rule of thumb: if the total energy drifts upward in NVE, reduce POTIM.
Performance Settings
AIMD is expensive. Optimize performance:
run = wf.add_task(md, structure=s,
NSW=5000,
POTIM=1.0,
TEBEG=600,
SMASS=0,
# Performance
ALGO="VeryFast", # Fastest SCF convergence per step
NELM=60, # Limit SCF steps (MD does not need tight SCF)
EDIFF=1e-4, # Looser SCF for MD (still accurate forces)
LREAL="Auto", # Real-space projection for speed
LWAVE=False, # Do not write WAVECAR each step
NCORE=4,
system_name="AIMD")
EDIFF=1e-4 is acceptable for MD. Forces at 1e-4 SCF convergence are sufficiently accurate for MD trajectories. This saves 30-50% compute time vs 1e-5.
Supercell Size
AIMD requires large enough supercells to avoid finite-size effects:
- Minimum: 64-100 atoms for bulk liquids/diffusion
- Surfaces: use the slab supercell (typically 2x2 or 3x3 surface unit cell)
- Small molecules on surface: existing slab supercell is usually fine
Build a supercell before MD:
catgo_structure(action="supercell", params={"scaling": [2, 2, 1]})
Output
The md task produces:
output.trajectory— atomic positions at each step (XDATCAR)output.energy— energy vs time
Monitoring a Running MD
catgo_workflow_engine(action="status", params={"workflow_id": "wf_xxx"})
# Check NSW progress, temperature stability
catgo_analyze(action="convergence", params={"task_id": "t_md"})
# Energy vs step, temperature vs step
Troubleshooting
| Problem | Fix |
|---|---|
| Temperature explodes | Reduce POTIM, check initial structure for overlapping atoms |
| Energy drift in NVE | Reduce POTIM, tighten EDIFF to 1e-5 |
| SCF not converging at each step | Use ALGO=VeryFast, increase NELM |
| Too slow | Reduce ENCUT (400 eV ok for MD), use LREAL=Auto, fewer k-points |
| Atoms evaporating from slab | Add more vacuum, or constrain bottom layers |
Typical Simulation Lengths
| Purpose | NSW | POTIM | Total time |
|---|---|---|---|
| Quick stability check | 1000 | 1.0 | 1 ps |
| Equilibration | 5000 | 1.0 | 5 ps |
| Production (diffusion) | 20000-50000 | 1.0-2.0 | 20-100 ps |
| Melt-quench | 10000+ | 2.0 | 20+ ps |
Signals
- GitHub stars
- 196
- Forks
- 23
- Last commit
- Sep 2026
ahel recommends instead
Advanced
- Catalog kind
- skill
- Gateway key
vasp-md-hello-qm- Source
- github.com/hello-qm/catgo-lrg