Skip to main content

Yet another Ab Initio Visualizer with a variety of tools

Project description

YAIV

Yet another Ab Initio Visualizer

A general purpose tool for condensed matter data analysis in jupyterlab
Report Bug · Request Feature
___
Explore the tutorials:
Plotting · Utilities

Table of Contents
  1. About The Project
  2. Usage
  3. Installation
  4. Roadmap

About The Project

YAIV is a collection of tools for plotting results of condensed matter ab initio codes such as Quantum Espresso, VASP, Wannier90, Wannier Tools... Although it can be used from the command line, the main intention of YAIV is to be used within JupyterLab, thereby allowing users to centralize the data analysis of a whole project into a single file. The goal is to provide both (1) fast and easy plotting defaults to glance over results, while (2) being flexible and powerful enough to generate publication-ready figures.

gif demo

(back to top)

Why?

A single file to rule them all...

Most of the tools contained on YAIV are nothing more than glorified python scripts I needed during my PhD. Although python libraries for ab initio data analysis already exist, I found many of them being disigned to work within the command line (often required to be run from a certain directory). YAIV is aimed at providing useful ab initio analysis functionalities to those people willing to use a single JupyterLab file to organize their projects.

YAIV also intends to provide enough flexibility and modularity for most scenarios. To this end, useful utilities are also provided in order to scrape data from the output of a variety of codes. Then, users can either further process the raw data or plot it in any desired way.

(back to top)


Installation

Create an isolated python enviroment

In case you want to create your own python enviroment and have it available in JupyterLab.

    virtualenv yaiv_env                                 #Create yor new enviroment
    source yaiv_env/bin/activate                        #Load the enviroment
    pip install ipykernel                               #In order to create a Kernel for this enviroment
    python -m ipykernel install --user --name=YAIV      #Install your new kernel with your desired name
    jupyter kernelspec list                             #Check that the new installed kernel appears

Now your new installed Kernel should be available in JupyterLab. You can select Kernel clicking at the top-right corner of JupyterLab.

Installing YAIV

You can either install from pip as:

   pip install yaiv

Or cloning the git repository:

   git clone https://github.com/mgamigo/YAIV.git
   cd YAIV
   pip install .

(back to top)


Usage

All the functions are properly documented (remember that in JupyterLab all the documentation can be conviniently accesed with the shift + tab shortcut). All the tools are demostrated in the tutorials, here is a brief summary of the main modules of YAIV and their current tools:

Plot module

Contains most of the plotting functionalities, currently being:

  • Electronic band structures of Quantum Espresso, Vasp, Wannier90 and WannierTools.
    • Plotting results of different codes against each other.

Here are some simple examples:

plot.bands(file='DATA/bands/QE/results_bands/CsV3Sb5.bands.pwo',  #raw Quantum Espresso output file with the band structure
           KPATH='DATA/bands/KPATH',   #File with the Kpath (in order to plot the ticks at the High symmetry points)
           aux_file='DATA/bands/QE/results_scf/CsV3Sb5.scf.pwo', #File needed to read the number of electrons and lattice parameters
           title='Nice QE plot ( ͡❛ ͜ʖ ͡❛)')    # A title of your liking

Combining YAIV tools with the usual matplotlib sintax one can generate complex plots as this one (check the tutorial):

Utils module

The utils module has a variety of utilities mostly focussed on scraping data from output files of different codes. This tools combined can be usefull for various porpuses. All the functions are demostrated in this tutorial. So far the code supports:

  • Grepping the number of electrons from Quantum Espresso and VASP outputs.
  • Grepping the Fermi level.
  • Grep the lattice parameters.
  • Grep the path from a Quantum Espresso bands.pwi input.
  • Grep the path and HSP labels from a KPATH in the TQC website format. (Enter in any compound and click in the "Download KPATH" link).

(For more examples, please refer to the Tutorials).

(back to top)


Roadmap

  • Plot module
    • Plotting electronic band strucutres
    • Plotting phonon spectras
    • Plotting densities of states (DOS)
    • ...
  • Utils module
    • Grep tools to scrape data form OUTPUT files
    • ...
  • Convergence analysis tools
    • Quantum Espresso self consistent calculations
    • Quantum Espresso phonon spectra
    • Wannierizations for Wannier90
  • ...
Built With

NumPy Matplotlib

(back to top)

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

yaiv-0.0.1.tar.gz (26.5 kB view details)

Uploaded Source

Built Distribution

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

yaiv-0.0.1-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file yaiv-0.0.1.tar.gz.

File metadata

  • Download URL: yaiv-0.0.1.tar.gz
  • Upload date:
  • Size: 26.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for yaiv-0.0.1.tar.gz
Algorithm Hash digest
SHA256 8208860beec31fedb2dc6c3d018bef23ff4ff1eb5b95e5f7381af6f0beeb5423
MD5 771324deb6af9f682be0e8b8a58e8a4c
BLAKE2b-256 b942b51704bca9187e08d28c032109d5de438f087ce0080d3a8d6deff5ba9ac3

See more details on using hashes here.

File details

Details for the file yaiv-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: yaiv-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for yaiv-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 55efd86ddb6b1fb4d8fa2c68f39f863e394742f24592facb1340551aead36d09
MD5 250b45874518d2b6fa81d71c42dc7177
BLAKE2b-256 afb20d76891204867e42cf127c165e54426c02017255adfec24d1bbec15acfb5

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