Skip to main content

A highly flexible and customizable library for visualizing electronic structure data from VASP calculations

Project description

vaspvis

A highly flexible and customizable library for visualizing electronic structure data from VASP calculations.

Documentation Status

Usage

This package was designed to give VASP users a flexible and easy to understand method for generating a wide variaty of band structures and density of states plots. There are three main modules in this package:

  • Band
  • Dos
  • standard

The Band and Dos modules allow for the highest level of flexibility because the user needs to pass in their own matplotlib axis, letting the user completely design the external appearence of their plot. The Band and Dos modules will then parse the VASP output data and append the it to the axis.

The standard module uses the Band and Dos modules internally and was designed for those people who are not familiar with matplotlib or don't need to completely customize their own figure. There are a total of 48 different styles of plots to choose from in this module. It gives the user the capability to project onto any orbital, any atom, or any element in their structure, as well as individual orbitals on any atom or element. There are also options for spin polarized band structures and density of states as well, letting the user make intricate plots with only a few lines of code.

Installation

pip install vaspvis

Loading Data

from vaspvis import Band, Dos

# Non-HSE Calculation (plain band structure)
bs = Band(folder='path to vasp output folder')


# Non-HSE Calculation (projected band structure)
bs_projected = Band(folder='path to vasp output folder', projected=True)

# HSE Calculation (plain band structure)
bs_hse = Band(
    folder='path to vasp output folder',
    hse=True,
    kpath='GXWLGK', # Path used in calculation
    n=30, # Number of points between with high symmetry points
)

# HSE Calculation (projected band structure)
bs_hse = Band(
    folder='path to vasp output folder',
    projected=True,
    hse=True,
    kpath='GXWLGK', # Path used in calculation
    n=30, # Number of points between with high symmetry points
)

# Density of states (projected or non-projected)
dos = Dos(folder='path to vasp output folder')

Important Note: This package parses the vasprun.xml, KPOINTS, and POSCAR files, be sure that they are in the folder you load into vaspvis.

Important Note: For spin projected orbitals you must load the spin up and spin down chanels separately using the spin = 'up' or spin = 'down' options with loading data. Default is spin = 'up'.

Examples

Band Structures

Plain Band Structure

from vaspvis import standard

standard.band_plain(
    folder=band_folder
)

Plain Band Structure HSE

All other band structure can be plotted for HSE this is just an example on how to load the structure using the standard module.

from vaspvis import standard

standard.band_plain(
    folder=band_folder_hse,
    hse=True,
    kpath='GXWLGK',
    n=20,
)

s, p, d Projected Band Structure

from vaspvis import standard

standard.band_spd(
    folder=band_folder
)

Orbital Projected Band Structure

from vaspvis import standard

standard.band_orbitals(
    folder=band_folder,
    orbitals=[0, 1, 2, 3, 4, 5, 6, 7, 8],
)

Atom-Orbtial Projected Band Structure

from vaspvis import standard

standard.band_atom_orbitals(
    folder=band_folder,
    atom_orbital_pairs=[[0,1], [0,3], [1, 1], [1,7]]
)

Atom Projected Band Structure

from vaspvis import standard

standard.band_atoms(
    folder=band_folder,
    atoms=[0, 1],
)

Element Projected Band Structure

from vaspvis import standard

standard.band_elements(
    folder=band_folder,
    elements=['In', 'As'],
)

Element s, p, d Projected Band Structure

from vaspvis import standard

standard.band_element_spd(
    folder=band_folder,
    elements=['As'],
)

Element Orbital Projected Band Structure

from vaspvis import standard

standard.band_element_orbitals(
    folder=band_folder,
    element_orbital_pairs=[['As', 2], ['In', 3]],
)

Density of Statess

Plain Density of States

from vaspvis import standard

standard.dos_plain(
    folder=dos_folder,
    energyaxis='x',
)

s, p, d Projected Density of States

from vaspvis import standard

standard.dos_spd(
    folder=dos_folder,
    energyaxis='x',
)

Orbital Projected Density of States

from vaspvis import standard

standard.dos_orbitals(
    folder=dos_folder,
    orbitals=[0, 1, 2, 3, 4, 5, 6, 7, 8],
    energyaxis='x',
)

Atom-Orbtial Projected Density of States

from vaspvis import standard

standard.dos_atom_orbital(
    folder=dos_folder,
    atom_orbital_pairs=[[0,1], [0,3], [1, 1], [1,7]],
    energyaxis='x',
)

Atom Projected Density of States

from vaspvis import standard

standard.dos_atoms(
    folder=dos_folder,
    atoms=[0, 1],
    energyaxis='x',
)

Element Projected Density of States

from vaspvis import standard

standard.dos_elements(
    folder=dos_folder,
    elements=['In', 'As'],
    energyaxis='x',
)

Element s, p, d Projected Density of States

from vaspvis import standard

standard.dos_element_spd(
    folder=dos_folder,
    elements=['As'],
    energyaxis='x',
)

Element Orbital Projected Density of States

from vaspvis import standard

standard.dos_element_orbitals(
    folder=dos_folder,
    element_orbital_pairs=[['As', 2], ['In', 3]],
    energyaxis='x',
)

Band Structure / Density of Statess

Plain Band Structure / Density of States

from vaspvis import standard

standard.band_dos_plain(
    band_folder=band_folder,
    dos_folder=dos_folder,
)

s, p, d Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_spd(
    band_folder=band_folder,
    dos_folder=dos_folder,
)

Orbital Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_orbitals(
    band_folder=band_folder,
    dos_folder=dos_folder,
    orbitals=[0, 1, 2, 3, 4, 5, 6, 7, 8],
)

Atom-Orbtial Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_atom_orbital(
    band_folder=band_folder,
    dos_folder=dos_folder,
    atom_orbital_pairs=[[0,1], [0,3], [1, 1], [1,7]]
)

Atom Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_atoms(
    band_folder=band_folder,
    dos_folder=dos_folder,
    atoms=[0, 1],
)

Element Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_elements(
    band_folder=band_folder,
    dos_folder=dos_folder,
    elements=['In', 'As'],
)

Element s, p, d Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_element_spd(
    band_folder=band_folder,
    dos_folder=dos_folder,
    elements=['As'],
)

Element Orbital Projected Band Structure / Density of States

from vaspvis import standard

standard.band_dos_element_orbitals(
    band_folder=band_folder,
    dos_folder=dos_folder,
    element_orbital_pairs=[['As', 2], ['In', 3]],
)

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

vaspvis-0.1.16.tar.gz (7.2 MB view hashes)

Uploaded Source

Supported by

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