Skip to content

Bloch Representation Analysis and Visualization Environment

License

Notifications You must be signed in to change notification settings

mir-group/BRAVE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Bloch Representation Analysis and Visualization Environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published