||
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states关注:
1) 大部分疑问其实都来自于对物理概念的缺乏深入理解
2) GW0、GW、G0W0方法的区别
3)GW0方法计算态密度和能带结构的步骤与常规方法计算步骤的异同
http://blog.sciencenet.cn/blog-567091-675253.html
Comments:
前三步(DFT、virtual bands、GW0)相当于常规态密度、能带结构计算前的自洽运算,后两步为非自洽的态密度计算(LORBIT = 11)和能带结构计算(LWANNIER90_RUN = .TRUE. ,得到wannier函数)。
脚本:
################## step 1: a DFT groundstate calculation ###################
cat > INCAR << EOF
System = SrVO3-dft
NBANDS = 48
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
EDIFF = 1E-8 # high precision for groundstate calculation
#KPAR = 3
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01
####################################### step 2: obtain DFT virtual orbitals and analysize dielectric function #####################
cat > INCAR << EOF
System = SrVO3-get virtual orbitalss
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
ALGO = Exact ; NELM = 1 # exact diagonalization one step suffices,NELM default
EDIFF = 1E-8 # high precision for groundstate calculation
NBANDS = 48 # need for a lot of bands in GW ( how to determine the value of NBANDS?)
LOPTICS = .TRUE. # This is new we need d phi/ d k for GW calculations
#KPAR = 3
EOF
#参数说明:For ALGO=GW and ALGO=GW0 the orbitals of the previous groundstate calculations are maintained, and single shot GW calculations are performed. If NELM is set as well, several iterations are performed, and the eigenvalues are updated in the calculation of G (ALGO=GW0) or W and G (ALGO=GW).
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp WAVECAR WAVECAR.LOPTICS
cp WAVEDER WAVEDER.LOPTICS
cp OUTCAR OUTCAR-02
cp STDOUT STDOUT-02
## 2-1: analysis dielectric function ##
./plotoptics2
cp imag.dat imag-dft2.dat
cp real.dat real-dft2.dat
plotoptics2文件内容:从vasprun.xml中提取数据与绘图
cat plotoptics2
awk 'BEGIN{i=1} /imag/,\
/\/imag/ \
{a[i]=$2 ; b[i]=$3 ; i=i+1} \
END{for (j=12;j<i-3;j++) print a[j],b[j]}' vasprun.xml > imag.dat
awk 'BEGIN{i=1} /real/,\
/\/real/ \
{a[i]=$2 ; b[i]=$3 ; i=i+1} \
END{for (j=12;j<i-3;j++) print a[j],b[j]}' vasprun.xml > real.dat
cat >plotfile<<!
# set term postscript enhanced eps colour lw 2 "Helvetica" 20
# set output "optics.eps"
plot [0:25] "imag.dat" using (\$1):(\$2) w lp, "real.dat" using (\$1):(\$2) w lp
!
gnuplot -persist plotfile
# rm imag.dat real.dat plotfile
# #######################step 3: GW0 + WANNIER90 #################################
cat > INCAR << EOF
System = SrVO3-gw0
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = GW0 #
NELM = 1 # one step so this is really G0W0,not G2W0 or GW
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 50 # for metal, we need a lot of frequency points;NOMEGA = 200
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid, for accuarate, comment out this iterm.
#KPAR = 3
EOF
cp WAVECAR.LOPTICS WAVECAR
cp WAVEDER.LOPTICS WAVEDER
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-03
cp STDOUT STDOUTi03
# #######################step 3.1: Analysis of the DOS #################################
cat > INCAR << EOF
System = SrVO3-gw0-dos
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = none #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 200 # metal, we need a lot of frequency points
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid
#KPAR = 3
LORBIT = 11 # for DOS
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-03
cp STDOUT STDOUTi-03
# giving total.dat
./plotdos
mv total.dat total-dos-afterGW0.dat
分割DOSCAR数据并通过gnuplot绘图【GW计算后会更新DOSCAR吗】
cat plotdos
head -1006 DOSCAR | tail -1000 > total.dat
head -2007 DOSCAR | tail -1000 > Sr.dat
head -3008 DOSCAR | tail -1000 > V.dat
head -4009 DOSCAR | tail -1000 > O1.dat
head -5010 DOSCAR | tail -1000 > O2.dat
tail -1000 DOSCAR > O3.dat
cat >plotfile<<!
plot \
"total.dat" using (\$1):(\$2) with lines title "total", \
"V.dat" using (\$1):(\$6+\$7+\$9) with lines title "V t2g", \
"V.dat" using (\$1):(\$8+\$10) with lines title "V eg"
!
gnuplot -persist plotfile
##3.2: analysis of the dielectric function ###
./plotchi
mv chi0.dat chi0-real-aftergw.dat
mv chi.dat chi-image-aftergw.dat
从OUTCAR中提取数据并绘图
cat plotchi
awk 'BEGIN{i=1} /HEAD OF MICRO/,\
/XI_LOCAL/ \
{if ($4=="dielectric") {a[i]=$1 ; b[i]=$2 ; c[i]=$3 ; i=i+1}} \
END{for (j=1;j<i;j++) print a[j],b[j],c[j]}' OUTCAR > chi0.dat
awk 'BEGIN{i=1} /INVERSE MACRO/,\
/XI_TO_W/ \
{if ($4=="dielectric") {a[i]=$1 ; b[i]=$2 ; c[i]=$3 ; i=i+1}} \
END{for (j=1;j<i;j++) print a[j],b[j],c[j]}' OUTCAR > chi.dat
cat >plotfile<<!
# set term postscript enhanced eps colour lw 2 "Helvetica" 20
# set output "optics.eps"
plot "chi0.dat" using (\$1):(\$2) w lp lt -1 lw 2 pt 4 title "chi0 real", \
"chi0.dat" using (\$1):(-\$3) w lp lt 0 lw 2 pt 4 title "chi0 imag", \
"chi.dat" using (\$1):(\$2) w lp lt 1 lw 2 pt 2 title "chi real", \
"chi.dat" using (\$1):(-\$3) w lp lt 0 lw 2 pt 2 lc 1 title "chi imag"
!
gnuplot -persist plotfile
# rm chi0.dat chi.dat plotfile
# #######################step 3.1: Analysis of gw band, by using LWANNIER90_RUN = .TRUE. #################################
cat > INCAR << EOF
System = SrVO3-gw0-band
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 uefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = none #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 200 # metal, we need a lot of frequency points
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid
#KPAR = 3
#LORBIT = 11
LWANNIER90_RUN = .TRUE. # for band calculation,通过VASP计算得带wannier函数
EOF
cat > wannier90.win << EOF
num_wann=24
num_bands=48
# for GW uncomment
exclude_bands 31-48
Begin Projections
Sc:l=0;l=1;l=2
H: l=0
End Projections
dis_froz_max=9
dis_num_iter=1000
guiding_centres=true
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01
cp wannier90_band.dat wannier90_band-gw.dat
完整脚本如下:
################## step 1: a DFT groundstate calculation , and get DOS and band ###################
cat > INCAR << EOF
System = SrVO3-dft
NBANDS = 48
ISMEAR = -5
NEDOS = 1000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
EDIFF = 1E-8 # high precision for groundstate calculation
#KPAR = 3
ENCUT = 400
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01
####################################### step 2: obtain DFT virtual orbitals and analysize dielectric function #####################
cat > INCAR << EOF
System = SrVO3-get virtual orbitalss
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
ALGO = Exact ; NELM = 1 # exact diagonalization one step suffices,NELM default
EDIFF = 1E-8 # high precision for groundstate calculation
NBANDS = 48 # need for a lot of bands in GW ( how to determine the value of NBANDS?)
LOPTICS = .TRUE. # This is new we need d phi/ d k for GW calculations
#KPAR = 3
ENCUT = 400
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp WAVECAR WAVECAR.LOPTICS
cp WAVEDER WAVEDER.LOPTICS
cp OUTCAR OUTCAR-02
cp STDOUT STDOUT-02
# #######################step 3: GW0 + WANNIER90 #################################
cat > INCAR << EOF
System = SrVO3-gw0
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = GW0 #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 200 # metal, we need a lot of frequency points
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid, for accuarate, comment out this iterm.
#KPAR = 3
ENCUT = 400
EOF
cp WAVECAR.LOPTICS WAVECAR
cp WAVEDER.LOPTICS WAVEDER
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-03
cp STDOUT STDOUTi-03
# #######################step 3.1: Analysis of the DOS #################################
cat > INCAR << EOF
System = SrVO3-gw0-dos
ISMEAR = -5
NEDOS = 1000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = none #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 200 # metal, we need a lot of frequency points
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid
#KPAR = 3
LORBIT = 11 # for DOS
ENCUT = 400
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-03
cp STDOUT STDOUTi-03
# giving total.dat
./plotdos
mv total.dat total-dos-afterGW0.dat
# #######################step 3.1: Analysis of gw band, by using LWANNIER90_RUN = .TRUE. #################################
cat > INCAR << EOF
System = SrVO3-gw0-band
ISMEAR = -5
NEDOS = 1000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 96 # need for a lot of bands in GW
ALGO = none #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 50 # metal, we need a lot of frequency points,NOMEGA = 200
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid
#KPAR = 3
#LORBIT = 11
LWANNIER90_RUN = .TRUE. # for band calculation
ENCUT = 400
EOF
cat > wannier90.win << EOF
num_wann=24
num_bands=48
# for GW uncomment
exclude_bands 31-48
Begin Projections
Sc:l=0;l=1;l=2
H: l=0
End Projections
dis_froz_max=9
dis_num_iter=1000
guiding_centres=true
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01
cp wannier90_band.dat wannier90_band-gw.dat
完整脚本如下:
################## step 1: a DFT groundstate calculation , and get DOS and band ###################
cat > INCAR << EOF
System = SrVO3-dft
NBANDS = 48
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
EDIFF = 1E-8 # high precision for groundstate calculation
#KPAR = 3
ENCUT = 400
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01
####################################### step 2: obtain DFT virtual orbitals and analysize dielectric function #####################
cat > INCAR << EOF
System = SrVO3-get virtual orbitalss
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
ALGO = Exact ; NELM = 1 # exact diagonalization one step suffices,NELM default
EDIFF = 1E-8 # high precision for groundstate calculation
NBANDS = 48 # need for a lot of bands in GW ( how to determine the value of NBANDS?)
LOPTICS = .TRUE. # This is new we need d phi/ d k for GW calculations
#KPAR = 3
ENCUT = 400
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp WAVECAR WAVECAR.LOPTICS
cp WAVEDER WAVEDER.LOPTICS
cp OUTCAR OUTCAR-02
cp STDOUT STDOUT-02
# #######################step 3: GW0 + WANNIER90 #################################
cat > INCAR << EOF
System = SrVO3-gw0
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = GW0 #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 200 # metal, we need a lot of frequency points
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid, for accuarate, comment out this iterm.
#KPAR = 3
ENCUT = 400
EOF
cp WAVECAR.LOPTICS WAVECAR
cp WAVEDER.LOPTICS WAVEDER
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-03
cp STDOUT STDOUTi-03
# #######################step 3.1: Analysis of the DOS #################################
cat > INCAR << EOF
System = SrVO3-gw0-dos
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = none #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 200 # metal, we need a lot of frequency points
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid
#KPAR = 3
LORBIT = 11 # for DOS
ENCUT = 400
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-03
cp STDOUT STDOUTi-03
# giving total.dat
./plotdos
mv total.dat total-dos-afterGW0.dat
# #######################step 3.1: Analysis of gw band, by using LWANNIER90_RUN = .TRUE. #################################
cat > INCAR << EOF
System = SrVO3-gw0-band
ISMEAR = -5
NEDOS = 2000 # EMIN = -20 ; EMAX = 20 ; NEDOS = 1000 usefull energy range for density of states
NBANDS = 48 # need for a lot of bands in GW
ALGO = none #
NELM = 1 # one step so this is really G0W0
PRECFOCK = Fast # select fast mode for FFT's
ENCUTGW = 100 # energy cutoff for response function
NOMEGA = 50 # metal, we need a lot of frequency points,NOMEGA = 200
MAXMEM = 2500 # memory per core
#NKRED = 2 # sample down the GW to a coarse 2x2x2 grid
#KPAR = 3
#LORBIT = 11
LWANNIER90_RUN = .TRUE. # for band calculation
ENCUT = 400
EOF
cat > wannier90.win << EOF
num_wann=24
num_bands=30
# for GW uncomment
exclude_bands 31-48
Begin Projections
Sc:l=0;l=1;l=2
H: l=0
End Projections
dis_froz_max=9
dis_num_iter=1000
guiding_centres=true
EOF
# start calculation
$PARA -n $NP -machinefile .nodelists.$$ $EXEC > STDOUT
cp OUTCAR OUTCAR-01
cp STDOUT STDOUT-01
cp wannier90_band.dat wannier90_band-gw.dat
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-20 01:56
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社