All Projects → rubel75 → fold2Bloch-VASP

rubel75 / fold2Bloch-VASP

Licence: GPL-3.0 license
Unfolding the band structure of a supercell obtained with VASP

Programming Languages

fortran
972 projects
matlab
3953 projects
Gnuplot
187 projects
Makefile
30231 projects

Projects that are alternatives of or similar to fold2Bloch-VASP

VaspStudio
An useful tool to submit your VASP job on HPC, manage your jobs and extract eneries...自动化VASP任务提交、计算结果提取,任务文件管理的工具
Stars: ✭ 63 (+250%)
Mutual labels:  vasp
IFermi
Fermi surface generation, analysis and visualisation.
Stars: ✭ 45 (+150%)
Mutual labels:  vasp
tilde
Materials informatics framework for ab initio data repositories
Stars: ✭ 19 (+5.56%)
Mutual labels:  vasp
PWDFT.jl
Plane wave density functional theory using Julia programming language
Stars: ✭ 86 (+377.78%)
Mutual labels:  electronic-structure
masci-tools
Tools, utility, parsers useful in daily material science work
Stars: ✭ 18 (+0%)
Mutual labels:  electronic-structure
atomate2
atomate2 is a library of computational materials science workflows
Stars: ✭ 67 (+272.22%)
Mutual labels:  vasp
aiida-vasp
A plugin to AiiDA for running simulations with VASP
Stars: ✭ 32 (+77.78%)
Mutual labels:  vasp
vasprun
quick analysis of vasp calculation
Stars: ✭ 20 (+11.11%)
Mutual labels:  vasp
VASPBERRY
Berry curvature and Chern number calculations with the output (WAVECAR) of VASP code
Stars: ✭ 26 (+44.44%)
Mutual labels:  vasp
hfsolver
Hartree Fock solver
Stars: ✭ 19 (+5.56%)
Mutual labels:  electronic-structure
OpenFermion-PySCF
OpenFermion plugin to interface with the electronic structure package PySCF.
Stars: ✭ 76 (+322.22%)
Mutual labels:  electronic-structure
Quantica.jl
Simulation of quantum systems on a lattice
Stars: ✭ 24 (+33.33%)
Mutual labels:  electronic-structure
libra-code
quantum-dynamics-hub.github.io/libra/index.html
Stars: ✭ 33 (+83.33%)
Mutual labels:  electronic-structure

fold2Bloch

The fold2Bloch utility is designed to unfold the band structure of a supercell obtained with the Vienna Ab initio Simulation Package (VASP) and compute an effective band structure in a primitive representation. It facilitates interpretation of large-scale electronic structure calculations, where the Bloch character of electronic eigenstates is perturbed by a disorder (defects, alloy elements, etc). Reading of wavefunctions is adapted from the WaveTrans code.

Contributors:

  • Oleg Rubel (McMaster University [email protected])
  • Michael Widom and Randall Feenstra (Carnegie Mellon University)
  • Anton Bokhanchuk (Confederation College)

Installation:

First clone the GitHub repository

$ git clone https://github.com/rubel75/fold2Bloch-VASP

The makefile is set up for Intel Fortran compiler ifort (gfortran options are also available, but you need to uncomment several lines). To compile, simply execute

$ cd fold2Bloch-VASP; make

Execution

First, you need to perform the band structure calculation and generate WAVECAR file for the k-mesh of interest using standard VASP procedure (see VASP guidelines). (The following MATLAB script utils/fold.m is designed to assist with preparing a folded string of k-points that will unfold on a desired k-path.) It is advised to increase the number of empty bands (NBANDS=... in INCAR file) by a factor of 1.2-2 beyond a VASP-proposed default value to get a reasonable description of higher energy states.

Once WAVECAR is ready, execute

/path/to/fold2Bloch WAVECAR "P11 P12 P13:P21 P22 P23:P31 P32 P33" [-ncl]

Options:

WAVECAR -- name of the input VASP wavefunction file

"P11 P12 P13:P21 P22 P23:P31 P32 P33" -- transformation matrix from primitive lattice vectors a_p to supercell lattice vectors a_s (same as in VESTA or the Bilbao Crystallographic Server):

a_s(i) = sum_j a_p(j)*P(j,i)      i,j = 1, 2, 3

-ncl -- optional switch that needs to be activated when the WAVECAR is produced by vasp_ncl code, which implies that the wavefunctions are spinors (default assumption is that WAVECAR comes from vasp_std or vasp_gam).

Output

Output is written to WAVECAR_*.f2b file(s). There is one output file for non-spin-polarized calculation and two files for the spin-polarized or spinor (vasp_ncl) calculations. Below is a sample of an output file.

New K-values (x, y, z)       Eigenvalue (eV)  Weight
0.000000   0.000000   0.000000 -22.019998   1.000000
0.000000   0.200000   0.000000 -22.019998   0.000000
0.000000   0.400000   0.000000 -22.019998   0.000000
0.000000  -0.400000   0.000000 -22.019998   0.000000
0.000000  -0.200000   0.000000 -22.019998   0.000000
0.200000   0.000000   0.000000 -22.019998   0.000000
...

Plotting results

The Matlab code utils/ubs_dots.m or the octave code utils/ubs_bmp.m are designed to assist with plotting the band structure and the Bloch weights. Please refer to its input section for description of user input variables. Each plotting tool has its own pros/cons. Below is a sample of the MATLAB plot for the unfolded band structure of a dilute GaP:N alloy. It is followed by a different style plot of a dynamic band structure in a perovskite lattice generated using Octave utils/ubs_bmp.m and gnuplot utils/f2b-band-structure.plt from Phys. Rev. Materials 2, 114604 (2018).

References

If you find the results useful and publishable, we will appreciate citing the following papers:

  • O. Rubel, A. Bokhanchuk, S. J. Ahmed, and E. Assmann "Unfolding the band structure of disordered solids: from bound states to high-mobility Kane fermions", Phys. Rev. B 90, 115202 (2014).
  • L.-W. Wang, L. Bellaiche, S.-H. Wei, and A. Zunger "Majority representation of alloy electronic states", Phys. Rev. Lett. 80, 4725 (1998).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].