Giter VIP home page Giter VIP logo

electronic-structure-visualization's Introduction

Full electronic structure visualization tool

This is a simple interactive tool for visualizing full electronic structures of materials. Unfortunately, it is no longer being actively maintained ☚ī¸ Updates for compatibility with major package updates may come sporadically, but don't count on it...

An online version of this tool is also available on the MaterialsWeb website.

screenshot of visualization tool

UPDATE as of 01/10/2022:

  • Updated to be compatible with pymatgen v. 2020.*, dash v. 2.0.0, plotly v. 5.1.0

NEW as of 11/11/2019:

  • Implemented sub-orbital projections for the density of states plot!

NEW as of 08/27/2019:

  • Changed the method for selecting elements and orbitals for projection -- responsive dropdown lists enable users to select specific element + orbital combinations easily

Installation:

  1. First, you will need to have python installed. We suggest using anaconda/miniconda
  2. Install the following python packages via either conda or pip (the latest version of each package that this tool has been tested on is listed in parenthesis):
    • numpy (v. 1.21.2)
    • pymatgen (v. 2022.0.14)
    • chart_studio (v. 1.0.0)
    • plotly (v. 5.1.0)
    • dash (v. 2.0.0)
    • mendeleev (v. 0.9.0)
    • sqlalchemy (v. 1.4.27)
  3. Simply download the scripts in this repository and you are good to go!

Running the python script:

  1. Run python dash_main.py from the command line.
  2. Open your local server.

Providing input files:

Currently:

  • user provides the path to data stored locally

Future:

  • user can provide mpid to query data from Materials Project (MP doesn't have projected band structure data?)
  • incorporate into online databases e.g. Materials Project, MaterialsWeb

General features of interactive figures:

  • zoom
  • pan
  • rotate (3D figure)
  • view data on hover
  • save figure as png
  • turn on and off individual traces by clicking on the legend

Structure figure:

Note: this isn't meant to replace the structure figure which can be generated more beautifully by jmol or other visualization software. The purpose of this simple structure figure is to have a representation of the structure which can be easily connected to the band structure figure.

Currently:

  • atoms colored using same color scheme as jmol
  • clickable atoms

Future:

  • connect the structure figure to the band structure figure so that the user can select the atom to project onto by clicking on the atom in the structure figure

Band structure figure:

Currently:

  • user can select the element(s) and orbitals(s) they want to view projections onto
  • new plot is generated only upon clicking "Generate Plot" button
  • band structure element projections are represented using "fat bands" (there is an option in the script to plot the band structure element projections as colored bands, but the way it is implemented is very slow so this option is currently disabled...)
  • band structure orbital projections are represented using "fat bands"
  • up-spin contributions plotted as filled circles, down-spin contributions (if computed) plotted as empty circles
  • user can turn on and off individual traces by clicking on the legend on the right

Future:

  • enable projections onto selected atoms and/or sub-orbitals
  • suggestions for improving visualization of up-spin/down-spin, contributions from different elements, etc.?

Density of states figure:

Currently:

  • user can select the element(s) orbitals(s) and/or sub-orbitals(s) they want to view projections onto
  • new plot is generated only upon clicking "Generate Plot" button
  • up-spin contributions plotted as solid lines, down-spin contributions (if computed) plotted as dashed lines
  • user can turn on and off individual traces by clicking on the legend on the right

Future:

  • enable projections onto selected atoms

Authors:

Anne Marie Z. Tan

Richard G. Hennig

How to cite:

BibTex entry for this Github repository::

   @misc{electronic-structure-visualization,
     title        = {Full electronic structure visualization tool},
     author       = {A. M. Z Tan and R. G. Hennig},
     year         = 2019,
     publisher    = {GitHub},
     journal      = {GitHub repository},
     howpublished = {\url{https://github.com/henniggroup/electronic-structure-visualization}},
     url          = {https://github.com/henniggroup/electronic-structure-visualization},
     doi          = {}
   }

electronic-structure-visualization's People

Contributors

aztan2 avatar rhennig avatar joshgabriel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤ī¸ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.