exercises:2017_uzh_cmest:pdos
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| exercises:2017_uzh_cmest:pdos [2017/10/17 15:47] – jglan | exercises:2017_uzh_cmest:pdos [2020/08/21 10:15] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ======= Projected density of states | + | ======= Projected density of states and Band structure for WO$_3$ |
| - | In the following exercise we are going to look at the density of states of WO$_3$: | + | In this exercise, you will carry out Density Of States(DOS) and band structure calculation using K-point sampling for Cubic lattice WO$_3$. The reference DOS and band structure you can find in [[http:// |
| + | |||
| + | {{: | ||
| + | |||
| + | ====== Getting the PDOS ====== | ||
| + | |||
| + | In the following exercise we are going to look at the density of states of < | ||
| Similar to the previous exercise we write the coordinates in term of the unit cell: | Similar to the previous exercise we write the coordinates in term of the unit cell: | ||
| Line 110: | Line 116: | ||
| < | < | ||
| - | Alternatively, | + | Alternatively, |
| <note important> | <note important> | ||
| Line 118: | Line 124: | ||
| While some of the new options to help with convergence are of numerical nature, [[howto: | While some of the new options to help with convergence are of numerical nature, [[howto: | ||
| + | |||
| + | < | ||
| * Repeat the above calculation for the different multiple cells 3x3x3, 4x4x4 | * Repeat the above calculation for the different multiple cells 3x3x3, 4x4x4 | ||
| - | * Do you see why it is necessary to do the unit cell replication? | + | |
| + | | ||
| + | * What is the value of WO$_3$ band gap? Compare the plots for 3x3x3 and 4x4x4. | ||
| * .. which state ($s$, $p_x$, ..) is mainly responsible for that? | * .. which state ($s$, $p_x$, ..) is mainly responsible for that? | ||
| + | * Change the $\sigma$ value in convolution program, and determine a reasonable value for the PDOS plot | ||
| + | </ | ||
| + | |||
| + | ====== Getting the band structure of WO$_3$ Lattice ====== | ||
| + | |||
| + | To get the band structure for < | ||
| + | |||
| + | <code - WO3-bs.inp> | ||
| + | &GLOBAL | ||
| + | | ||
| + | | ||
| + | | ||
| + | &END GLOBAL | ||
| + | |||
| + | & | ||
| + | | ||
| + | & | ||
| + | BASIS_SET_FILE_NAME | ||
| + | POTENTIAL_FILE_NAME | ||
| + | |||
| + | & | ||
| + | | ||
| + | &END POISSON | ||
| + | &QS | ||
| + | | ||
| + | &END QS | ||
| + | &SCF | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | & | ||
| + | ALGORITHM STANDARD | ||
| + | EPS_ADAPT 0.01 | ||
| + | & | ||
| + | & | ||
| + | METHOD FERMI_DIRAC | ||
| + | ELECTRONIC_TEMPERATURE [K] 300 | ||
| + | & | ||
| + | |||
| + | & | ||
| + | METHOD BROYDEN_MIXING | ||
| + | ALPHA 0.2 | ||
| + | BETA 1.5 | ||
| + | NBROYDEN 8 | ||
| + | & | ||
| + | |||
| + | &END SCF | ||
| + | &XC | ||
| + | & | ||
| + | & | ||
| + | &END XC | ||
| + | & | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | &END KPOINTS | ||
| + | |||
| + | & | ||
| + | ADDED_MOS 2 | ||
| + | FILE_NAME WO3.bs | ||
| + | & | ||
| + | UNITS B_VECTOR | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | &END | ||
| + | & | ||
| + | &END PRINT | ||
| + | & | ||
| + | |||
| + | & | ||
| + | &CELL | ||
| + | ABC [angstrom] 3.810000 3.810000 3.810000 | ||
| + | | ||
| + | | ||
| + | &END CELL | ||
| + | & | ||
| + | | ||
| + | &END TOPOLOGY | ||
| + | &COORD | ||
| + | | ||
| + | W 0.0 0.0 0.0 | ||
| + | O 0.5 0.0 0.0 | ||
| + | O 0.0 0.5 0.0 | ||
| + | O 0.0 0.0 0.5 | ||
| + | &END | ||
| + | &KIND W | ||
| + | | ||
| + | | ||
| + | | ||
| + | &END KIND | ||
| + | &KIND O | ||
| + | | ||
| + | | ||
| + | | ||
| + | &END KIND | ||
| + | & | ||
| + | |||
| + | &END FORCE_EVAL | ||
| + | |||
| + | </ | ||
| + | |||
| + | <note important> | ||
| + | |||
| + | Some notes on the input file: | ||
| + | * By specifying the '' | ||
| + | * While you could specify the K-Points directly, we are using the Monkhorst-Pack scheme [(http:// | ||
| + | * After the basic calculation, | ||
| + | * The keyword '' | ||
| + | * The '' | ||
| + | |||
| + | <note tip>You are encouraged to use [[ http:// | ||
| + | <code - WO3-cubic.xyz> | ||
| + | 4 | ||
| + | WO3; a=3.810000 | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | Now, when you run this input file you will get in addition the the output file, a file named '' | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | 20 | ||
| + | | ||
| + | | ||
| + | -1.34739188 | ||
| + | | ||
| + | | ||
| + | | ||
| + | 20 | ||
| + | | ||
| + | | ||
| + | -1.44087258 | ||
| + | | ||
| + | | ||
| + | |||
| + | [...] | ||
| + | </ | ||
| + | |||
| + | For each set there is a block named '' | ||
| + | |||
| + | < | ||
| + | Your tasks: | ||
| + | |||
| + | * Lookup the special points for the $\Gamma$, $X$,$M$,$R$ points in the [[http:// | ||
| + | * Compare your plot with plots from literature. What is different? | ||
| + | * How many orbital energies do you get and why? Try to change the input to get more unoccupied orbitals. | ||
| + | </ | ||
| + | |||
| + | |||
| + | To convert the band structure file to a file which can be plotted directly, you can use the script '' | ||
| + | |||
| + | To plot the '' | ||
| + | < | ||
| + | gnuplot> | ||
| + | </ | ||
| + | <file python cp2k_bs2csv.py> | ||
| + | # | ||
| + | """ | ||
| + | Convert the CP2K band structure output to CSV files | ||
| + | """ | ||
| + | |||
| + | import re | ||
| + | import argparse | ||
| + | |||
| + | SET_MATCH = re.compile(r''' | ||
| + | [ ]* | ||
| + | SET: [ ]* (? | ||
| + | TOTAL [ ] POINTS: [ ]* (? | ||
| + | \n | ||
| + | (? | ||
| + | [\s\S]*? | ||
| + | ) | ||
| + | ''', | ||
| + | |||
| + | SPOINTS_MATCH = re.compile(r''' | ||
| + | [ ]* | ||
| + | POINT [ ]+ (? | ||
| + | ''', | ||
| + | |||
| + | POINTS_MATCH = re.compile(r''' | ||
| + | [ ]* | ||
| + | Nr\. [ ]+ (? | ||
| + | Spin [ ]+ (? | ||
| + | K-Point [ ]+ (? | ||
| + | \n | ||
| + | [ ]* (? | ||
| + | (? | ||
| + | [\s\S]*? | ||
| + | ) | ||
| + | ''', | ||
| + | |||
| + | if __name__ == ' | ||
| + | parser = argparse.ArgumentParser(description=__doc__) | ||
| + | parser.add_argument(' | ||
| + | help=" | ||
| + | |||
| + | args = parser.parse_args() | ||
| + | |||
| + | with open(args.bsfilename, | ||
| + | for kpoint_set in SET_MATCH.finditer(fhandle.read()): | ||
| + | filename = " | ||
| + | kpoint_set.group(' | ||
| + | set_content = kpoint_set.group(' | ||
| + | |||
| + | with open(filename, | ||
| + | print((" | ||
| + | " | ||
| + | | ||
| + | |||
| + | print(" | ||
| + | for point in SPOINTS_MATCH.finditer(set_content): | ||
| + | print(" | ||
| + | **point.groupdict())) | ||
| + | |||
| + | for point in POINTS_MATCH.finditer(set_content): | ||
| + | results = point.groupdict() | ||
| + | results[' | ||
| + | csvout.write(" | ||
| + | </ | ||
exercises/2017_uzh_cmest/pdos.1508255268.txt.gz · Last modified: (external edit)
