Skip to main content

DFT+U calculation

We will calculate the density of states for NiO with and without including Hubbard UU. We will start from the example input file for NiO (check work directory under OpenMX installation).

src/NiO/NiO.in
#      File Name
#

System.CurrrentDirectory ./ # default=./
System.Name nio
level.of.stdout 1 # default=1 (1-3)
level.of.fileout 1 # default=1 (1-3)
DATA.PATH /home/svu/slspkd/openmx3.9/DFT_DATA19


# Definition of Atomic Species
#

Species.Number 2
<Definition.of.Atomic.Species
Ni Ni6.0S-s2p2d2f1 Ni_CA19S
O O5.0-s2p2d1 O_CA19
Definition.of.Atomic.Species>

<Hubbard.U.values # eV
Ni 1s 0.0 2s 0.0 1p 0.0 2p 0.0 1d 5.0 2d 0.0 1f 0.0
O 1s 0.0 2s 0.0 1p 0.0 2p 0.0 1d 0.0
Hubbard.U.values>

<Hund.J.values # eV
Ni 1s 0.0 2s 0.0 1p 0.0 2p 0.0 1d 0.5 2d 0.0 1f 0.0
O 1s 0.0 2s 0.0 1p 0.0 2p 0.0 1d 0.0
Hund.J.values>


# Atoms
#

Atoms.Number 4
Atoms.SpeciesAndCoordinates.Unit AU # Ang|AU
<Atoms.SpeciesAndCoordinates
1 Ni 0.0 0.0 0.0 9.5 6.5 off
2 Ni 3.94955 3.94955 0.0 6.5 9.5 off
3 O 3.94955 0.0 0.0 3.0 3.0 off
4 O 3.94955 3.94955 3.94955 3.0 3.0 off
Atoms.SpeciesAndCoordinates>
Atoms.UnitVectors.Unit AU # Ang|AU
<Atoms.UnitVectors
7.89910 3.94955 3.94955
3.94955 7.89910 3.94955
3.94955 3.94955 7.89910
Atoms.UnitVectors>


# SCF or Electronic System
#

scf.XcType LSDA-CA # LDA|LSDA-CA|GGA-PBE

# DFT+U part #
scf.Hubbard.U On # On|Off, default=off
scf.Hubbard.Occupation dual # onsite|full|dual, default=dual
scf.DFTU.Type 2 # 1:Simplified(Dudarev)|2:General, default=1
scf.dc.Type sFLL # sFLL|sAMF|cFLL|cAMF, default=sFLL
scf.Slater.Ratio 0.625 # default=0.625
scf.Yukawa off # default=off
scf.SpinPolarization On # On|Off
scf.ElectronicTemperature 300.0 # default=300 (K)
scf.energycutoff 150.0 # default=150 (Ry)
scf.maxIter 200 # default=40
scf.EigenvalueSolver band # Recursion|Cluster|Band
scf.Kgrid 6 6 6 # means 4x4x4
scf.Mixing.Type rmm-diis # Simple|Rmm-Diis|Gr-Pulay
scf.Init.Mixing.Weight 0.20 # default=0.30
scf.Min.Mixing.Weight 0.01 # default=0.001
scf.Max.Mixing.Weight 0.30 # default=0.40
scf.Kerker.factor 1.00 # default=1.00
scf.Mixing.History 5 # default=5
scf.Mixing.StartPulay 6 # default=6
scf.criterion 1.0e-7 # default=1.0e-6 (Hartree)


# MD or Geometry Optimization
#

MD.Type nomd # Nomd|Opt|DIIS|NVE|NVT_VS|NVT_NH
MD.maxIter 1 # default=1
MD.TimeStep 0.05 # default=0.5 (fs)
MD.Opt.criterion 1.0e-4 # default=1.0e-4 (Hartree/bohr)


# Band dispersion
#

Voronoi.Charge on

Band.dispersion off # on|off, default=off
# if <Band.KPath.UnitCell does not exist,
# the reciprical lattice vector is employed.
Band.Nkpath 1
<Band.kpath
25 0.0 0.0 0.5 0.0 0.5 0.5 Z K
Band.kpath>


# MO output
#

MO.fileout off # on|off
num.HOMOs 1 # default=1
num.LUMOs 1 # default=1
MO.Nkpoint 1 # default=1
<MO.kpoint
0.0 0.0 0.0
MO.kpoint>


# DOS and LDOS
#

Dos.fileout on # on|off , default=off
Dos.Erange -10.0 10.0 # default = -20 20
Dos.Kgrid 9 9 9 # default = Kgrid1 Kgrid2 Kgrid3


# output Hamiltonian and overlap
#

HS.fileout off # on|off, default=off
note

If the initial spin configuration is unpolarized for LDA+U calculations, it is required to provide the switch for enhancement of orbital polarization in the LDA+U method in the last column of Atoms.SpeciesAndCoordinates, on means that the enhancement is made, off means no enhancement.

Here we compare the density of states with and without considering electronic correlation.

nio-dos
tip

If you have difficulty with SCF convergence, you might try

scf.Mixing.Type Rmm-Diish

which is suitable for the plus U method and the constraint schemes. Find more details here.