Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
11 views

tutorial-Basic-exercises

Tutorial basic in wien2k perfect
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

tutorial-Basic-exercises

Tutorial basic in wien2k perfect
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Exercises:

 In the following you find some suggestions for exercises, which teach you
various tasks one may perform with WIEN2k.

 New WIEN2k users should start with the first basic exercises (1-5),
covering: structure generation, initialization, scf-cycle, bandstructure, DOS,
electron density, structure optimization, supercell generation, spin
polarization

 Later on, choose examples of your interest as there are probably more
exercises than you can do here.

 Please note, that often “calculational parameters” are set to “minimal cpu-
time” instead of “fully converged calculations”.

 Do not use such small values for final results and publications without
convergence checks !!
Exercise 1: Getting started:
 i) Open a terminal window (skip points i-iii if done before)
 ii) Start w2web
 iii) Connect with firefox to w2web as indicated on the screen of ii)
 iv) Try the "quick-start" example for TiN (similar to TiC in the UG)
 create new session named “TiN”, “create” and “select” the suggested directory.
 Generate structure (a=4.235 Ang; reduce RMT by 1%)
 view structure with Xcrysden (switch primitive / conventional cell)

 initialize (init_lapw -b); use defaults


 scf-cycle (run_lapw); use defaults; monitor “STDOUT” and “dayfile”
 How many iterations did you need ? How long took a single scf-iteration ?
TiN continued .

 utilities: analyse
 (:ENE, :DIS, :CTO) graphically

 utilities: save_lapw (use as save-name: “TiN_exp_pbe_rk7_1000k”)


 DOS (plot 7 cases: total + Ti-tot + N-tot and Ti-eg + Ti-t2g + N-s + N-p)
TiN continued …

 electron density (use xcrysden to select the (100) plane), view it in xcrysden and rhoplot to
“understand contour and 3D-plots”)
 valence density (without semicore, check TiN.scf1 to find a EMIN which truncates the Ti-
3s,3p states); compare the density around Ti with TiC (UG)
 difference density (observe “charge transfer” and “t2g-anisotropy” around Ti)
 densities of the “N-p” and “occupied Ti-d-band” (get the corresponding E-intervals
from DOS-plots (in Ry!) and use these energies in the “x lapw2” step; observe the eg and t2g
asymmetry around Ti and the different N-p “weights”, explain the chemical bonding

valence  Ti-d band difference density


TiN continued
 bandstructure (along L-Gamma-X-W-K-Gamma with “character
plotting”)
 use xcrysden (save as „xcrysden.klist“; select „from xcrysden“ in next step
and click generate k-mesh )
 identify “t2g-” and “eg-” bands (fat band plots)
TiN continued …

 Fermi surfaces
 open a terminal, change into the TiN directory and issue:
 xcrysden --wien_fermisurface .
 choose a good k-mesh (eg. 10000 points);
 plot the FS for all bands (9, 10,11) which cross EF and compare to band structure
Exercises 2: lattice parameter of TiC
Testing accuracy: RKmax and k-points

 TiC (fcc, a=4.328 Ang, setrmt 4%)


 a) initialize in expert mode with LDA, RKmax=5, 200 k-points (bad values, on purpose !!)
 b) run x optimize and generate 6 structures (-12, -9, -6, -3, 0, 3% volume change)
 (because of LDA we expect 1-2% smaller lattice parameter (3-8% in volume) than experiment)
 c) edit "optimize.job". Modify the “run_lapw” and "save_lapw" commands to:
 run_lapw –cc 0.001 –ec 0.00001
 save_lapw ${i}_default_rkm5_200k
 d) run optimize.job, plot the results (using *rkm5_200k)
 e) set RKMAX=6.5 in TiC.in1 and x kgen with 1000k
 f) edit "optimize.job". Uncomment the “cp line” and “comment clmextrapol” modify:
 cp ${i}_default_rkm5_200k.clmsum TiC.clmsum # Using previously converged densities saves a lot of CPU time!!
 # clmextrapol ...
 save_lapw ${i}_default_rkm6.5_1000k
 g) repeat step d) (plot the results for “*_rkm6.5_1000k”)

 Find out how RKmax and k-points lead to smooth/non-smooth curves. Estimate good values and compare
