VASP计算载流子浓度

1、原理:载流子浓度=载流子总数的可能最大值载流子出现概率参考这里

2、计算细节,先对材料算结构优化,然后做单点能计算输出电荷密度,最后做非自洽计算输出DOS

非自洽计算输出DOS看这里

Global Parameters
ISTART =  1            (Read existing wavefunction, if there)
ISPIN  =  1            (Non-Spin polarised DFT)
ICHARG =  11         (Non-self-consistent: GGA/LDA band structures)
LREAL  = Auto       (Projection operators: automatic)
ENCUT  =  450        (Cut-off energy for plane wave basis set, in eV)
PREC   =  Accurate   (Precision level: Normal or Accurate, set Accurate when perform structure lattice relaxation calculation)
LWAVE  = .F.        (Write WAVECAR or not)
LCHARG = .F.        (Write CHGCAR or not)
ADDGRID= .TRUE.        (Increase grid, helps GGA convergence)
# LVTOT  = .TRUE.      (Write total electrostatic potential into LOCPOT or not)
# LVHAR  = .TRUE.      (Write ionic + Hartree electrostatic potential into LOCPOT or not)
# NELECT =             (No. of electrons: charged cells, be careful)
# LPLANE = .TRUE.      (Real space distribution, supercells)
# NWRITE = 2           (Medium-level output)
# KPAR   = 2           (Divides k-grid into separate groups)
# NGXF    = 300        (FFT grid mesh density for nice charge/potential plots)
# NGYF    = 300        (FFT grid mesh density for nice charge/potential plots)
# NGZF    = 300        (FFT grid mesh density for nice charge/potential plots)
NCORE = 4
IVDW = 11
 
Electronic Relaxation
ISMEAR =  -5            (Gaussian smearing, metals:1)
SIGMA  =  0.05         (Smearing value in eV, metals:0.2)
NELM   =  200           (Max electronic SCF steps)
NELMIN =  6            (Min electronic SCF steps)
EDIFF  =  1E-06        (SCF energy convergence, in eV)
# GGA  =  PS           (PBEsol exchange-correlation)
 
Ionic Relaxation
NSW    =  0          (Max ionic steps)
IBRION =  -1            (Algorithm: 0-MD, 1-Quasi-New, 2-CG)
ISIF   =  3            (Stress/relaxation: 2-Ions, 3-Shape/Ions/V, 4-Shape/Ions)
EDIFFG = -0.02        (Ionic convergence, eV/AA)
# ISYM =  2            (Symmetry: 0=none, 2=GGA, 3=hybrids)

NEDOS = 1500
#LORBIT = 11

#LSCALAPACK = .FALSE.
IOPTCELL = 1 1 0 1 1 0 0 0 0

#NELECT=92.8   #94

#AMIX = 0.05
#BMIX = 0.0001

2.1 载流子计算脚本

##载流子计算脚本20251204

import numpy as np

kb = 8.617333e-5          # eV K⁻¹

T  = 300                  # K

S  = 17.3*4                # 单胞面积 Ų,改为自己数值

EF=-0.0881  #费米能级

EC=0-EF #导带底相对费米能级

EV=3.1000-EF #价带顶底相对费米能级

dos= np.loadtxt(‘DOSCAR’, skiprows=6)

E   = dos[:,0] – EF       # 能量轴,E=0 为 费米能级

tdos= dos[:,1]            # 总 DOS

de = E[1]-E[0]               # DOSCAR 能量步长

f = lambda e: 1/(np.exp(e/kb/T)+1)

n = np.trapz(tdos[EC>=0],f(E[EC>=0]))/S*1e16

p =np.trapz(tdos[EV<=0]*(1-f(E[EV<=0])))/S*1e16

print(‘n = {:.2e} cm⁻²’.format(n))

print(‘p = {:.2e} cm⁻²’.format(p))