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)
Esempio n. 5
0
 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)