QuantumATK > Scripts, Tutorials and Applications

Bulk density of states

(1/3) > >>

ipsecog:
Does anyone have a script that can compute the bulk density of states (DOS) with ATK? The basic functionality is already available in ATK, in some sense; it's really just a matter of k-point sampling, compute E(k), then do some statistics... Ideally, one would want to use the tetrahedron method ;)

But of course it's not trivial...

Nordland:
I have some time ago written this script for calculating the bulk density of states using ATK.
It uses a tetrahedrone method I developed at the university, but I never got to publish it, so please feel free to use, but please do not publish my method as your own work :)

* The algorithm divides the irreducible brillouin zone down into tiny tetrahedrone, calculates the eigenvalues in the corner of these tetrahedrones, uses an analytic expression for calculation the density of states given this tetrahedrones and its corners. This method gives a mucher better resolution of the density of states using roughly less than 1/100 for the k-points that the usually histogram approach does.
* To use this functionality, download both the calculate_dos.py and tetrahedronemethod.py and place them in the same directory. Modify the calculate_dos.py to point at the netcdf file with your bulk calculation in, and simply run the calculate_dos.py.
You are also welcome to tune parameters in the script, if you want faster but lower resolution. Or higher resolution, but slower.  It should be noted that,
as soon as the program is able to do so, it will report the time remaining of the calculation :)
I have attached an example for both spin polarized iron and unpolarized silicon.

P.S:
   If you look at the iron example you can see one of the reason it requires some patiences to convergence FeMgOFe systems.

M.Albert:
  Hi,Nordland!
  I used your function to calculate DOS of bulk GaN  and bulk Si.
  I set the energy from -5 eV to 5eV, but I found that atk stopped running at 1.85eV for Si and 1.75 eV for GaN. 
  And the picture of Si_dos from -5eV to 1.85eV is the same with yours.

 I don't understand  your code, ???becuse I don't learn this language script before. What should I learn if
 I  want to program  my own functions  like you ?
 Thank you!

Nordland:
Dear Albert.

Does it come with an error when it stops calculating or does it just take a long time?

Regarding writing your own functions, then the best place to start is the tutorials:

1) You can find the tutorials here.
2) You can seek inspiration here on the forum.
3) There is advance tutorial to be found here

Anders Blom:
Some useful Python links here: http://quantumwise.com/forum/index.php?topic=79.0

Navigation

[0] Message Index

[#] Next page

Go to full version