Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.85 KB | None | 0 0
  1. def save_dos(calc):                                                                                
  2.     k, spin = 0, 0                                                                                  
  3.     sigma   = 0.1                                                                                  
  4.     e_min   = -10.0                                                                                    
  5.     e_max   = +10.0                                                                                
  6.     e_step  = 0.01                                                                                    
  7.                                                                                                    
  8.     def gauss_ij(energy_i, energy_j, sigma):                                                        
  9.         denergy_ij = energy_i[:, np.newaxis] - energy_j[np.newaxis, :]                              
  10.         norm = 1.0 / (sigma * np.sqrt(2 * np.pi))                                                  
  11.         return norm * np.exp(-0.5 * denergy_ij**2 / sigma**2)                                      
  12.                                                                                                    
  13.     energy_g = np.arange(e_min, e_max, e_step) # Energy grid                                        
  14.     eig_n    = calc.get_eigenvalues(k, spin) - calc.get_fermi_level()                              
  15.     dos      = np.sum(gauss_ij(energy_g, eig_n, sigma), axis = 1)                                  
  16.                                                                                                    
  17.     parprint('Saving DOS {}'.format(data_obj.dos.filename))                                        
  18.     if mpi.world.rank == 0:                                                                        
  19.         np.save(data_obj.dos.filename, (energy_g, dos))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement