Skip to content

High throughput calculations on GeTe

Qiang Zhu edited this page Aug 22, 2018 · 6 revisions

File location

[zhuqiang@mgt02 GeTe_HT_QZ]$ pwd
/share/home/zhuqiang/GeTe_HT_QZ

Input scripts:

  • run-calc-multi.py (automated calculation for all structures from the input file)
  • check_Stability.py (check the structure stability for calculations in the current subfolders)
  • vasprun.py (auxiliary file needed by check_stability)

Structure info

  • all.vasp (VASP POSCARs in concatenated format)
template_GeTe
1.169869126
        4.3751645088         0.0000000000         0.0000000000
        2.3296940028         3.7033215270         0.0000000000
        2.3296940028         1.2867692789         3.4725804750
  Ac  Ac
    1    1
Direct
     0.995060027         0.995060027         0.995060027
     0.525940001         0.525940001         0.525940001
template_GeTe
1.045182016
        4.3751645088         0.0000000000         0.0000000000
        2.3296940028         3.7033215270         0.0000000000
        2.3296940028         1.2867692789         3.4725804750
  Ac  Ag
    1    1
Direct
     0.995060027         0.995060027         0.995060027
     0.525940001         0.525940001         0.525940001

Run calculation from master node.

[zhuqiang@mgt02 GeTe_HT_QZ]$ python3 run-calc-multi.py -f all.vasp 
5356  structures loaded
Creating new directory:  001-Ac1Ag1
Creating new directory:  002-Ac1Al1
Creating new directory:  003-Ac1Am1
pymatgen error
Creating new directory:  004-Ac1As1
Creating new directory:  005-Ac1At1
...

Tip: you must run it with python3 command This command will

  • automatically load the structures from all.vasp,
  • for each structure, check if there exists a directory which stores the corresponding information. If yes, skip. Otherwise, create a new directory and perform vasp calculation (single point).

Run calculation in the computing node.

It is always better to run the calculation in the computing node via job scheduler.

[zhuqiang@mgt02 GeTe_HT_QZ]$ cat myrun 
#!/bin/bash
#BSUB -q normal
#BSUB -o out%J.txt
#BSUB -e error%J.txt
#BSUB -J GeTe
#BSUB -n 16
#BSUB -R "span[ptile=16]"
export OMP_NUM_THREADS=1
python3 run-calc-multi.py -f all.vasp # just copy the command here.
[zhuqiang@mgt02 GeTe_HT_QZ]$ bsub < myrun 

Analysis

While the calculation is running, you can always check the stability for the structures have been calculated.

[zhuqiang@mgt02 GeTe_HT_QZ]$ python3 check_Stability.py 

/share/home/zhuqiang/pkgs/lib/python3.5/site-packages/pymatgen/io/cif.py:44: UserWarning: Please install optional dependency pybtex if youwant to extract references from CIF files.
  warnings.warn("Please install optional dependency pybtex if you"
/share/home/zhuqiang/pkgs/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
/share/home/zhuqiang/pkgs/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  return f(*args, **kwds)
/share/home/zhuqiang/pkgs/lib/python3.5/site-packages/pymatgen/io/vasp/outputs.py:878: UserWarning: No POTCAR file with matching TITEL fields was found in /share/home/zhuqiang/GeTe_HT_QZ/001-Ac1Ag1
  " was found in {}".format(os.path.abspath(p)))
/share/home/zhuqiang/pkgs/lib/python3.5/site-packages/pymatgen/io/vasp/outputs.py:878: UserWarning: No POTCAR file with matching TITEL fields was found in /share/home/zhuqiang/GeTe_HT_QZ/002-Ac1Al1
  " was found in {}".format(os.path.abspath(p)))
vasp error in  003-Ac1Am1
/share/home/zhuqiang/pkgs/lib/python3.5/site-packages/pymatgen/io/vasp/outputs.py:878: UserWarning: No POTCAR file with matching TITEL fields was found in /share/home/zhuqiang/GeTe_HT_QZ/004-Ac1As1
  " was found in {}".format(os.path.abspath(p)))
vasp error in  005-Ac1At1
/share/home/zhuqiang/pkgs/lib/python3.5/site-packages/pymatgen/io/vasp/outputs.py:878: UserWarning: No POTCAR file with matching TITEL fields was found in /share/home/zhuqiang/GeTe_HT_QZ/006-Ac1Au1
  " was found in {}".format(os.path.abspath(p)))

In the end, it will return a nice table as follows:

+-----+---------------+---------------+-----------+----------------+
|     |   E_formation | Space group   | formula   |   E_above_hull |
|-----+---------------+---------------+-----------+----------------|
|  54 |    -2.16192   | R3m           | AcS       |      0         |
|  53 |    -1.67775   | R3m           | AcSe      |      0         |
|  44 |    -1.38246   | R3m           | AcP       |      0         |
|   2 |    -1.37296   | R3m           | AcAs      |      0         |
|  60 |    -1.29821   | R3m           | AcTe      |      0         |
|  51 |    -1.07499   | R3m           | AcSb      |      0         |
|  45 |    -1.02364   | R3m           | AcPt      |      0         |
|   7 |    -0.853848  | R3m           | AcBi      |      0         |
|  43 |    -0.64343   | R3m           | AcPd      |      0         |
|   3 |    -0.594642  | R3m           | AcAu      |      0         |
|  49 |    -0.481285  | R3m           | AcRh      |      0         |

Tip: one needs to be patient as there are thousands of data entries to be processed

This command will automatically

  • read the structure and energy information from vasprun.xml file
  • check the stability by calculation two quantities (E_formation and E_hull, both are in eV/atom). A stable structure should have E_hull = 0. The smaller the value is, the structure is more stable.