How to find Density of states numerically?

Click For Summary
SUMMARY

This discussion focuses on the numerical computation of the density of states (DOS) for a 2D crystal using a known dispersion dataset. The key formula referenced is from Ashcroft and Mermin, specifically Equation (8.63), which involves integrating over the energy surface in k-space. The process includes selecting an energy level, counting the number of data points within a specified energy range, and calculating the DOS as g(ε) = N(ε)/Δε. Additionally, methods such as using a delta function approximation and tetrahedron methods for integration over the Brillouin zone (BZ) are discussed as practical approaches for this computation.

PREREQUISITES
  • Understanding of dispersion datasets in solid-state physics
  • Familiarity with the concept of k-space and energy surfaces
  • Knowledge of numerical integration techniques
  • Experience with delta function approximations in computational physics
NEXT STEPS
  • Research the implementation of the tetrahedron method for calculating density of states
  • Learn about delta function approximations and their applications in numerical simulations
  • Explore the use of Lorentzian functions for approximating delta functions in DOS calculations
  • Study the integration techniques over the Brillouin zone for various crystal structures
USEFUL FOR

Physicists, computational scientists, and materials researchers focused on solid-state physics and numerical methods for analyzing electronic properties of materials.

PRB147
Messages
122
Reaction score
0
If one has already known the dispersion dataset,
for example, for 2D crystal, we know the 1000*2000 dataset for E=E(k_x,k_y),
How to find the density of states numerically?
 
Physics news on Phys.org
Equation (8.63) from Ashcroft and Mermin will be helpful. I have listed it below for convenience:

##g_n(\mathcal{E})=\int_{S_n(\mathcal{E})} \frac{dS}{4\pi^3}\frac{1}{|\nabla\mathcal{E}_n(k_x,k_y,k_z)|}##

I know you want to know how to compute density of states numerically. I was referring to this formula merely to give an insight behind the procedure involved in doing this computation. So what is happening in the above formula is this: in k-space you have found a surface with equal energy ##\mathcal{E}## and you are integrating the quantity ##|\nabla\mathcal{E}_n(\textbf{k})|^{-1}## over the surface. In other words, this integral is "counting" the number of states that lie on this surface of equal energy. This is the density of states by definition. Now, in your data set, you pretty much have to: (1) pick an energy ##\mathcal{E}## (2) determine how many data points, which are indexed by ##(k_x,k_y)##, have an energy ##\mathcal{E}(k_x,k_y)## such that ## \mathcal{E} \le \mathcal{E}(k_x,k_y) \le \mathcal{E} + \Delta \mathcal{E}##. Then your density of states will be i.e. ##g(\mathcal{E}) = N(\mathcal{E})/\Delta \mathcal{E}##, where ##N(\mathcal{E})## is the number of data points are counted.
 
Last edited:
Thank you very much, PhysTech. Thank you!
 
The easy way to do this numerically is to use the equation g(\epsilon) = \sum_{k} \delta(\epsilon - \epsilon_k)
and use an approximation for the delta function. Basically you setup a grid for your energies E, initialize your density of states function g(E) on those points to zero, and then loop over your momentum (and band index) and add the delta function approximation to your g(E).
 
daveyrocket said:
The easy way to do this numerically is to use the equation g(\epsilon) = \sum_{k} \delta(\epsilon - \epsilon_k)
and use an approximation for the delta function. Basically you setup a grid for your energies E, initialize your density of states function g(E) on those points to zero, and then loop over your momentum (and band index) and add the delta function approximation to your g(E).
Numerically, it seems that the dos is calculated from the integration over BZ through the so called tetrahedron methods. But I have no experience on that.
 
Thank Daveyrocket and PhysTech very much, discussion is always helpful
 
I've used daveyrocket's method with a Lorentzian of small width in the past. Not sure if this is the most efficient approximation for the delta function, but it's real easy to work with.
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 13 ·
Replies
13
Views
4K
  • · Replies 2 ·
Replies
2
Views
6K
  • · Replies 6 ·
Replies
6
Views
6K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 10 ·
Replies
10
Views
4K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K