How do we evaluate band edge positions (vs NHE) from VASP band structure calculations for bulk and slab?
Dear Shweta,
To evaluate the band edge positions vs NHE from VASP band structure calculations for both bulk/slab structures follow these steps:
*Using VASP
Perform a self-consistent field (SCF) calculation using INCAR, KPOINTS, POSCAR, and POTCAr files.
Run a non-self-consistent field calculation to obtain the band structure.
**Determine the Band Edges
From the EIGENVAL/PROCAR file, extract the valence band maximum and conduction band minimum.
***Align the Energy Levels to the Vacuum Level
For bulk calcs: The absolute position of the VBM and CBM needs to be referenced relative to an external standard such as the vacuum level.
For slab ones: The vacuum potential can be obtained from the planar-averaged electrostatic potential (LOCPOT).
Important is to:
£ Extract the macroscopic average of the electrostatic potential across the slab.
££Define the vacuum level as the highest potential far from the slab.
To cmpute the energy alignment:
E_(VBM/CBM}^{absolute} = E_{VBM/CBM}^{VASP} - E_{Fermi} + E_{vacuum}
****Convert to the normal Hydrogen electrode scale
£The vacuum level is referenced as 0 eV, and the NHE reference level is -4.44 eV relative to vacuum.
£Convert the band edge positions to NHE via
E_{VBM/CBM}^{NHE} = E_{VBM/CBM)}^{abs} + 4.44 eV
***** If necessary, apply GGA+U or hybrid functionals (HSE06) to improve accuracy.
PS: Now, If you want to obtain similar plots:
!!! Extract Band Edges from VASP using the DOSCAR or EIGENVAL file to determine the CBM and VBM energies.
!!! Align them to the vacuum level using the macroscopic electrostatic potential from LOCpot in slab calculations.
!!! Convert to NHE Scale using following formulae
E_{NHE] = E_{vacuum} + 4.44 eV
Meanwhile, check please following script on Python for instance:
import numpy as np
import matplotlib.pyplot as plt
from pymatgen.io.vasp import Vasprun, Locpot
# Constants
NHE_SHIFT = 4.44
FERMI_REFERENCE = 0
# Load data from VASP output files
vasprun = Vasprun("vasprun.xml") # Band structure and DOS Nfo
locpot = Locpot.from_file("LOCPOT") # Electrostatic pot data
# Extract VBM and CBM
band_gap_data = vasprun.get_band_structure()
vbm = band_gap_data.get_vbm()["energy"]
cbm = band_gap_data.get_cbm()["energy"]
# Extract the vacuum level from LOCPOT
avg_potential = np.mean(locpot.data[0]) # Macroscopic average of potential
vacuum_level = max(avg_potential) # Maximum potential far from the slab
# Compute absolute band edge positions
vbm_absolute = vbm - vasprun.efermi + vacuum_level
cbm_absolute = cbm - vasprun.efermi + vacuum_level
# Convert to NHE scale
vbm_nhe = vbm_absolute + NHE_SHIFT
cbm_nhe = cbm_absolute + NHE_SHIFT
# PrResults
print(f"VBM (vs. NHE): {vbm_nhe:.2f} eV")
print(f"CBM (vs. NHE): {cbm_nhe:.2f} eV")
# Visualise
materials = ["#Material"]
band_edges = [(vbm_nhe, cbm_nhe)]
colors = ['blue', 'red']
fig, ax = plt.subplots(figsize=(8, 5))
for i, (vbm, cbm) in enumerate(band_edges):
ax.plot([i, i], [vbm, cbm], color="black", linewidth=2)
ax.scatter([i], [vbm], color=colors[0], label="Valence Band Edge" if i == 0 else "")
ax.scatter([i], [cbm], color=colors[1], label="Conduction Band Edge" if i == 0 else "")
# Reference lines fi
ax.axhline(y=0, color="green", linestyle="--", label="H₂/H₂O Level (0 eV)")
ax.axhline(y=1.23, color="purple", linestyle="--", label="O₂/H₂O Level (~1.23 eV)")
ax.set_xticks(range(len(materials)))
ax.set_xticklabels(materials, rotation=45)
ax.set_ylabel("Energy (eV vs. NHE)")
ax.set_title("Band Edge Positions vs. NHE")
ax.legend()
ax.grid(True)
plt.show()
Hope it helps 🙂
Dear Kostadin,
Thank you so much for your detailed answer and sharing the script. It is indeed helpful.
Could you please explain more for the bulk system? What is meant by referencing "relative to an external standard such as the vacuum level"?
This larva was captured using a plankton net in the Persian Gulf during the summer. I believe it may be a Facetotecta nauplius.
08 August 2024 3,746 4 View
I am using CuBr/THPTA for a click reaction in total cell lysates. I am facing issues with my protein sample in non-reducing SDS-PAGE where it's not migrating properly and most of it remains at the...
29 July 2024 950 4 View
We are working on a robot that cleans solar panels using fresh water supply and a rotating brush. We are trying to conserve as much water at possible by recycling the dirty water that is collected...
28 July 2024 5,778 2 View
Is it the best optimization ratio based on experiments?
22 July 2024 8,170 0 View
Can diamond be grown using molecular beam epitaxy?
22 July 2024 9,755 2 View
Hello everyone, I am new to LabVIEW, right now we need to control the movement of an ethernet-based stage drive. We got the sample code from a collaborator but their instrument is USB-based, so we...
11 July 2024 5,385 2 View
Hi everybody, We are trying to write a systematic review meta-analysis paper. But I could find 19 references. I think 19 references are not enough to do a meta-analysis section and it is better to...
10 July 2024 5,490 5 View
I have attached pics of the SH-SY5Y cells within a seeded plate after reaching >80-90% confluence. Are these dark clumps of multiple growing cell layers? Or dead cells? Any clue? many thanks.
01 July 2024 8,361 3 View
I have my RNA samples eluted in nuclease-free water. But now I want to store it for a longer period. Can I add isopropanol directly to my samples to store it without doing a second round of TriZol...
23 June 2024 2,576 4 View
I'm simulating a metamaterial unit cell. I want to plot Frequency Vs Phase Response. Also I want to extract permeability and permittivity. Kindly share the steps.
23 June 2024 3,446 1 View
Hi, Recently I was running VASP to calculate the spontaneous polarization of my alloy structure. I followed the instructions in this PDF wrote by Dr. Nabin (Nabaraj) Pokhrel, below is my INCAR...
07 August 2024 486 5 View
I have modelled a steel structure using beam elements in Abaqus and attached to this structure reinforced concrete slab. The analysis that I am making is heat transfer of the structure. The...
07 August 2024 1,028 0 View
I am attempting to conjugate PEG to an amino acid at the C-terminus, for the purposes of producing nanoparticles. I have been told that PEG modified with amine groups can be used for this purpose,...
31 July 2024 2,033 1 View
Dear all! Oxygen vacancies do raise negatively the Fermi level by increasing the negative charge in the semiconductor crystal structure. In the case of n-type semiconductors, I wonder if this...
30 July 2024 8,339 2 View
My photocatalyst from solid waste red med. Dye is methylene blue My all parameter study is showing zero order. How to prove it further that the reaction in zero order?
29 July 2024 7,404 1 View
Sure, here is the translation: I have a 3D orthogonal woven composite structure where warp, weft, and binder yarns are oriented in three directions. After modeling these yarns and the matrix in...
28 July 2024 8,169 0 View
How to build a heterostructure in VESTA/VASP of two pristine materials having different space group and structure?
27 July 2024 739 2 View
The catalytic effect of retained austenite refers to the phenomenon wherein quenching steels with a small amount of retained austenite, when subjected to tempering at a specific temperature...
27 July 2024 8,508 0 View
Hey All! I am wondering what might be wrong with my band structure. I did the calculations using VASP and plotted the results using Origin. Although I have tried changing various input...
25 July 2024 2,920 11 View
Do You Believe VP Harris Would Show Empathy to Tech Companies in Her Administration as POTUS? I ask in light of the fact that, the ACP was not re-funded this round. So many and businesses need...
24 July 2024 4,732 3 View