in particular B and BP (Bulkmodulus and its volume derivative). Fully converged results would require
RKmax=8 - 9 , 10000 k and 10 volumes with V=1%.
 You may also do this with another XC-potential (eg. PBEsol) and will see a very large effect …

 Remember: Depending on the specific property you want to calculate (just a DOS, or Energy-Volume
curves, or EFG, or structure optimization with forces,..) and the desired accuracy, the types of atoms,
insulator/metal and system size you may need different RKmax and k-point samplings:
 H: RKmax > 2.5; sp-elements: RKmax > 5; d-elements: RKmax > 6; f-elements: RKmax > 7; (see our faq-page)
 1 atom/cell, metal: 1000-10000 k-points or more
 1 atom/cell, insulator: 100-1000 k-points or more
 For N atoms/cell you can reduce the k-mesh by a factor N

 Remember: Always test your specific property for convergence !!


Volume optimization for TiC

RKmax=5, 200 k RKmax=6.5, 1000 k

exp.
Exercise 3: optimization of positions in Mg(OH)2

 create two “cases” (directories) for PORT and MSR1a optimization


 initialize both cases (or copy after init one case to the other and use
„rename_files“)
 P-3m1 (164), a=b=3.15 c=4.77 Å =120 ; Mg(0,0,0) O(1/3,2/3,0.22)
o

H(1/3,2/3,0.41); RMT: reduce by 7%


 init_lapw -b –numk 100 –rkmax 3

 minimization using PORT:


 min_lapw (or „mini-positions in w2web)
 save_lapw case_relaxed_rkm3

 analyze case.scf_mini

 :ENE :FGL002z :POS002z :FGL003z :POS003z


 Find out how many scf cycles you needed
 grepline :ITE '*scf‘ 1 (in terminal)
 check RKMAX convergence:
 increase RKMAX to 3.5 (case.in1)
 run –fc 1 (and check your forces)
