User Tools

Site Tools


band_structure

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
band_structure [2012/11/30 10:16]
dani
band_structure [2014/10/20 12:42]
vlada
Line 18: Line 18:
    Fermi Level =   ​-4.33045968490834 ​    Fermi Level =   ​-4.33045968490834 ​
  
-In next step, we run the ''​FIREBALL''​ code again, but now with fixed charges (**''​ifixcharge = 1''​**) and with a new set of k-points in desired high-symmetry directions in the first Brillouin zone. Remember we need having **''​CHARGES''​** file in a working directory for a restart. In this particular case,we have chosen a direction ''​L-Γ-X-Γ''​ stored in a **''​lgxg.kpts''​** file (see also fig. 1).+In next step, we run the ''​FIREBALL''​ code again, but now with fixed charges (**''​ifixcharge = 1''​**) and with a new set of k-points in desired high-symmetry directions in the first Brillouin zone. Remember we need having **''​CHARGES''​** file in a working directory for a restart. In this particular case,we have chosen a direction ''​L-Γ-X-Γ''​ stored in a **''​{{:lgxg.kpts|lgxg.kpts}}''​** file (see also fig. 1).
  
  
Line 59: Line 59:
  
   ​   ​
 +
 ===== DOS ===== ===== DOS =====
  
Line 97: Line 98:
  
 {{:​si-bulk:​pdos-si_bulk.png?​400|DOS Si Bulk}} {{:​si-bulk:​pdos-si_bulk.png?​400|DOS Si Bulk}}
- 
-===== The bulk modulus ===== 
- 
-  $ ls 
-  Fdata  uno.bas ​ uno.kpts ​ uno.lvs ​ vol.sh 
-  ​ 
-  $ head uno.bas 
-  2 
-  14      0.000000 ​     0.000000 ​     0.000000 
-  14      0.250000 ​     0.250000 ​     0.250000 
-  ​ 
-  $ head uno.kpts 
-  32  
-  -2.35619449 ​        ​-2.35619449 ​        ​-2.35619449 ​       0.03125000 
-  -3.92699081 ​        ​-0.78539816 ​        ​-0.78539816 ​       0.03125000 
-  -5.49778713 ​         0.78539816 ​         0.78539816 ​       0.03125000 
-  -7.06858347 ​         2.35619449 ​         2.35619449 ​       0.03125000 
-  -0.78539816 ​        ​-3.92699081 ​        ​-0.78539816 ​       0.03125000 
-  -2.35619449 ​        ​-2.35619449 ​         0.78539816 ​       0.03125000 
-  -3.92699081 ​        ​-0.78539816 ​         2.35619449 ​       0.03125000 
-  -5.49778713 ​         0.78539816 ​         3.92699081 ​       0.03125000 
-   ​0.78539816 ​        ​-5.49778713 ​         0.78539816 ​       0.03125000 ​ 
-  ​ 
-  $ head  uno.lvs 
-  0.5000 ​   0.5000 ​   0.0000 
-  0.5000 ​   0.0000 ​   0.5000 
-  0.0000 ​   0.5000 ​   0.5000 
- 
-The script to calculate the bulk modulus 
-  $ cat vol.sh ​ 
-  #!/bin/bash 
-    
-  ##----- Parametros de control (el parametro de red tiene que encontrase entre ini fin  --------## 
-  N=10 
-  ini=5.0 
-  fin=6.0 ​ 
-    
-  ##​----------Funcion analisis para dos atomos/​celda-----------------------------------------##​ 
-  function analisis { 
-  ETOT=$(grep '​ETOT'​ salida.out|cut -d'​='​ -f2) 
-  sigma=$(grep sigma salida.out | cut -d'​='​ -f16 | tail -1) 
-  charge=$(head -2 uno.bas | tail -1 | tr -s ' ' | cut -d' ' -f2)' -> '​$(head -2 CHARGES | tail -1) 
-  charge=$charge'​ ;'​$(head -3 uno.bas | tail -1 | tr -s ' ' | cut -d' ' -f2)' -> ' 
-  charge=$charge$(tail -1 CHARGES) 
-  echo $rescal$'​\t'​$ETOT$'​\t'​$sigma$'​\t'​$charge$'​\t'>>​salida 
-  } 
-  ##​------------------------------------------------------------------------------------------##​ 
-  function start { 
-  rm -fr salida 
-  for((i=0;​i<​=N;​i++)) 
-  do 
-  rescal=$(python -c "print '​%.6f'​ % ($i*1.0*($fin-$ini)/​$N+$ini)"​) 
-  echo "&​option 
-  basisfile = uno.bas 
-  lvsfile = uno.lvs 
-  kptpreference = uno.kpts 
-  rescal = $rescal 
-  sigmatol = 0.000001 
-  nstepf = 1 
-  &end 
-  &output 
-  iwrtxyz = 1 
-  &​end"​ > fireball.in ​ 
-  ../​progs/​fireball.x > salida.out ​   ​ 
-  ​ 
-  analisis 
-  done 
-  } 
-  ##​----------------------------------1º start  ----------------------------------------------##​ 
-  start 
-  ##​-----------------------------buscamos el minimo ------------------------------------------##​ 
-  min=$(python -c " 
-  x0 = [] 
-  y0 = [] 
-  for line in file(\"​salida\"​):​ 
-     line = line.split() 
-     x = line[0] 
-     y = line[1] 
-     ​x0.append(x) 
-     ​y0.append(y)  ​ 
-  ​ 
-  j=0 
-  for i in range(len(x0)):​ 
-    if y0[j]< y0[i]: 
-      j=i 
-  print x0[j]"​) 
-  cp salida borrar 
-  rm -fr aux.py  ​       ​ 
-  ​ 
-  ##​----------------------------------2º start -----------------------------------------------##​ 
-  N=40 
-  d=0.4 
-  ini=$(python -c "print '​%.6f'​ % (1.0*($min-$d))"​) 
-  fin=$(python -c "print '​%.6f'​ % (1.0*($min+$d))"​) 
-  start 
-  mv salida Vol.dat 
-  ##​------------------------------------------------------------------------------------------##  ​ 
- 
-In the 1º start of the script "​vol.sh"​ takes 10 points between 5-6: 
- 
-{{:​bulk-si-10.png|}} 
- 
-In the 2º start of the script "​vol.sh"​ takes 40 points between the minimum of the 1º start 
- 
-{{:​si-bulk-40.png|}} 
- 
-The scripts uses the parameter rescal in fireball.in and unitary positions and lattice vectors with 2 atoms/cell 
-to obtain the kpts points we used xeo: 
- 
-{{:​xeo-menu-kpts.png|}} 
- 
-{{:​xeo-kpts.png|}} 
- 
-The bulk mudulus can be calculed also with xeo (Utilities->​Bulk modulus), in the in line command: 
- 
-  $ xeo -Bulk Vol.dat zincblende 
-  E_min =     ​-214.35239 ​   eV 
-  a_min =        5.43719 ​   angs  
-  Volumen =       ​40.18518 ang**3 ​ 
-  Bulk modulus =      100.79399 ​ GPa 
  
  
  
band_structure.txt · Last modified: 2014/10/20 12:42 (external edit)