Header Ads Widget

Ab initio Calculations Using Wien2k Code

Last Posts

10/recent/ticker-posts

LDA+U: NiO: NaCl structure, A-type AFM along [111]



   R-cell: 5.605236 5.605236 27.459934 bohr

  3 non-equivalent atoms: Ni1 (0,0,0), Ni2 (0.5,0.5,0.5), O ±(.25,.25,.25) (“add
2nd position” after first “save_structure”). View and understand the structure (Xcrysden)

  case.inst: flip spin for Ni2, make O “non-magnetic”; use 100k-points

  GGA calculations (save_lapw NiO_gga)

  GGA+U calculations (save_lapw NiO_gga+u)

     (use U=7eV, J=0; search the UG to understand case.inorb/indm)

  GGA+SO calculations (M=[111], without relativistic LO, Emax=5.0)

    after scf: x lapwdm –up –so (for :orb001 in NiO.scfdmup)

  GGA+U+SO calculations (cp NiO.indm NiO.indmc)

 compare DOS (total, Ni1, Ni2, O) for GGA and GGA+U

       - observe the change in gaps (exp: 4eV) and shift of Ni/O weights

       -  compare spin moments (GGA: 1.41; GGA+U: 1.76;   GGA+U+SO:1.76;GGA+SO: 1.41mB

       -  compare orbital moments for SO and SO+U calculations (0.12 and 0.09mB)

  try a TB-mBJ calculation for NiO (start new case, starting from GGA;
follow instructions given in P.Blaha‘s lecture) and compare gap/DOS



The following is based on the GGA+U+SO example of NiO on pdf page 17 (Exercise 7) in:

http://www.wien2k.at/reg_user/textbooks/WIEN2k_lecture-notes_2013/Exercises_13.pdf

Note: U = 7 eV*[(1 Ry)/(13.606 eV)] = 0.514 Ry

A session NiO_U_SO is created in w2web.  The attached files NiO_U_SO.struct, NiO_U_SO.inorb, and NiO_U_SO.indm are placed into the session directory.

The following is performed in a terminal.

username@computername:~/wiendata/NiO_U_SO$ cat $WIENROOT/VERSION
WIEN2k_14.2 (Release 15/10/2014)
username@computername:~/wiendata/NiO_U_SO$ ls
NiO_U_SO.indm  NiO_U_SO.inorb  NiO_U_SO.struct
username@computername:~/wiendata/NiO_U_SO$ init_lapw -s nn
 next is nn
 next is nn
>   nn    (17:35:58)  specify nn-bondlength factor: (usually=2) [and optionally dlimit, dstmax (about
  1.d-5, 20)]
2
 DSTMAX:   30.4805267400000    
 iix,iiy,iiz           5           5           5   28.0261800000000    
   28.0261800000000        137.299670000000    
 NAMED ATOM: Ni1       Z changed to IATNR+999 to determine equivalency
 NAMED ATOM: Ni2       Z changed to IATNR+999 to determine equivalency

    ATOM  1  Ni1        ATOM  3  O        
 RMT(  1)=2.08000 AND RMT(  3)=1.79000
 SUMS TO 3.87000  LT.  NN-DIST= 3.96350

    ATOM  2  Ni2        ATOM  3  O        
 RMT(  2)=2.08000 AND RMT(  3)=1.79000
 SUMS TO 3.87000  LT.  NN-DIST= 3.96350

    ATOM  3  O          ATOM  2  Ni2      
 RMT(  3)=1.79000 AND RMT(  2)=2.08000
 SUMS TO 3.87000  LT.  NN-DIST= 3.96350
NN ENDS
0.0u 0.0s 0:14.67 0.4% 0+0k 5792+56io 22pf+0w
-----> check in  NiO_U_SO.outputnn  for overlapping spheres,
       coordination and nearest neighbor distances
-----> continue with sgroup or edit the NiO_U_SO.struct file (c/e)
c
 next is sgroup
>   sgroup    (17:37:45) 0.0u 0.0s 0:00.00 0.0% 0+0k 0+8io 0pf+0w
  Names of point group: -3m1  -3 2/m 1    D3d
  Names of point group: -3m1  -3 2/m 1    D3d
  Names of point group: 3m1    3m1    C3v
NOTE: atom positions and space group operations
Number and name of space group: 166 (R -3 m)
-----> check in  NiO_U_SO.outputsgroup  for proper symmetry, compare
       with your struct file and later with  NiO_U_SO.outputs
       sgroup has also produced a new struct file based on your old one.
       If you see warnings above, consider to use the newly generated
       struct file, which you can view (edit) now.
-----> continue with symmetry (old case.struct) or use/edit NiO_U_SO.struct_sgroup ? (c/e)
c
 next is symmery
>   symmetry    (17:38:26) 0.0u 0.0s 0:00.04 0.0% 0+0k 1480+40io 6pf+0w
-----> check in  NiO_U_SO.outputs  the symmetry operations,
       the point symmetries and compare with results from sgroup
       if you find errors (often from rounding errors of positions), apply x patchsymm
-----> continue with lstart or edit the NiO_U_SO.struct_st file (c/e/x)
c
 next is lstart
 CREATE A NEW NiO_U_SO.inst FILE with PROPER ATOMS
 Eventually specify switches for instgen_lapw (or press ENTER):
 -up (default)   -dn   -nm (non-magnetic)   -ask
-ask
 3 Atoms found: Ni Ni O
generate atomic configuration for atom 1 : Ni
select spinpolarization up, dn or non-magnetic ( u, d, n )
u
generate atomic configuration for atom 2 : Ni
select spinpolarization up, dn or non-magnetic ( u, d, n )
d
generate atomic configuration for atom 3 : O
select spinpolarization up, dn or non-magnetic ( u, d, n )
n
>   lstart    (17:40:24)   SELECT XCPOT:
  recommended: PBE    [(13) GGA of Perdew-Burke-Ernzerhof 96]
               LDA    [( 5)]
               WC     [(11)  GGA of Wu-Cohen 2006]
               PBESOL [(19) GGA of Perdew etal. 2008]
13
  SELECT ENERGY to separate core and valence states:
  recommended: -6.0 Ry (check how much core charge leaks out of MT-sphere)
  ALTERNATIVELY: specify charge localization
  (between 0.97 and 1.0) to select core state
-6

Atomic configuration for atom: Ni1   Z= 28.00
          E-up(Ry)      E-dn(Ry)   Occupancy   q/sphere  core-state
  1S    -603.425524   -603.425569  1.00  1.00    1.0000  T
  2S     -72.164984    -72.084215  1.00  1.00    1.0000  T
  2P*    -62.937151    -62.877704  1.00  1.00    1.0000  T
  2P     -61.653166    -61.591728  2.00  2.00    1.0000  T
  3S      -8.232479     -8.066723  1.00  1.00    0.9993  T
  3P*     -5.425538     -5.262383  1.00  1.00    0.9977  F
  3P      -5.262711     -5.100862  2.00  2.00    0.9973  F
  3D*     -0.726885     -0.581696  2.00  2.00    0.9399  F
  3D      -0.709049     -0.564504  3.00  1.00    0.9410  F
  4S      -0.426995     -0.401169  1.00  1.00    0.2780  F

Atomic configuration for atom: O     Z=  8.00
          E-up(Ry)      E-dn(Ry)   Occupancy   q/sphere  core-state
  1S     -37.827277    -37.827277  1.00  1.00    1.0000  T
  2S      -1.760741     -1.760741  1.00  1.00    0.8897  F
  2P*     -0.665146     -0.665146  1.00  1.00    0.8076  F
  2P      -0.662461     -0.662461  1.00  1.00    0.8067  F
LSTART ENDS
0.5u 0.0s 1:12.74 0.8% 0+0k 1672+1320io 7pf+0w
-----> continue with kgen or edit the NiO_U_SO.inst file and rerun lstart (c/e)
c  
-----> in  NiO_U_SO.in1_st  select   RKmax ( usually 5.0 - 9.0 )
-----> in  NiO_U_SO.in2_st  select   LM's, GMAX and Fermi-Energy method
>   inputfiles prepared    (17:42:38) 
 inputfiles prepared
 next is kgen
>   kgen    (17:42:38)   NUMBER OF K-POINTS IN WHOLE CELL: (0 allows to specify 3 divisions of G)
100
 length of reciprocal lattice vectors:   1.314   1.314   1.314   4.642   4.642   4.642
  Shift of k-mesh allowed. Do you want to shift: (0=no, 1=shift)
1
          10  k-points generated, ndiv=           4           4           4
KGEN ENDS
0.0u 0.0s 0:57.10 0.0% 0+0k 1424+48io 4pf+0w
-----> check in  NiO_U_SO.klist  number of generated K-points
-----> continue with dstart or execute kgen again or exit (c/e/x)
c
 next is dstart
>   dstart  -p    (17:44:14) running dstart in single mode
DSTART ENDS
5.0u 0.0s 0:05.53 91.6% 0+0k 10112+1000io 29pf+0w
-----> check in  NiO_U_SO.outputd  if gmax > gmin, normalization
-----> new NiO_U_SO.in0 generated
-----> do you want to perform a spinpolarized calculation ? (n/y)
y
>   dstart -up  -p    (17:44:49) running dstart in single mode
DSTART ENDS
5.0u 0.0s 0:05.08 99.8% 0+0k 0+1000io 0pf+0w
>   dstart -dn  -p    (17:44:54) running dstart in single mode
DSTART ENDS
5.0u 0.0s 0:05.11 99.6% 0+0k 0+1000io 0pf+0w
-----> do you want to perform an antiferromagnetic calculation ? (N/y)
N
  init_lapw finished ok 
username@computername:~/wiendata/NiO_U_SO$ runsp_lapw
...
in cycle 9    ETEST: .0010829750000000   CTEST: .0082024
hup: Command not found.
 LAPW0 END
 LAPW1 END
 LAPW1 END
 LAPW2 END
 LAPW2 END
 CORE  END
 CORE  END
 MIXER END

>   stop
username@computername:~/wiendata/NiO_U_SO$ grep :MMI001 *
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.93531
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.90186
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.55076
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.48238
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.41731
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.40138
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.40257
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.40661
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.40871
NiO_U_SO.scfm::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.40871 => GGA: 1.41
username@computername:~/wiendata/NiO_U_SO$ save_lapw -d NiOnoU
...
username@computername:~/wiendata/NiO_U_SO$ runsp_lapw -orb
...
in cycle 7    ETEST: .0026569200000000   CTEST: .0067839
hup: Command not found.
 LAPW0 END
 ORB   END
 ORB   END
 LAPW1 END
 LAPW1 END
 LAPW2 END
 LAPW2 END
LAPWDM END
LAPWDM END
 CORE  END
 CORE  END
 MIXER END

>   stop
username@computername:~/wiendata/NiO_U_SO$ grep :MMI001 *
grep: NiOnoU: Is a directory
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.40883
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.46769
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.58544
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.76657
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75541
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.76047
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75634
NiO_U_SO.scfm::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75634 => GGA+U: 1.76
username@computername:~/wiendata/NiO_U_SO$ save_lapw -d NiOU
...
username@computername:~/wiendata/NiO_U_SO$ initso_lapw

The file NiO_U_SO.in2c has been generated automatically

---->Please select the direction of the moment ( h k l )
               (For R-lattice in R coordinates)(default 0 0 1): 1 1 1
atom 1 is Ni1
atom 2 is Ni2
atom 3 is O

Select  atom-numbers (1,2,3) or "ranges of atoms" (1-3,9-12) (without blanks)
for which you would NOT like to add SO interaction
 (default none, just press "enter" ):

For large spin orbit effects it might be necessary to include many more
eigenstates from lapw1 by increasing EMAX in case.in1(c).

---->Please enter EMAX(default 5.0 Ryd): 5

The radial basis set for heavy atoms with p-semicore states is very
limited. One can improve this by adding RLOs. Note: you MUST NOT add
RLOs for atoms like oxygen,.... therefore the default is set to NONE
---->Add RLO for NONE, ALL, CHOOSE elements? (N/a/c) : N
 Check the generated NiO_U_SO.inso file (RLOs,...)
 Check the generated NiO_U_SO.in1 file (Emax at the bottom of the file)

In spinpolarized case SO may reduce symmetry.

The program symmetso detects the proper symmetry and creates new struct and
input files. (Note, equivalent atoms could become inequivalent in some cases).

Do you have a spinpolarized case (and want to run symmetso) ? (y/N)y
0.2u 0.0s 0:00.32 81.2% 0+0k 1768+4584io 7pf+0w
 A new structure for SO calculations has been created (_so).
 If you commit it will create new  NiO_U_SO.struct, in1(c), in2c, inc,
 clmsum/up/dn, vspup/dn and vnsup/dn files. (Please SAVE any previous
 calculations)

NOTE: Files for -orb (NiO_U_SO.indm(c),inorb,dmatup/dn) must be adapted manually
Do you want to use the new structure for SO calculations ? (y/N)y

 We run KGEN to generate a new kmesh for the SO calculation:

Number of Kpoint in NiO_U_SO.klist is : 100

---->Please enter Number of k-points in full BZ (default: 100): 100
  NUMBER OF K-POINTS IN WHOLE CELL: (0 allows to specify 3 divisions of G)
 length of reciprocal lattice vectors:   1.314   1.314   1.314   4.642   4.642   4.642
  Shift of k-mesh allowed. Do you want to shift: (0=no, 1=shift)
          10  k-points generated, ndiv=           4           4           4
KGEN ENDS
Do you want to rerun kgen ? (y/N)N
Please adapt NiO_U_SO.indm(c) manually and copy it to NiO_U_SO.indmc
Please adapt NiO_U_SO.inorb manually
For a cubic case, it is more safe to start the first scf-cycle
using    runsp -so -s lapw1 (to avoid EFG-MATRIX IST DIE NULLMATRIX error)

Spinorbit is now ready to run.
username@computername:~/wiendata/NiO_U_SO$ cp NiO_U_SO.indm NiO_U_SO.indmc
username@computername:~/wiendata/NiO_U_SO$ runsp_lapw -orb -so
...
in cycle 4    ETEST: .0001429550000000   CTEST: .0009127
hup: Command not found.
 LAPW0 END
 ORB   END
 ORB   END
 LAPW1 END
 LAPW1 END
LAPWSO END
 LAPW2 END
 LAPW2 END
LAPWDM END
 CORE  END
 CORE  END
 MIXER END

>   stop
username@computername:~/wiendata/NiO_U_SO$ grep :MMI001 *
grep: NiOnoU: Is a directory
grep: NiOU: Is a directory
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75632
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75624
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75609
NiO_U_SO.scf::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75590
NiO_U_SO.scfm::MMI001: MAGNETIC MOMENT IN SPHERE   1    =    1.75590 => GGA+U+SO: 1.76


 
NiO_U_SO.inorb

1 2 0 nmod, natorb, ipr
PRATT 1.0 BROYD/PRATT, mixing
1 1 2 iatom nlorb, lorb
2 1 2 iatom nlorb, lorb
1 nsic 0..AFM, 1..SIC, 2..HFM
0.514 0.00 U J (Ry) Note: we recommend to use U_eff = U-J and J=0
0.514 0.00
 
 
NiO_U_SO.indm

 -9. Emin cutoff energy
2 number of atoms for which density matrix is calculated
1 1 2 index of 1st atom, number of L's, L1
2 1 2 dtto for 2nd atom, repeat NATOM times
0 0 r-index, (l,s)index

NiO_U_SO.struct

NiO                                                                          
R   LATTICE,NONEQUIV.ATOMS:  3                                               
MODE OF CALC=RELA unit=bohr                                                  
  5.605236  5.605236 27.459934 90.000000 90.000000 90.000000                 
ATOM  -1: X=0.00000000 Y=0.00000000 Z=0.00000000
          MULT= 1          ISPLIT= 4
Ni1        NPT=  781  R0=0.00005000 RMT=    2.0800   Z: 28.0                 
LOCAL ROT MATRIX:    1.0000000 0.0000000 0.0000000
                     0.0000000 1.0000000 0.0000000
                     0.0000000 0.0000000 1.0000000
ATOM  -2: X=0.50000000 Y=0.50000000 Z=0.50000000
          MULT= 1          ISPLIT= 4
Ni2        NPT=  781  R0=0.00005000 RMT=    2.0800   Z: 28.0                 
LOCAL ROT MATRIX:    1.0000000 0.0000000 0.0000000
                     0.0000000 1.0000000 0.0000000
                     0.0000000 0.0000000 1.0000000
ATOM  -3: X=0.25000000 Y=0.25000000 Z=0.25000000
          MULT= 2          ISPLIT= 4
      -3: X=0.75000000 Y=0.75000000 Z=0.75000000
O          NPT=  781  R0=0.00010000 RMT=    1.7900   Z:  8.0                 
LOCAL ROT MATRIX:    1.0000000 0.0000000 0.0000000
                     0.0000000 1.0000000 0.0000000
                     0.0000000 0.0000000 1.0000000
  12      NUMBER OF SYMMETRY OPERATIONS
-1 0 0 0.00000000
 0-1 0 0.00000000
 0 0-1 0.00000000
       1
-1 0 0 0.00000000
 0 0-1 0.00000000
 0-1 0 0.00000000
       2
 0-1 0 0.00000000
-1 0 0 0.00000000
 0 0-1 0.00000000
       3
 0 0-1 0.00000000
-1 0 0 0.00000000
 0-1 0 0.00000000
       4
 0-1 0 0.00000000
 0 0-1 0.00000000
-1 0 0 0.00000000
       5
 0 0-1 0.00000000
 0-1 0 0.00000000
-1 0 0 0.00000000
       6
 0 0 1 0.00000000
 0 1 0 0.00000000
 1 0 0 0.00000000
       7
 0 1 0 0.00000000
 0 0 1 0.00000000
 1 0 0 0.00000000
       8
 0 0 1 0.00000000
 1 0 0 0.00000000
 0 1 0 0.00000000
       9
 0 1 0 0.00000000
 1 0 0 0.00000000
 0 0 1 0.00000000
      10
 1 0 0 0.00000000
 0 0 1 0.00000000
 0 1 0 0.00000000
      11
 1 0 0 0.00000000
 0 1 0 0.00000000
 0 0 1 0.00000000
      12

Post a Comment

2 Comments

  1. Use GGA+U for AFM phase specially define .inorb and indm files for CaMn2P2 compound, correlated are Mn2...no one knows about GGA+U for AFM phase, i will be very thank full

    ReplyDelete
  2. waiting for your positive responce

    ReplyDelete