Skip to content

PytLab/VASPy

Repository files navigation

VASPy

Build Status Coverage Python PyPI

Introduction

VASPy is a pure Python library designed to make it easy and quick to manipulate VASP files.

You can use VASPy to manipulate VASP files in command lins or write your own python scripts to process VASP files and visualize VASP data.

In /scripts , there are some scripts written by me for daily use.

More interfaces examples in Jupyter Notebook format are in /examples. Any contribution is welcomed!

Installation

  1. Via pip(recommend):

    pip install vaspy
    
  2. Via easy_install:

    easy_install vaspy
    
  3. From source:

    python setup.py install
    

3D visualization is done via PyVista, which is installed automatically as a dependency:

pip install vaspy

Or install PyVista separately:

pip install pyvista

Examples

manipulate splited DOS file in command-line

# Manipulate splited DOS files.
>>> from vaspy.electro import DosX
>>> a = DosX('DOS1')
>>> b = DosX('DOS8')

# Merge DOS data.
>>> c = a
>>> c.reset_data()              # Initialize DOS data
>>> for i in range(1, 10):
>>>    c += DosX('DOS'+str(i))  # Merge DOS data.
>>> ...
>>> c.data                      # Get data(numpy array/matrix)
>>> c.tofile()                  # Get new DOS file with merged data

# Plot.
>>> c.plotsum(0, (5, 10))

Output

https://github.com/PytLab/VASPy/blob/dev/pic/pDOS.png

Visualize ELFCAR

>>> from vaspy.electro import ElfCar
>>> a = ElfCar()
>>> a.plot_contour()   # Plot coutour
>>> a.plot_mcontour()  # Plot coutour using PyVista
>>> a.plot_contour3d() # Plot 3D coutour
>>> a.plot_field()     # Plot scalar field

Output

https://github.com/PytLab/VASPy/blob/master/pic/contour2d.png

https://github.com/PytLab/VASPy/blob/master/pic/contours.png

3D contour

https://github.com/PytLab/VASPy/blob/master/pic/contour3d.png

Scalar field

https://github.com/PytLab/VASPy/blob/master/pic/field.png

Charge difference (Use ChgCar class)

https://github.com/PytLab/VASPy/blob/master/pic/contourf.png

Manipulate XDATCAR:

>>> from vaspy.atomco import XdatCar
>>> xdatcar = XdatCar()
>>> # Get Cartisan coordinates and step number in XDATCAR.
>>> for item in xdatcar:
>>>     print(item.step)
>>>     print(xdatcar.dir2cart(xdatcar.bases, item.coordinates))

>>> python xdatcar_to_arc.py

animation

https://github.com/PytLab/VASPy/blob/master/pic/sn2_my.gif

Process animation file:

Now VASPy can manipulate animation files to get more realistice results like atom trajectories or 2D/3D probability distribution.

https://github.com/PytLab/VASPy/blob/master/pic/pd.png

You can write your OWN script to process VASP files

From the author

Welcome to use VASPy (●'◡'●)ノ♥

  • If you find any bug, please report it to me by opening a issue.
  • VASPy needs to be improved, your contribution will be welcomed.

Important update log

Date Version Description
2026-05-15 0.9.0 PyVista 3D backend, non-orthogonal cell support, scipy 1.14+ fix
2016-08-08 0.7.0 Enhance universality
2016-07-15 0.6.0 Compatible with python 3
2015-08-04 0.1.0 Initial version