GithubHelp home page GithubHelp logo

deyh2020 / brave Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mir-group/brave

0.0 0.0 0.0 33.44 MB

Bloch Representation Analysis and Visualization Environment

License: MIT License

Python 98.35% Shell 1.65%

brave's Introduction

Bloch Representation Analysis and Visualization Environment (BRAVE)

BRAVE is a Python package that includes several modules for parsing the output files of different electronic structure codes, generating the input files for subsequent calculations, and analyzing and plotting the calculation results. It is also the main pre- and post-processing tool for computing electronic transport properties with EPA code. For details please refer to the documentation on individual modules.

import brave
help(brave)
help(brave.cell)
help(brave.kpoint)
help(brave.energy)
help(brave.dos)
help(brave.epa)
help(brave.transport)
help(brave.plot)
help(brave.diagram)

The following code parses the output file of Quantum Espresso and generates the input files for BoltzTraP.

import brave
bnd = brave.Energy()
bnd.read('pw-out', ['silicon.pw.out'])
bnd.calc_efermi()
bnd.write('boltztrap-in', ['silicon.def', 'silicon.intrans', 'silicon.struct', 'silicon.energy'])

An extended version of this code is located in test/silicon/6_boltz/qe2boltz.py.

Supported codes and the corresponding arguments used by BRAVE

Code Executable Access fileformat filenames
rw 'internal' 'prefix.brave'
Quantum Espresso pw.x w 'pw-in' 'prefix.in'
Quantum Espresso pw.x r 'pw-out' 'prefix.out'
Quantum Espresso bands.x r 'bands-out' 'bands.out'
Quantum Espresso matdyn.x r 'matdyn-out' 'matdyn.modes'
Quantum Espresso matdyn.x r 'matdyn-dos' 'prefix.vdos'
Quantum Espresso epa.x r 'epa-out' 'prefix.epa.e'
BerkeleyGW inteqp.flavor.x r 'inteqp-out' 'bandstructure.dat'
BerkeleyGW sigma.flavor.x r 'sigma-out' 'sigma_hp.log'
Wannier90 wannier90.x rw 'wannier-in' 'seedname.win'
Wannier90 wannier90.x r 'wannier-out' 'seedname_band.dat'
VASP vasp w 'vasp-kpt' 'KPOINTS'
VASP vasp r 'vasp-out' 'OUTCAR'
WIEN2k lapw1 w 'lapw-kpt' 'case.klist_band'
WIEN2k lapw1 r 'lapw-out' 'case.output1'
BoltzTraP BoltzTraP w 'boltztrap-in' 'case.def', 'case.intrans', 'case.struct', 'case.energy'
BoltzTraP BoltzTraP r 'boltztrap-out' 'case.intrans', 'case.trace'
BoltzTraP BoltzTraP r 'boltztrap-dos' 'case.intrans', 'case.transdos'

Access indicates whether BRAVE can read and/or write the corresponding filenames.

Some codes use separate files for different spin components

Code Executable Access fileformat filenames
Quantum Espresso bands.x r 'bands-out' 'bands.outup', 'bands.outdn'
Wannier90 wannier90.x r 'wannier-out' 'seedname_band.datup', 'seedname_band.datdn'
WIEN2k lapw1 r 'lapw-out' 'case.output1up', 'case.output1dn'
BoltzTraP BoltzTraP w 'boltztrap-in' 'case.def', 'case.intrans', 'case.struct', 'case.energyso'

Notes on Fermi level

  • For insulators, use method calc_efermi of class Energy to set the Fermi level in the middle of the band gap. For metals, do not use this method as the correct Fermi level was already read from the DFT output files.

  • When reading fileformats 'epa-out', 'boltztrap-dos', and 'boltztrap-out', the energy scale is shifted to set the Fermi level to zero. Hopefully this brings more convenience than confusion.

Notes on different codes

Quantum Espresso

  • pw.x must be run with 'verbosity = "high"' to force writing symmetry operations and k-points to file 'prefix.out'.

Wannier90

  • Attribute kpoint of class Kpoint is not available from the input or output files of wannier90.x. It can be constructed from attributes kpath and kindex read from file 'seedname.win' using methods calc_kindex and calc_kpoint.

VASP

  • Symmetry operations are not available from the input or output files of vasp. They can be constructed from file 'POSCAR' using ASE and SPGLIB as done in BoltzTraP vasp2boltz.py. This is currently not implemented in BRAVE.

WIEN2k

  • File 'case.struct' contains symmetry operations in cartesian coordinates. They can be read by BRAVE and converted to crystal coordinates. This is currently not implemented in BRAVE.
  • If lapw1 is run in parallel file 'case.output1' can be gathered by running spaghetti or manually
cat case.output1_? > case.output1
cat case.output1_?? >> case.output1

License

See the LICENSE file for license rights and limitations (MIT).

brave's People

Contributors

gsamsonidze 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.