⚠️ ALPHA SOFTWARE: This project is under active development and not ready for production use. APIs may change without notice. This notice will be removed when the project reaches stable release.
A modern Python interface for VASP (Vienna Ab initio Simulation Package) through ASE (Atomic Simulation Environment).
- Modern Calculator: Clean ASE-compatible interface with type hints
- Parameter Presets: Built-in support for DFT+U, hybrid functionals, van der Waals, spin-orbit coupling
- Multiple Runners: Local, SLURM, Kubernetes execution backends
- Workflow Recipes: quacc-style
@joband@flowdecorators for complex workflows - Analysis Tools: DOS, band structure, Bader charges, and more
pip install vasp-aseFor development:
git clone https://github.com/jkitchin/vasp.git
cd vasp
pip install -e ".[dev]"from ase.build import bulk
from vasp import Vasp
# Create atoms
atoms = bulk('Cu', 'fcc', a=3.6)
# Run calculation
calc = Vasp(
atoms=atoms,
xc='PBE',
encut=400,
kpts=(8, 8, 8),
directory='cu-bulk'
)
energy = atoms.get_potential_energy()
print(f"Energy: {energy:.3f} eV")from vasp.parameters import get_vdw_params, get_ldau_params, get_hybrid_params
# Van der Waals (D3-BJ)
vdw = get_vdw_params('d3bj')
# DFT+U for transition metals
ldau = get_ldau_params(['Fe', 'O'], {'Fe': {'U': 4.0, 'J': 0.0}})
# Hybrid functionals
hse = get_hybrid_params('hse06')from vasp.recipes.core import static_job, relax_job, double_relax_flow
# Single relaxation
result = relax_job(atoms, kpts=(4, 4, 4))
# Double relaxation workflow
result = double_relax_flow(atoms)from vasp.runners import LocalRunner, SlurmRunner
# Local execution
runner = LocalRunner(vasp_command='mpirun -np 4 vasp_std')
# SLURM cluster
runner = SlurmRunner(
partition='compute',
nodes=2,
ntasks_per_node=24,
time='2:00:00'
)The docs/tutorials/ directory contains 21 progressive tutorials as Jupyter notebooks:
- Beginner (01-05): Energy, convergence, relaxation, EOS, DOS
- Intermediate (06-10): Bands, magnetism, surfaces, adsorption, reactions
- Advanced (11-21): Phonons, DFT+U, HSE06, vdW, workflows, NEB, vibrations, visualization, pseudopotentials, interactive mode, cluster expansion
Run tutorials with:
make tutorial T=01 # Run a single tutorial
make tutorials # Run all tutorialsInstall global Claude Code skills for VASP assistance:
pip install vasp-ase
vasp-claude installThen use commands like /vasp-help, /vasp-watch-job, /vasp-fix-job from any project.
Full documentation available at https://kitchingroup.cheme.cmu.edu/vasp/
This project is part of a growing ecosystem of LLM agents for atomistic simulation:
| Project | Description | Reference |
|---|---|---|
| DREAMS | Multi-agent DFT simulation framework | Wang & Viswanathan, 2025 |
| AtomAgents | Physics-aware alloy design with LAMMPS | Ghafarollahi & Buehler, 2025 |
| LangSim | LLM interface for atomistic simulation with pyiron | Janssen, 2024 |
| El Agente | Autonomous quantum chemistry workflows | Zou & Aspuru-Guzik, 2025 |
See references.bib for full citations.
MIT License - see LICENSE for details.
Contributions welcome! Please read the contributing guidelines and submit pull requests.
If you use this package, please cite: