Skip to main content

Modern ASE calculator interface for VASP with workflow integration

Project description

VASP-ASE Interface

Tests codecov Documentation

⚠️ 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 @job and @flow decorators 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:

  1. Beginner (01-05): Energy, convergence, relaxation, EOS, DOS
  2. Intermediate (06-10): Bands, magnetism, surfaces, adsorption, reactions
  3. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vasp_ase-2.0.0.tar.gz (673.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vasp_ase-2.0.0-py3-none-any.whl (130.3 kB view details)

Uploaded Python 3

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

Hashes for vasp_ase-2.0.0.tar.gz
Algorithm Hash digest
SHA256 48088c306268d5b1cd5461418157221cbd8970f62d249b13095d3ac7417463ef
MD5 d7e74d26ad5439b99acba23e95233c1b
BLAKE2b-256 50dd121be7dd1ce741763838054545002eb83226e1f2365e18c025b055c03a72

See more details on using hashes here.

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

Hashes for vasp_ase-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b07444772c0b1d16d02376204e746e9448d886694bef936a9d13c60b5851d645
MD5 b23a1b8d5d8d2dcf40a7e529167d84da
BLAKE2b-256 7c09dded808b303d1196bbaacc56a5fb0c0b7a2f602d0588ca06ccb95efff022

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page