User Tools

Site Tools


bulk_optimization

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
bulk_optimization [2011/02/18 13:13]
127.0.0.1 external edit
bulk_optimization [2014/02/09 11:23]
Line 1: Line 1:
- ===== Lattice parameter ===== 
- 
-In this section, we explain how to optimize the lattice parameter of Si bulk diamond structure. The diamond structure is characterized by two distinct atom per unit cell with relative coordinates ''​(0 ,0 ,​0)''​ and ''​(1/​4,​ 1/4, 1/​4)''​. The lattice vector is defined in the relative coordinates ''​alat*(1/​4,​ 1/4, 1/​4)''​. ​ 
-Detail description of the diamond structure can be found [[http://​cst-www.nrl.navy.mil/​lattice/​struk/​a4.html|elsewhere]].  ​ 
-There is an elegant way to rescale atomic coordinates,​ lattice vector and k-points by only one parameter **''​rescal''​** defined in the section **''&​OPTIONS''​**. 
-Our input atomic coordinates written in **''​Si.bas''​** look like: 
- 
-   2 
-  14   ​0.00000 ​  ​0.00000 ​  ​0.00000 
-  14   ​0.25000 ​  ​0.25000 ​  ​0.25000 
- 
-the lattice vector is defined in **''​Si.lvs''​** file: 
- 
-   ​0.50000 ​  ​0.00000 ​  ​0.50000 
-   ​0.00000 ​  ​0.50000 ​  ​0.50000 
-   ​0.50000 ​  ​0.50000 ​  ​0.00000 
- 
-and we use ''​Oh''​ symmetry group to generate a k-points set (file **''​Si.kpts''​**) 
- 
-          60 
-   ​-2.74889350 ​  ​-2.74889350 ​  ​-2.74889350 ​          ​0.00390625 
-   ​-1.96349549 ​  ​-1.96349549 ​  ​-3.53429174 ​          ​0.01171875 
-   ​-1.17809725 ​  ​-1.17809725 ​  ​-4.31968975 ​          ​0.01171875 
-   ​-0.39269909 ​  ​-0.39269909 ​  ​-5.10508823 ​          ​0.01171875 
-    0.39269909 ​   0.39269909 ​  ​-5.89048624 ​          ​0.01171875 
-    1.17809725 ​   1.17809725 ​   5.89048608 ​          ​0.01171875 
-    1.96349549 ​   1.96349549 ​   5.10508807 ​          ​0.01171875 
-   ​-3.53429190 ​  ​-3.53429190 ​  ​-1.96349581 ​          ​0.01171875 
-   ​-2.74889350 ​  ​-1.17809725 ​  ​-2.74889350 ​          ​0.01171875 
-   ​-1.96349549 ​  ​-0.39269909 ​  ​-3.53429174 ​          ​0.02343750 
-   ​-1.17809725 ​   0.39269909 ​  ​-4.31968975 ​          ​0.02343750 
-   ​-0.39269909 ​   1.17809725 ​  ​-5.10508823 ​          ​0.02343750 
-    0.39269909 ​   1.96349549 ​  ​-5.89048624 ​          ​0.02343750 
-   ​-5.10508815 ​  ​-3.53429190 ​  ​-0.39269932 ​          ​0.02343750 
-   ​-4.31968991 ​  ​-2.74889366 ​  ​-1.17809733 ​          ​0.02343750 
-   ​-2.74889350 ​   0.39269909 ​  ​-2.74889350 ​          ​0.01171875 
-   ​-1.96349549 ​   1.17809725 ​  ​-3.53429174 ​          ​0.02343750 
-   ​-1.17809725 ​   1.96349549 ​  ​-4.31968975 ​          ​0.02343750 
-   ​-0.39269909 ​   2.74889350 ​  ​-5.10508823 ​          ​0.02343750 
-   ​-5.89048631 ​  ​-2.74889366 ​   0.39269916 ​          ​0.02343750 
-   ​-5.10508815 ​  ​-1.96349565 ​  ​-0.39269932 ​          ​0.02343750 
-   ​-2.74889350 ​   1.96349549 ​  ​-2.74889350 ​          ​0.01171875 
-   ​-1.96349549 ​   2.74889350 ​  ​-3.53429174 ​          ​0.02343750 
-   ​-1.17809725 ​   3.53429174 ​  ​-4.31968975 ​          ​0.02343750 
-    5.89048631 ​  ​-1.96349565 ​   1.17809717 ​          ​0.02343750 
-   ​-5.89048631 ​  ​-1.17809717 ​   0.39269916 ​          ​0.02343750 
-   ​-2.74889350 ​   3.53429174 ​  ​-2.74889350 ​          ​0.01171875 
-    4.31968991 ​  ​-1.96349565 ​   2.74889366 ​          ​0.02343750 
-    5.10508815 ​  ​-1.17809717 ​   1.96349565 ​          ​0.02343750 
-    3.53429190 ​  ​-1.17809717 ​   3.53429190 ​          ​0.01171875 
-    4.31968991 ​  ​-0.39269916 ​   2.74889366 ​          ​0.02343750 
-    3.53429190 ​   0.39269932 ​   3.53429190 ​          ​0.01171875 
-   ​-1.96349549 ​  ​-1.96349549 ​  ​-1.96349549 ​          ​0.00390625 
-   ​-1.17809725 ​  ​-1.17809725 ​  ​-2.74889350 ​          ​0.01171875 
-   ​-0.39269909 ​  ​-0.39269909 ​  ​-3.53429174 ​          ​0.01171875 
-    0.39269909 ​   0.39269909 ​  ​-4.31968975 ​          ​0.01171875 
-    1.17809725 ​   1.17809725 ​  ​-5.10508823 ​          ​0.01171875 
-   ​-4.31968991 ​  ​-4.31968991 ​   0.39269916 ​          ​0.01171875 
-   ​-1.96349549 ​  ​-0.39269909 ​  ​-1.96349549 ​          ​0.01171875 
-   ​-1.17809725 ​   0.39269909 ​  ​-2.74889350 ​          ​0.02343750 
-   ​-0.39269909 ​   1.17809725 ​  ​-3.53429174 ​          ​0.02343750 
-    0.39269909 ​   1.96349549 ​  ​-4.31968975 ​          ​0.02343750 
-    1.17809725 ​   2.74889350 ​  ​-5.10508823 ​          ​0.02343750 
-   ​-1.96349549 ​   1.17809725 ​  ​-1.96349549 ​          ​0.01171875 
-   ​-1.17809725 ​   1.96349549 ​  ​-2.74889350 ​          ​0.02343750 
-   ​-0.39269909 ​   2.74889350 ​  ​-3.53429174 ​          ​0.02343750 
-    0.39269909 ​   3.53429174 ​  ​-4.31968975 ​          ​0.02343750 
-   ​-1.96349549 ​   2.74889350 ​  ​-1.96349549 ​          ​0.01171875 
-   ​-1.17809725 ​   3.53429174 ​  ​-2.74889350 ​          ​0.02343750 
-   ​-1.96349549 ​   4.31968975 ​  ​-1.96349549 ​          ​0.01171875 
-   ​-1.17809725 ​  ​-1.17809725 ​  ​-1.17809725 ​          ​0.00390625 
-   ​-0.39269909 ​  ​-0.39269909 ​  ​-1.96349549 ​          ​0.01171875 
-    0.39269909 ​   0.39269909 ​  ​-2.74889350 ​          ​0.01171875 
-    1.17809725 ​   1.17809725 ​  ​-3.53429174 ​          ​0.01171875 
-   ​-1.17809725 ​   0.39269909 ​  ​-1.17809725 ​          ​0.01171875 
-   ​-0.39269909 ​   1.17809725 ​  ​-1.96349549 ​          ​0.02343750 
-    0.39269909 ​   1.96349549 ​  ​-2.74889350 ​          ​0.02343750 
-   ​-1.17809725 ​   1.96349549 ​  ​-1.17809725 ​          ​0.01171875 
-   ​-0.39269909 ​  ​-0.39269909 ​  ​-0.39269909 ​          ​0.00390625 
-    0.39269909 ​   0.39269909 ​  ​-1.17809725 ​          ​0.01171875 
- 
- 
-to make the total energy calculation of several lattice parameters automatic, we use a script: 
- 
- 
-  alat=" 5.0 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6.0" 
-  for i in $alat; 
-  do 
-   echo $i 
-   mkdir $i 
-   ​lattice="​`echo $i`"; 
-   sed "​s/​AAA/​$lattice/​g" ​ fireball.sample > fireball.in;​ 
-   ​./​runTG.com > a-$i.out 
-   grep "​etot/​atom"​ a-$i.out | cut -b50-65 
-   mv CHARGES $i/ 
-   mv a-$i.out $i/ 
-  done 
- 
-the script runs several tasks for defined lattice vectors, it creates a directory for each lattice parameter and it saves there **''​CHARGES''​** and an output file. It also dumps the energy per atom for a given lattice parameter. ​   ​ 
-A file **''​fireball.sample''​** has following syntax: 
- 
-  &OPTION 
-  basisfile = Si.bas 
-  lvsfile = Si.lvs 
-  kptpreference = Si.kpts 
-  nstepf = 1 
-  rescal = AAA 
-  &END 
- 
-Afterwards, we simply dump the total energy vs. lattice parameter into a file:  
- 
-   grep ETOT */*.out | cut -b1-3,34- > etot.dat 
- 
-and we plot using gnuplot 
- 
-   ​gnuplot 
-   ​gnuplot>​ set title "Etot vs. alat" 
-   ​gnuplot>​ set xlabel "alat [Ang]" 
-   ​gnuplot>​ set ylabel "Etot [eV]" 
-   ​gnuplot>​ set format y "​%8.2f"​ 
-   ​gnuplot>​ plot '​etot.dat'​ with linespoints 
- 
-{{:​si-bulk:​etot-alat.png|}} 
  
bulk_optimization.txt ยท Last modified: 2014/02/09 11:23 (external edit)