def mattis_bardeen_kernel1(e, t, w): """ Calculate the Mattis-Bardeen kernel of the integral for sigma1 of the complex conductivity where E = hf < 2 ∆ (tones with frequency, f, do not break Cooper pairs). Parameters ---------- e: numpy.ndarray reduced energy (E / ∆) t: float reduced temperature (kB T / ∆) w: float reduced frequency (h f / ∆) Returns ------- k: numpy.ndarray The kernel for the integral for sigma1 """ k = 2 * (fermi(e, t) - fermi(e + w, t)) * (dos_bcs(e, 1, real=True) * dos_bcs(e + w, 1, real=True) + dop_bcs(e, 1, real=True) * dop_bcs(e + w, 1, real=True)) / w k[np.isnan(k)] = 0 return k
def dynes_kernel1(e, t, w, g): """ Calculate the Dynes kernel of the integral for sigma1 of the complex conductivity where E = hf < 2 ∆ (tones with frequency, f, do not break Cooper pairs). From Herman et al. Phys. Rev. B, 96, 1, 2017. Parameters ---------- e: numpy.ndarray reduced energy (E / ∆) t: float reduced temperature (kB T / ∆) w: float reduced frequency (h f / ∆) g: float reduced Dynes parameter (gamma / ∆). Returns ------- k: numpy.ndarray The kernel for the integral for sigma1 """ k = (fermi(e, t) - fermi(e + w, t)) * (dos_dynes(e, 1, g, real=True) * dos_dynes(e + w, 1, g, real=True) + dop_dynes(e, 1, g, real=True) * dop_dynes(e + w, 1, g, real=True)) / w k[np.isnan(k)] = 0 return k
def _integrand_dynes(x, dr, t, g, tcr): return -2 * dop_dynes(x, 1, g / dr) * fermi(x, t / BCS / dr * tcr * (g + np.sqrt(g ** 2 + 1)))
def _integrand_bcs(x, dr, t): return -2 * dop_bcs(x, 1j, real=False) * fermi(np.sqrt(x**2 + 1), t / BCS / dr)
def f(en, temp): return fermi(en, temp, units='J')[:, np.newaxis]
def _integrand_dynes(x, t, dr, bcs, g, tc): return dos_dynes(x, dr, g) * fermi(x, t / bcs * tc * (g + np.sqrt(g**2 + 1)))
def _integrand_bcs(x, t, dr, bcs): return dos_bcs(x, dr) * fermi(x, t / bcs)