Пример #1
0
def write_imag_self_energy(imag_self_energy,
                           mesh,
                           grid_points,
                           band_indices,
                           frequency_points,
                           temperatures,
                           sigmas,
                           scattering_event_class=None,
                           filename=None,
                           is_mesh_symmetry=True):
    for gp, ise_sigmas, fp_sigmas in zip(grid_points, imag_self_energy,
                                         frequency_points):
        for sigma, ise_temps, fp in zip(sigmas, ise_sigmas, fp_sigmas):
            for t, ise in zip(temperatures, ise_temps):
                for i, bi in enumerate(band_indices):
                    pos = 0
                    for j in range(i):
                        pos += len(band_indices[j])
                    write_imag_self_energy_at_grid_point(
                        gp,
                        bi,
                        mesh,
                        fp,
                        ise[:, pos:(pos + len(bi))].sum(axis=1) / len(bi),
                        sigma=sigma,
                        temperature=t,
                        scattering_event_class=scattering_event_class,
                        filename=filename,
                        is_mesh_symmetry=is_mesh_symmetry)
Пример #2
0
def write_imag_self_energy(imag_self_energy,
                           mesh,
                           grid_points,
                           band_indices,
                           frequency_points,
                           temperatures,
                           sigmas,
                           scattering_event_class=None,
                           output_filename=None,
                           is_mesh_symmetry=True,
                           log_level=0):
    for gp, ise_sigmas in zip(grid_points, imag_self_energy):
        for sigma, ise_temps in zip(sigmas, ise_sigmas):
            for t, ise in zip(temperatures, ise_temps):
                for i, bi in enumerate(band_indices):
                    pos = 0
                    for j in range(i):
                        pos += len(band_indices[j])
                    filename = write_imag_self_energy_at_grid_point(
                        gp,
                        bi,
                        mesh,
                        frequency_points,
                        ise[pos:(pos + len(bi))].sum(axis=0) / len(bi),
                        sigma=sigma,
                        temperature=t,
                        scattering_event_class=scattering_event_class,
                        filename=output_filename,
                        is_mesh_symmetry=is_mesh_symmetry)
                    if log_level:
                        print("Imaginary parts of self-energies were "
                              "written to \"%s\"." % filename)