Mg(OH)2 continue
 minimization using MSR1a:
 run -min –fc 1 –cc 0.001 –ec 0.0001
 -min sets MSR1a in case.inm, (sometimes a crude scf cycle to come closer
to „Born-Oppenheimer“ surface is necessary (run -fc 20)
 analyze case.scf and find out how many scf cycles you needed
 :ENE :FGL002z :POS002z :FGL003z :POS003z :ITE
 save_lapw case_final
 use the „arrows“ utility to display

initial forces and final relaxations


(see UG p.195)
Exercise 4: Creation of supercells

 These exercises should be done WITHOUT w2web in a terminal window !


 creation of basic structure: MgO
 mkdir super; cd super;
 makestruct (and type in the following information). It creates init.struct
 MgO: lattice type: F, a= 7.96 bohr
 Mg (0,0,0), O (0.5,0.5, 0.5)
 cp init.struct super.struct
 view the structure using: xcrysden --wien_struct init.struct

 16-atom supercell
 x supercell (use super.struct, select 2x2x2 and F-cell):
 cp super_super.struct super.struct
 edit super.struct and mark first Mg atom as “Mg1”
 x nn and if :WARNINGs appear do the next line:
 cp super.struct_nn super.struct; and repeat the “x nn“ step above
 x sgroup and view super.outputsgroup (no errors, but gives you a spacegroup)
 how many non-equivalent atoms do you have now ? view the structure with xcrysden. Now you would
be ready to run init_lapw -b …., but we just save it using cp super.struct super_16.struct
Exercise 4: Creation of supercells (cont.)

 32, 64 and 128-atom supercells (as above, but with B, P cell or 4x4x4-F)
 cp init.struct super.struct
 x supercell (use super.struct, …):
 cp super_super.struct super.struct
 edit super.struct and mark first Mg atom as “Mg1”
 x nn and if :WARNINGs appear do the next line:
 cp super.struct_nn super.struct; and repeat the “x nn“ step above
 x sgroup and view super.outputsgroup (no errors, but gives you a spacegroup)
 how many non-equivalent atoms do you have now ? view the structure with xcrysden. Now you would
be ready to run init_lapw -b …., (see eg. lecture on XANES spectroscopy)
 save the structures using cp super.struct super_32.struct

 Instead of labelling “Mg1”, one could also remove an atom (vacancy) or


replace an atom by another (impurity).
 Replacing atoms is better done in w2web, because this will also update
radial meshes. (change name of atom AND remove Z !!)
Exercise 4: Creation of surface slabs, relax it

 (001) surface with 11 layers:


 mkdir 001, cp init.struct 001/001.struct; cd 001
 x supercell (use 001.struct, 1x1x5, 30 bohr vacuum in z; repeat atom at
top (y)):
 cp 001_super.struct 001.struct
 xcrysden --wien_struct 001_super.struct & (leave it open for comparison)
 x sgroup and view 001.outputsgroup (it created a new structure for you)
 cp 001.struct_sgroup 001.struct
 xcrysden --wien_struct 001.struct
 what has sgroup done ?? how many total and non-equivalent atoms and how many
atoms/layer do you have before/after sgroup ? Do you have inversion symmetry ?
 save the structure using cp 001.struct start_surface-001.struct
 init_lapw –b –numk 10 –fermit 0.002 # 2D-BZ !
 run_lapw –fc 10 # observe the forces in scf-file, what relaxation do you expect ?
 save_lapw unrelaxed
 run_lapw –min –fc 1 # minimizes forces by optimizing positions
 while running, edit 001.inM and increase tolf to 5; save_lapw relaxed
 How much have the surface and sub-surface atoms relaxed ?
add-atoms, bigger cells, …
 If you now want to study adsorption of an atom you could
simply add 2 equivalent atoms manually (this is much easier
in w2web, since the struct file is position dependent !!) at a
suitable starting position, eg. (0,0,+/-z) (2 atoms to keep
inversion symmetry !!)
 where would you add two Fe atoms ?
 at what distance ?

 check it out using xcrysden

 This structure could then serve as base for a bigger supercell


(for instance 2x2x1) to simulate reduced “coverage”.
Exercise 4: Creation of supercells (cont.)

 (110) surface with 9 layers: (using the structeditor)


 octave (use repeat-key arrow-up !)
 helpstruct # list all possible commands
 a=loadstruct(“init.struct”);
 ac=makeconventional(a); # convert F into P cell
 help makesurface # explains the syntax
 sr=makesurface( ac, [1 1 0], 1, 20., 30.);
 showstruct(sr) # check out the number of layers and repeat the
sr=makesurface command with larger thickness until you get 9 layers. How do
you get an O-atom at the origin ?
 savestruct(sr,”super.struct”)
 quit
 xcrysden --wien_struct super.struct &
 x sgroup and view super.outputsgroup
 cp super.struct_sgroup super.struct
 xcrysden --wien_struct super.struct
 what has sgroup done ?? how many total and non-equivalent atoms and how many
atoms/layer do you have before/after sgroup ? Do you have inversion symmetry ?
 save the structure using cp super.struct super_surface-110.struct
Exercise 5: spin-polarized calculations
 Magnetism: bcc Fe (a0=2.86 Å)
 setrmt: 3%; 5000k; spin-polarization:yes, use RKmax=7, then 8

 do a volume optimization (-6, -3, 0, 3, 6 %) (activate runsp_lapw instead of run_lapw !)


 check equilibrium volume, :MMT as function of volume
--- MMTOT ----------- in 5 files:
Fe_vol___0.0_rk8_5000k.scf::MMTOT: 2.21
Fe_vol___3.0_rk8_5000k.scf::MMTOT: 2.26
Fe_vol__-3.0_rk8_5000k.scf::MMTOT: 2.16
Fe_vol___6.0_rk8_5000k.scf::MMTOT: 2.31
Fe_vol__-6.0_rk8_5000k.scf::MMTOT: 2.13

 compare bandstructure and DOS for large/small volumes (restore_lapw for desired volume; x lapw0
“recreates” potentials, adjust EF in case.insp)

V=-6% V=+6%

You might also like