def get_imag_self_energy(self, grid_points, frequency_step=1.0, sigmas=[None], temperatures=[0.0], filename=None): ise = ImagSelfEnergy(self._interaction, is_thm=self._is_thm) for gp in grid_points: ise.set_grid_point(gp) ise.run_interaction() for sigma in sigmas: ise.set_sigma(sigma) for t in temperatures: ise.set_temperature(t) max_freq = ( np.amax(self._interaction.get_phonons()[0]) * 2 + sigma * 4) fpoints = np.arange(0, max_freq + frequency_step / 2, frequency_step) ise.set_fpoints(fpoints) ise.run() gamma = ise.get_imag_self_energy() for i, bi in enumerate(self._band_indices): pos = 0 for j in range(i): pos += len(self._band_indices[j]) write_damping_functions( gp, bi, self._mesh, fpoints, gamma[:, pos:(pos + len(bi))].sum(axis=1) / len(bi), sigma=sigma, temperature=t, filename=filename)
def get_imag_self_energy(self, grid_points, frequency_step=1.0, sigmas=[None], temperatures=[0.0], filename=None): ise = ImagSelfEnergy(self._interaction, is_thm = self._is_thm) for gp in grid_points: ise.set_grid_point(gp) ise.run_interaction() for sigma in sigmas: ise.set_sigma(sigma) for t in temperatures: ise.set_temperature(t) max_freq = (np.amax(self._interaction.get_phonons()[0]) * 2 + sigma * 4) fpoints = np.arange(0, max_freq + frequency_step / 2, frequency_step) ise.set_fpoints(fpoints) ise.run() gamma = ise.get_imag_self_energy() for i, bi in enumerate(self._band_indices): pos = 0 for j in range(i): pos += len(self._band_indices[j]) write_damping_functions( gp, bi, self._mesh, fpoints, gamma[:, pos:(pos + len(bi))].sum(axis=1) / len(bi), sigma=sigma, temperature=t, filename=filename)