Modern ASE calculator interface for VASP with workflow integration
Project description
VASP-ASE Interface
⚠️ 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).
Features
- 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
Installation
pip install vasp-ase
For development:
git clone https://github.com/jkitchin/vasp.git
cd vasp
pip install -e ".[dev]"
Quick Start
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")
Parameter Presets
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')
Workflow Recipes
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)
Runners
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'
)
Tutorials
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 tutorials
Claude Code Integration
Install global Claude Code skills for VASP assistance:
pip install vasp-ase
vasp-claude install
Then use commands like /vasp-help, /vasp-watch-job, /vasp-fix-job from any project.
Documentation
Full documentation available at https://kitchingroup.cheme.cmu.edu/vasp/
Related Projects
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.
License
MIT License - see LICENSE for details.
Contributing
Contributions welcome! Please read the contributing guidelines and submit pull requests.
Citation
If you use this package, please cite:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vasp_ase-2.0.0.tar.gz.
File metadata
- Download URL: vasp_ase-2.0.0.tar.gz
- Upload date:
- Size: 673.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48088c306268d5b1cd5461418157221cbd8970f62d249b13095d3ac7417463ef
|
|
| MD5 |
d7e74d26ad5439b99acba23e95233c1b
|
|
| BLAKE2b-256 |
50dd121be7dd1ce741763838054545002eb83226e1f2365e18c025b055c03a72
|
File details
Details for the file vasp_ase-2.0.0-py3-none-any.whl.
File metadata
- Download URL: vasp_ase-2.0.0-py3-none-any.whl
- Upload date:
- Size: 130.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b07444772c0b1d16d02376204e746e9448d886694bef936a9d13c60b5851d645
|
|
| MD5 |
b23a1b8d5d8d2dcf40a7e529167d84da
|
|
| BLAKE2b-256 |
7c09dded808b303d1196bbaacc56a5fb0c0b7a2f602d0588ca06ccb95efff022
|