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:
Metadata
Release files for vasp-ase 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vasp_ase-2.0.0.tar.gz | 673.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vasp_ase-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 804.3 kB
Release files / vasp_ase-2.0.0.tar.gz
| Download URL | vasp_ase-2.0.0.tar.gz |
|---|---|
| Size | 673.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48088c306268d5b1cd5461418157221cbd8970f62d249b13095d3ac7417463ef
|
|
BLAKE2b-256 checksum How to use checksums |
50dd121be7dd1ce741763838054545002eb83226e1f2365e18c025b055c03a72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / vasp_ase-2.0.0-py3-none-any.whl
| Download URL | vasp_ase-2.0.0-py3-none-any.whl |
|---|---|
| Size | 130.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b07444772c0b1d16d02376204e746e9448d886694bef936a9d13c60b5851d645
|
|
BLAKE2b-256 checksum How to use checksums |
7c09dded808b303d1196bbaacc56a5fb0c0b7a2f602d0588ca06ccb95efff022
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for vasp-ase 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.