We will take the antiferromagnetic state of FeO
We need 3 input files, 2 pseudopotentials and a script
algerien1970@linux-wipm:~/abinitio/QE-tutorials/DFT+U> ls
Fe.pbesol-spn-kjpaw_psl.0.2.1.UPF O.pbesol-n-kjpaw_psl.0.1.UPF plot_pdos.gnu projwfc.FeO.in pw.FeO.nscf.in pw.FeO.scf.in
pw.FeO.scf.in
&control
calculation='scf'
restart_mode='from_scratch',
prefix='FeO'
pseudo_dir = './'
outdir='./tmp/'
verbosity='high'
/
&system
ibrav = 0,
celldm(1) = 8.19,
nat = 4,
ntyp = 3,
ecutwfc = 30.0,
ecutrho = 240.0,
occupations = 'smearing',
smearing = 'mv',
degauss = 0.02,
nspin = 2,
starting_magnetization(1) = 0.5,
starting_magnetization(2) = -0.5
lda_plus_u = .true.,
lda_plus_u_kind = 0,
U_projection_type = 'atomic',
Hubbard_U(1) = 1.d-8
Hubbard_U(2) = 1.d-8
/
&electrons
conv_thr = 1.d-9
mixing_beta = 0.3
/
ATOMIC_SPECIES
Fe1 55.845 Fe.pbesol-spn-kjpaw_psl.0.2.1.UPF
Fe2 55.845 Fe.pbesol-spn-kjpaw_psl.0.2.1.UPF
O 16.0 O.pbesol-n-kjpaw_psl.0.1.UPF
CELL_PARAMETERS {alat}
0.50 0.50 1.00
0.50 1.00 0.50
1.00 0.50 0.50
ATOMIC_POSITIONS {crystal}
Fe1 0.00 0.00 0.00
Fe2 0.50 0.50 0.50
O 0.25 0.25 0.25
O 0.75 0.75 0.75
K_POINTS {automatic}
3 3 3 0 0 0
pw.FeO.nscf.in modified pw.FeO.scf.in file
&control
calculation='nscf'
.
Hubbard_U(1) = 1.d-8
Hubbard_U(2) = 1.d-8
nbnd = 35
.
K_POINTS {automatic}
6 6 6 0 0 0
projwfc.FeO.in
&projwfc
prefix='FeO'
outdir='./tmp/'
ngauss = 0,
degauss = 0.005,
Emin = -15.0,
Emax = 30.0,
DeltaE = 0.01
/
Script plot_pdos.gnu
set terminal post eps enhanced solid color "Helvetica" 20
set arrow from 0, 0 to 0, 4.4 nohead
set output "FeO_PDOS.eps"
set xrange [-10:8]
set yrange [0:5]
set xtics -10, 2, 8
set ytics 0, 1, 5
set xlabel "E - Ef (eV)"
set ylabel "PDOS (states/eV/atom)"
plot "FeO.pdos_atm#1(Fe1)_wfc#5(d)" u ($1-13.7042):($2) w l lw 2 title 'Fe-3d (majority spin)', \
"FeO.pdos_atm#2(Fe2)_wfc#5(d)" u ($1-13.7042):($2) w l lw 2 title 'Fe-3d (minority spin)', \
"FeO.pdos_atm#3(O)_wfc#2(p)" u ($1-13.7042):($2) w l lw 2 title ' O-2p'
Fe.pbesol-spn-kjpaw_psl.0.2.1.UPF
You can download the file using the following command
$ wget https://www.quantum-espresso.org/upf_files/Fe.pbesol-spn-kjpaw_psl.0.2.1.UPF --no-check-certificate
or from Reference
O.pbesol-n-kjpaw_psl.0.1.UPF
You can download the file using the following command
$ wget https://www.quantum-espresso.org/upf_files/O.pbesol-n-kjpaw_psl.0.1.UPF --no-check-certificate
or from Reference
1. Standard DFT case
Perform a SCF calculation using pw.x
algerien1970@linux-wipm:~/abinitio/QE-tutorials/DFT+U> pw.x < pw.FeO.scf.in |tee pw.FeO.scf.out
Perform a NSCF calculation using pw.x
algerien1970@linux-wipm:~/abinitio/QE-tutorials/DFT+U> pw.x < pw.FeO.nscf.in |tee pw.FeO.nscf.out
Perform a calculation of PDOS using projwfc.x
algerien1970@linux-wipm:~/abinitio/QE-tutorials/DFT+U> projwfcw.x < projwfc.FeO.in |tee projwfc.FeO.out
Plot PDOS using the script for gnuplot
gnuplot> load "plot_pdos.gnu"
2. DFT+U case
Modify input files pw.FeO.scf.in and pw.FeO.nscf.in by setting the following:
Hubbard_U(1) = 5.2
Hubbard_U(2) = 5.2
Here, Hubbard_U(1) and Hubbard_U(2) are the Hubbard parameters for Fe1-3d and Fe2-3d states (in eV).
The value of U = 5.2 eV was chosen for demonstration purposes; Hubbard U can be computed ab initio (see e.g. PRB 98, 085127 (2018)).
pw.FeO.nscf.in and pw.FeO.scf.in files
U_projection_type = 'atomic',
Hubbard_U(1) = 5.2
Hubbard_U(2) = 5.2
Repeat all steps as in 1), and ultimately determine PDOS in the DFT+U case.
Note: change the value of the Fermi energy in "plot_pdos.gnu", you can
find the value of the Fermi energy at the end of the file
pw.FeO.scf.out.
the Fermi energy is 13.8742 ev
! total energy = -735.17461423 Ry
total all-electron energy = -5385.550636 Ry
estimated scf accuracy < 5.1E-10 Ry
smearing contrib. (-TS) = 0.00000000 Ry
internal energy E=F+TS = -735.17461423 Ry
Script plot_pdos.gnu
plot "FeO.pdos_atm#1(Fe1)_wfc#5(d)" u ($1-13.8742):($2) w l lw 2 title 'Fe-3d (majority spin)', \
"FeO.pdos_atm#2(Fe2)_wfc#5(d)" u ($1-13.8742):($2) w l lw 2 title 'Fe-3d (minority spin)', \
"FeO.pdos_atm#3(O)_wfc#2(p)" u ($1-13.8742):($2) w l lw 2 title ' O-2p'
The solution with DFT+U is also metallic...
3. DFT+U case (with the starting_ns_eigenvalue option)
Modify the input file pw.FeO.scf.in by setting the following:
starting_ns_eigenvalue(5,2,1) = 1.0
starting_ns_eigenvalue(5,1,2) = 1.0
pw.FeO.nscf.in and pw.FeO.scf.in files
Hubbard_U(1) = 5.2
Hubbard_U(2) = 5.2
starting_ns_eigenvalue(5,2,1) = 1.0
starting_ns_eigenvalue(5,1,2) = 1.0
Repeat all steps as in 1), and ultimately determine PDOS in the DFT+U case
(with the starting_ns_eigenvalue option).
Note: change the value of the Fermi energy in "plot_pdos.gnu",
you can find the value of the Fermi energy at the end of the file pw.FeO.scf.out.
The solution with DFT+U is insulating
Reference: https://gitlab.com/QEF/material-for-ljubljana-qe-summer-school/-/tree/master/Day-2
algerien1970@linux-wipm:~/abinitio/QE-tutorials/material-for-ljubljana-qe-summer-school-master/Day-2> ls
example1.relax example2.vc-relax example3.neb example4.functionals example5.pwtk handson-day2-functionals.pdf handson-day2.pdf README.md
algerien1970@linux-wipm:~/abinitio/QE-tutorials/material-for-ljubljana-qe-summer-school-master/Day-2/example4.functionals/ex1.DFT+U> ls
plot_pdos.gnu projwfc.FeO.in pw.FeO.nscf.in pw.FeO.scf.in README.md reference
0 Comments