McMillan’s formula

#!/usr/bin/env python3

import ebbw
import numpy as np
import matplotlib.pyplot as plt

N = 101

TcEB = np.empty(N)
TcMM = np.empty(N)

variables = [
   ('l', np.linspace(0.50, 2.50, N), r'$\lambda$'),
   ('u', np.linspace(0.00, 0.30, N), r'$\mu$'),
   ('w', np.linspace(0.01, 0.03, N), r'$\omega_{\mathrm{E}} / \mathrm{eV}$'),
   ('E', np.linspace(0.10, 6.00, N), r'$E / \mathrm{eV}$'),
]

defaults = dict(T=10.0, l=1.0, u=0.1, w=0.02, E=6.0, W=15.0)

A = 0.94
B = 1.11
C = 0.74

A *= ebbw.Tc(**defaults, A=A, B=B, C=C)
A /= ebbw.critical(**defaults)

figure = plt.figure()

for position, (key, x, label) in enumerate(variables, 221):
   parameters = defaults.copy()

   for i, parameters[key] in enumerate(x):
      print('%s = %g' % (key, parameters[key]))

      TcEB[i] = parameters['T'] = ebbw.critical(**parameters)
      TcMM[i] = ebbw.Tc(**parameters, A=A, B=B, C=C)

   plt.subplot(position)
   plt.autoscale(tight=True)

   plt.plot(x, TcEB, label='Eliashberg')
   plt.plot(x, TcMM, label='McMillan')

   plt.xlabel(label)
   plt.ylabel(r'$T_{\mathrm{c}} / \mathrm{K}$')

plt.legend()

plt.suptitle(r'defaults: '
   r'$\lambda = %(l)g$, '
   r'$\mu = %(u)g$, '
   r'$\omega_{\mathrm{E}} = %(w)g\,\mathrm{eV}$, '
   r'$E = %(E)g\,\mathrm{eV}$, '
   r'$\omega_N = %(W)g\,\omega_{\mathrm{E}}$'
   % defaults, y=0)

plt.tight_layout()
figure.savefig('mcmillan.png', bbox_inches='tight')
Output