Skip to content
All work
  • NTNU
  • TMA4320 Introduction to Scientific Computing
  • Group of 3
  • Grade A

Numerical Boundary-Value Problems and the Josephson Effect

Superconductors can carry current with zero resistance, even across a thin layer of ordinary metal. This effect is used in quantum computers and extremely sensitive sensors. We first wrote and tested our own tools for solving the equations involved, then used numerical methods to compute that current.

Team
Group of 3, with Andrine Holen and Emily Ann Mercer. We each worked through every task, compared approaches and results, and then split the final write-up.
Period
Apr 2026
Status
Completed
Grade
A
Tools
Python · NumPy · SciPy · matplotlib

Problem

When two superconductors are separated by a thin normal metal, a current can flow between them with zero resistance, driven only by the difference in their quantum phases. This Josephson effect is the key component of superconducting qubits and ultra-sensitive magnetic sensors.

Describing it requires solving a nonlinear boundary-value problem: the solution is fixed at both ends, not just at the start. The project had two parts: build reliable solvers ourselves, then apply numerical methods to the junction.

Technical skills

  • Adaptive Runge–Kutta methods with error estimation and step-size control
  • Root finding (secant method) and the shooting method for boundary-value problems
  • Solving nonlinear boundary-value problems with scipy.integrate.solve_bvp
  • Complex linear algebra: rewriting complex matrix equations as real vector systems
  • Continuation methods: reusing solutions as initial guesses
  • Numerical integration (Simpson's rule) and verification against exact solutions

Approach

  1. Adaptive Runge–Kutta solver

    Takes small steps where the solution changes quickly and large steps where it does not.

  2. Shooting method

    Guess the missing initial slope, integrate, and correct the guess with a root finder until the far boundary is hit.

  3. Verify

    Compare with exact solutions and SciPy's boundary-value solver.

  4. The physics

    Solve the Usadel equations for the junction with SciPy, then compute the density of states and the supercurrent.

Shooting iterations
Four trial solutions of the shooting method; the last two coincide and hit the boundary condition.
Step size vs curvature
Normalised inverse step size and curvature against x: the solver takes smaller steps where curvature is large.
Left: the shooting method improves its guess until it hits the target at the far end. Right: the solver automatically takes smaller steps where the solution bends the most.[Notebook figure]

Results

Superconductivity leaking into the metal
Density of states against energy for three junction lengths, with a gap at low energy that narrows as the junction gets longer.
Current vs phase difference
Supercurrent against phase difference compared with a sine curve: same shape, smaller amplitude.
Left: near the superconductors, the ordinary metal starts to behave a little like a superconductor itself, which shows up as a dip at low energy; the longer the junction, the weaker the effect. Right: the current through the junction rises and falls with the phase difference, much like a sine curve.[Notebook figure]

The full notebook with all calculations and plots is on GitHub.

See the project on GitHub (opens in new tab)