Edge Physics: SOL and Divertor Heat Flux

This tutorial covers the Scrape-Off Layer (SOL) and divertor target heat flux, the most critical engineering constraint for steady-state fusion reactors. You will learn to:

  1. Compute the midplane heat flux width from the Eich scaling

  2. Estimate divertor target conditions using the two-point model

  3. Assess whether a reactor design stays within material limits

Prerequisite: Fusion Engineering 101 (section 6).

The Power Exhaust Problem

In a tokamak, all heating power that is not radiated must flow through the SOL to the divertor targets. The total power crossing the separatrix:

\[P_\text{SOL} = P_\text{heat} - P_\text{rad,core}\]

For ITER: \(P_\text{SOL} \approx 100\) MW. This power is concentrated in a narrow annulus of width \(\lambda_q\) (a few mm) mapped along field lines to the divertor. The resulting heat flux density can exceed 100 MW/m2 in the parallel direction, far above material limits.

Step 1: Compute the Heat Flux Width

from scpn_fusion.core.sol_model import eich_heat_flux_width

# ITER parameters
B_p = 1.2     # poloidal field at outboard midplane [T]
lambda_q = eich_heat_flux_width(B_p)
print(f"Eich lambda_q = {lambda_q:.2f} mm")

The Eich scaling (Eich 2013):

\[\lambda_q\;[\text{mm}] = 0.63 \; B_{p,\text{omp}}^{-1.19}\]

predicts \(\lambda_q \sim 1\) mm for ITER — a severe engineering challenge.

Step 2: Two-Point Model

from scpn_fusion.core.sol_model import TwoPointSOL

sol = TwoPointSOL(
    R0=6.2,
    a=2.0,
    B0=5.3,
    Ip_MA=15.0,
    P_sol_mw=100.0,
    kappa=1.7,
)

result = sol.solve()

print(f"Upstream Te: {result.T_u_eV:.0f} eV")
print(f"Target Te: {result.T_t_eV:.1f} eV")
print(f"Target density: {result.n_t:.2e} m^-3")
print(f"Heat flux width: {result.lambda_q_mm:.2f} mm")
print(f"Peak parallel heat flux: {result.q_parallel_peak:.1f} MW/m^2")
print(f"Peak surface heat flux: {result.q_surface_peak:.1f} MW/m^2")

Step 3: Compare Reactor Designs

import numpy as np
import matplotlib.pyplot as plt

machines = {
    "ITER": dict(R0=6.2, a=2.0, B0=5.3, Ip_MA=15.0, P_sol_mw=100, kappa=1.7),
    "SPARC": dict(R0=1.85, a=0.57, B0=12.2, Ip_MA=8.7, P_sol_mw=30, kappa=1.97),
    "ARC": dict(R0=3.3, a=1.13, B0=9.2, Ip_MA=7.8, P_sol_mw=80, kappa=1.8),
    "EU-DEMO": dict(R0=9.1, a=2.93, B0=5.7, Ip_MA=18.0, P_sol_mw=150, kappa=1.59),
}

results = {}
for name, params in machines.items():
    sol = TwoPointSOL(**params)
    results[name] = sol.solve()
    print(f"{name:10s}: q_surf = {results[name].q_surface_peak:6.1f} MW/m^2, "
          f"lambda_q = {results[name].lambda_q_mm:.2f} mm")

# Material limit
print(f"\nTungsten steady-state limit: ~10 MW/m^2")

Step 4: Sensitivity Study

How does \(P_\text{SOL}\) affect target heat flux?

P_range = np.linspace(20, 150, 30)
q_surf = []

for P in P_range:
    sol = TwoPointSOL(R0=6.2, a=2.0, B0=5.3, Ip_MA=15.0, P_sol_mw=P, kappa=1.7)
    r = sol.solve()
    q_surf.append(r.q_surface_peak)

fig, ax = plt.subplots(figsize=(8, 4))
ax.plot(P_range, q_surf, "b-", linewidth=2)
ax.axhline(10.0, color="red", ls="--", label="Tungsten limit (10 MW/m²)")
ax.set_xlabel("P_SOL [MW]")
ax.set_ylabel("Peak surface heat flux [MW/m²]")
ax.set_title("Divertor Heat Flux vs. SOL Power (ITER)")
ax.legend()
plt.tight_layout()
plt.show()

Mitigation Strategies

When \(q_\text{surf}\) exceeds material limits, the options are:

  1. Impurity seeding (N, Ne, Ar): Radiate 50–80% of \(P_\text{SOL}\) before it reaches the target. Reduces \(T_t\) to a few eV (detached divertor regime).

  2. Flux expansion: Increase the target-to-midplane flux tube area ratio by moving the X-point or adding a secondary X-point (snowflake divertor).

  3. Long-legged divertor: Increase connection length \(L_\parallel\) to enhance radiation and recombination.

  4. Liquid metal targets: Replace solid tungsten with flowing lithium or tin, which can absorb higher heat fluxes.

  5. Strike-point sweeping: Oscillate the separatrix strike point across the target to spread the heat load temporally.

These strategies are outside the scope of the two-point model but inform the design targets passed to SCPN-Fusion-Core’s control modules.