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:44] – 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, |
- | < | + | < |
Please also note the unit of the energy, it is in $E_h$. When looking at DOS plots you may want to convert it to Electronvolt instead. In the convolution program, this has been done in the code. | Please also note the unit of the energy, it is in $E_h$. When looking at DOS plots you may want to convert it to Electronvolt instead. In the convolution program, this has been done in the code. | ||
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 | ||
- | * Even though you are not required to do any smoothing, create | + | * Get the Total DOS and PDOS of O$_2p$ and W$_5d$ orbitals and compare to the literature value. |
- | * Do you see why it is necessary to do the unit cell replication? | + | * 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? | ||
- | * Repeat | + | * Change |
- | * Create | + | </ |
- | * Do you now understand | + | |
+ | ====== Getting the band structure of WO$_3$ Lattice ====== | ||
+ | |||
+ | To get the band structure for < | ||
+ | |||
+ | <code - WO3-bs.inp> | ||
+ | & | ||
+ | | ||
+ | | ||
+ | | ||
+ | &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 | ||
+ | & | ||
+ | | ||
+ | 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.txt · Last modified: 2020/08/21 10:15 by 127.0.0.1