Learning Objectives
- Understand the three critical parameters: Tc, Hc, and Jc
- Learn about the London equations and penetration depth
- Gain intuition for BCS theory and Cooper pairs
- Explore the coherence length and its physical meaning
- Visualize the superconducting phase diagram using Python
2.1 The Three Critical Parameters
Superconductivity is a delicate quantum state that can be destroyed by exceeding any of three critical parameters:
Critical Temperature (Tc)
The critical temperature is the maximum temperature at which a material remains superconducting. Above Tc, the material returns to its normal (resistive) state.
| Material | Type | Tc (K) | Discovery Year |
|---|---|---|---|
| Mercury (Hg) | I | 4.2 | 1911 |
| Lead (Pb) | I | 7.2 | 1913 |
| Niobium (Nb) | II | 9.3 | 1930 |
| NbTi | II | 10 | 1962 |
| Nb₃Sn | II | 18 | 1954 |
| MgB₂ | II | 39 | 2001 |
| YBCO | II | 93 | 1987 |
| HgBa₂Ca₂Cu₃O₈ | II | 133 | 1993 |
Critical Magnetic Field (Hc)
The critical magnetic field is the maximum magnetic field a superconductor can withstand before losing superconductivity.
Temperature Dependence
The critical field decreases as temperature increases, following approximately:
where Hc(0) is the critical field at absolute zero.
Critical Current Density (Jc)
The critical current density is the maximum current per unit area that can flow through a superconductor without destroying the superconducting state.
These three parameters are interconnected—increasing any one makes it easier for the others to exceed their limits.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Create the critical surface
fig = plt.figure(figsize=(12, 5))
# 2D Phase diagram: H vs T
ax1 = fig.add_subplot(121)
T_norm = np.linspace(0, 1, 100) # T/Tc
H_c = 1 - T_norm**2 # Normalized critical field
ax1.plot(T_norm, H_c, 'b-', linewidth=2)
ax1.fill_between(T_norm, 0, H_c, alpha=0.3, color='cyan', label='Superconducting')
ax1.fill_between(T_norm, H_c, 1.2, alpha=0.3, color='lightcoral', label='Normal')
ax1.set_xlabel('T / Tc', fontsize=12)
ax1.set_ylabel('H / Hc(0)', fontsize=12)
ax1.set_title('Phase Diagram: H vs T', fontsize=14)
ax1.legend(fontsize=11)
ax1.set_xlim(0, 1.1)
ax1.set_ylim(0, 1.2)
ax1.grid(True, alpha=0.3)
# Critical point annotation
ax1.annotate('Critical Point\n(Tc, 0)', xy=(1, 0), xytext=(0.7, 0.3),
fontsize=10, arrowprops=dict(arrowstyle='->', color='red'))
# 3D Critical Surface
ax2 = fig.add_subplot(122, projection='3d')
# Create meshgrid for T and J
T = np.linspace(0, 1, 50)
J = np.linspace(0, 1, 50)
T_grid, J_grid = np.meshgrid(T, J)
# Critical surface: H = Hc(0) * (1 - (T/Tc)^2) * (1 - (J/Jc)^2)
H_grid = np.maximum(0, (1 - T_grid**2) * (1 - J_grid**2))
ax2.plot_surface(T_grid, J_grid, H_grid, cmap='coolwarm', alpha=0.8)
ax2.set_xlabel('T / Tc')
ax2.set_ylabel('J / Jc')
ax2.set_zlabel('H / Hc')
ax2.set_title('3D Critical Surface', fontsize=14)
plt.tight_layout()
plt.show()
2.2 London Equations
In 1935, brothers Fritz and Heinz London proposed phenomenological equations to describe the electromagnetic behavior of superconductors.
The First London Equation
This describes how the supercurrent accelerates in response to an electric field, without any resistance.
The Second London Equation
This equation leads directly to the Meissner effect—the expulsion of magnetic fields from superconductors.
London Penetration Depth (λL)
The London equations predict that magnetic fields don't stop abruptly at the surface of a superconductor, but decay exponentially over a characteristic length called the London penetration depth:
Typical values:
- Aluminum: λL ≈ 50 nm
- Niobium: λL ≈ 40 nm
- YBCO: λL ≈ 150 nm
import numpy as np
import matplotlib.pyplot as plt
# Magnetic field penetration into superconductor
x = np.linspace(0, 500, 1000) # Distance in nm
# Different penetration depths
lambda_Al = 50 # nm
lambda_Nb = 40 # nm
lambda_YBCO = 150 # nm
B0 = 1 # External field (normalized)
B_Al = B0 * np.exp(-x / lambda_Al)
B_Nb = B0 * np.exp(-x / lambda_Nb)
B_YBCO = B0 * np.exp(-x / lambda_YBCO)
plt.figure(figsize=(10, 6))
plt.plot(x, B_Al, 'b-', linewidth=2, label=f'Al (λ = {lambda_Al} nm)')
plt.plot(x, B_Nb, 'r-', linewidth=2, label=f'Nb (λ = {lambda_Nb} nm)')
plt.plot(x, B_YBCO, 'g-', linewidth=2, label=f'YBCO (λ = {lambda_YBCO} nm)')
plt.axhline(y=0.37, color='gray', linestyle='--', alpha=0.5)
plt.text(350, 0.4, 'B/B₀ = 1/e ≈ 0.37', fontsize=10, color='gray')
# Add superconductor region
plt.axvspan(0, 500, alpha=0.1, color='cyan')
plt.axvline(x=0, color='black', linewidth=2)
plt.text(250, 0.9, 'Inside Superconductor', fontsize=12, ha='center')
plt.xlabel('Distance from Surface (nm)', fontsize=12)
plt.ylabel('Magnetic Field B/B₀', fontsize=12)
plt.title('Magnetic Field Penetration: B(x) = B₀ exp(-x/λ)', fontsize=14)
plt.legend(fontsize=11)
plt.grid(True, alpha=0.3)
plt.xlim(0, 500)
plt.ylim(0, 1.1)
plt.tight_layout()
plt.show()
2.3 BCS Theory: The Microscopic Picture
In 1957, John Bardeen, Leon Cooper, and John Robert Schrieffer developed the BCS theory, which explains superconductivity at the quantum mechanical level. They received the Nobel Prize in 1972 for this work.
The Cooper Pair Concept
The key insight of BCS theory is that electrons in a superconductor form pairs called Cooper pairs:
How Cooper Pairs Form
- An electron moves through the lattice and attracts nearby positive ions
- This creates a region of slightly increased positive charge density
- A second electron is attracted to this positive region
- The two electrons become weakly bound through this phonon-mediated interaction
coupling"| E2 end
Properties of Cooper Pairs
- Spin: Total spin = 0 (singlet state, opposite spins)
- Size: Coherence length ξ ~ 100-1000 nm (much larger than atom spacing)
- Binding energy: Very weak (~meV), easily broken by thermal energy
- Quantum behavior: All pairs occupy the same quantum state (Bose-Einstein condensate)
The Energy Gap
BCS theory predicts an energy gap Δ in the electronic density of states. This gap represents the minimum energy needed to break a Cooper pair:
The gap decreases with temperature and vanishes at Tc:
import numpy as np
import matplotlib.pyplot as plt
# BCS gap temperature dependence (approximate)
def bcs_gap(T, Tc, Delta0):
"""
Approximate BCS gap vs temperature.
Near Tc: Delta ~ Delta0 * sqrt(1 - T/Tc)
"""
t = T / Tc
# Use approximate formula
if isinstance(t, np.ndarray):
gap = np.zeros_like(t)
mask = t < 1
gap[mask] = Delta0 * np.tanh(1.74 * np.sqrt((1 - t[mask]) / t[mask]))
return gap
else:
if t >= 1:
return 0
return Delta0 * np.tanh(1.74 * np.sqrt((1 - t) / t))
# Parameters
Tc = 9.3 # K (Niobium)
kB = 8.617e-5 # eV/K
Delta0 = 1.76 * kB * Tc # BCS prediction
T = np.linspace(0.1, Tc * 1.1, 200)
Delta = np.array([bcs_gap(t, Tc, Delta0) for t in T])
plt.figure(figsize=(10, 6))
plt.plot(T / Tc, Delta / Delta0, 'b-', linewidth=2, label='BCS prediction')
# Add experimental data points (schematic)
T_exp = np.array([0.2, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.95]) * Tc
Delta_exp = np.array([bcs_gap(t, Tc, Delta0) for t in T_exp])
plt.scatter(T_exp / Tc, Delta_exp / Delta0, color='red', s=80, zorder=5,
label='Typical experimental data')
plt.xlabel('T / Tc', fontsize=12)
plt.ylabel('Δ(T) / Δ(0)', fontsize=12)
plt.title('BCS Energy Gap vs Temperature', fontsize=14)
plt.axhline(y=0, color='black', linewidth=0.5)
plt.axvline(x=1, color='gray', linestyle='--', alpha=0.5, label='Tc')
plt.legend(fontsize=11)
plt.grid(True, alpha=0.3)
plt.xlim(0, 1.1)
plt.ylim(0, 1.1)
# Add annotations
plt.annotate('Gap closes at Tc', xy=(1, 0), xytext=(0.7, 0.2),
fontsize=10, arrowprops=dict(arrowstyle='->', color='gray'))
plt.tight_layout()
plt.show()
print(f"For Niobium (Tc = {Tc} K):")
print(f" BCS gap at T=0: Δ(0) = {Delta0*1000:.3f} meV")
print(f" 2Δ(0)/kB*Tc = {2*Delta0/(kB*Tc):.2f} (BCS: 3.52)")
2.4 Coherence Length
The coherence length ξ is the characteristic size of a Cooper pair—the distance over which the superconducting wave function maintains its phase coherence.
BCS Coherence Length
where vF is the Fermi velocity.
Ginzburg-Landau Parameter κ
The ratio of penetration depth to coherence length determines whether a superconductor is Type I or Type II:
| Parameter | Type I | Type II |
|---|---|---|
| κ value | κ < 1/√2 ≈ 0.71 | κ > 1/√2 ≈ 0.71 |
| ξ vs λ | ξ > λ (large pairs) | ξ < λ (small pairs) |
| Examples | Al, Pb, Hg | NbTi, YBCO |
import numpy as np
import matplotlib.pyplot as plt
# Compare Type I and Type II characteristics
materials = {
'Al': {'lambda': 50, 'xi': 1600, 'type': 'I'},
'Pb': {'lambda': 39, 'xi': 83, 'type': 'I'},
'Nb': {'lambda': 40, 'xi': 38, 'type': 'II'},
'NbTi': {'lambda': 300, 'xi': 4, 'type': 'II'},
'YBCO': {'lambda': 150, 'xi': 1.5, 'type': 'II'}
}
# Calculate kappa
for mat, props in materials.items():
props['kappa'] = props['lambda'] / props['xi']
# Visualization
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# Bar plot of kappa values
names = list(materials.keys())
kappas = [materials[m]['kappa'] for m in names]
colors = ['blue' if materials[m]['type'] == 'I' else 'red' for m in names]
ax1 = axes[0]
bars = ax1.bar(names, kappas, color=colors, alpha=0.7)
ax1.axhline(y=1/np.sqrt(2), color='green', linestyle='--', linewidth=2,
label=f'κ = 1/√2 ≈ {1/np.sqrt(2):.2f}')
ax1.set_ylabel('κ = λ/ξ', fontsize=12)
ax1.set_title('Ginzburg-Landau Parameter κ', fontsize=14)
ax1.legend(fontsize=11)
ax1.set_yscale('log')
# Add Type labels
for bar, name in zip(bars, names):
type_label = materials[name]['type']
ax1.text(bar.get_x() + bar.get_width()/2, bar.get_height() * 1.2,
f'Type {type_label}', ha='center', fontsize=10)
# Scatter plot: lambda vs xi
ax2 = axes[1]
for mat, props in materials.items():
marker = 'o' if props['type'] == 'I' else 's'
color = 'blue' if props['type'] == 'I' else 'red'
ax2.scatter(props['xi'], props['lambda'], s=150, marker=marker,
color=color, label=f"{mat} (Type {props['type']})", alpha=0.7)
# Add κ = 1/√2 line
xi_range = np.logspace(-0.5, 4, 100)
lambda_boundary = xi_range / np.sqrt(2)
ax2.plot(xi_range, lambda_boundary, 'g--', linewidth=2, label='κ = 1/√2')
ax2.fill_between(xi_range, lambda_boundary, 10000, alpha=0.1, color='red')
ax2.fill_between(xi_range, 0.1, lambda_boundary, alpha=0.1, color='blue')
ax2.set_xlabel('Coherence Length ξ (nm)', fontsize=12)
ax2.set_ylabel('Penetration Depth λ (nm)', fontsize=12)
ax2.set_title('Type I vs Type II: λ-ξ Diagram', fontsize=14)
ax2.set_xscale('log')
ax2.set_yscale('log')
ax2.legend(fontsize=10, loc='upper left')
ax2.text(100, 5, 'Type I', fontsize=14, color='blue')
ax2.text(3, 200, 'Type II', fontsize=14, color='red')
plt.tight_layout()
plt.show()
2.5 The Isotope Effect
A key piece of evidence for BCS theory is the isotope effect: the critical temperature depends on the atomic mass M of the superconductor:
This shows that lattice vibrations (phonons) play a crucial role in superconductivity, as predicted by BCS theory.
Physical Interpretation
Heavier isotopes have lower phonon frequencies, which weakens the electron-phonon interaction that forms Cooper pairs. This reduces Tc.
Summary
Key Takeaways
- Three critical parameters (Tc, Hc, Jc) define the superconducting phase boundary
- London equations describe electromagnetic behavior and predict the penetration depth λ
- BCS theory explains superconductivity through phonon-mediated Cooper pairs
- Energy gap Δ exists in the electronic spectrum and vanishes at Tc
- Coherence length ξ characterizes Cooper pair size; κ = λ/ξ determines Type I vs II
- Isotope effect confirms phonon involvement in conventional superconductors
Practice Problems
Problem 1
Calculate the BCS energy gap at T=0 for lead (Tc = 7.2 K). Express your answer in meV and compare it to thermal energy at 4.2 K.
Problem 2
A superconductor has λ = 200 nm and ξ = 5 nm. (a) Calculate κ. (b) Is this Type I or Type II? (c) What does this tell you about the vortex state?
Problem 3
Using the approximate formula Hc(T) = Hc(0)[1 - (T/Tc)²], calculate what fraction of Hc(0) remains when a superconductor is cooled to half its critical temperature.