Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
5dbc221
Remove in-situ of power decay length and use as input calculated from…
chris-ashe Jul 27, 2026
8d7dda1
Add description of scrape-off layer spreading parameter and its impac…
chris-ashe Jul 27, 2026
91aaf75
Add Scarabosio 2014 power spreading factor calculation and correspond…
chris-ashe Jul 27, 2026
69631ed
Add Scrabosio 2014 power spreading length to PhysicsData class
chris-ashe Jul 27, 2026
3595d3c
Add Scrabosio 2014 power spreading factor calculation to ScrapeOffLay…
chris-ashe Jul 27, 2026
0c68ee0
Add Scrabosio 2014 power spreading factor to Divertor model and updat…
chris-ashe Jul 27, 2026
8a86b80
Refactor Divertor model: update divwade method parameters and calcula…
chris-ashe Jul 27, 2026
fda05b5
Tidy some docs and references
chris-ashe Aug 10, 2026
5765ee1
Add WadeDivertorMetrics dataclass and update Divertor model calculati…
chris-ashe Aug 10, 2026
927b708
Add dx_div_lower_outboard_strike variable to DivertorData for strike …
chris-ashe Aug 10, 2026
407fe05
Add lower divertor outboard strike point width and flux expansion fac…
chris-ashe Aug 10, 2026
22cdf90
Add lower divertor flux angle and update strike point width in Divert…
chris-ashe Aug 10, 2026
8867e25
Add plasma outboard midplane flux angle calculation and variable to P…
chris-ashe Aug 10, 2026
9fd7551
Refactor divwade method to remove unused parameters and update flux a…
chris-ashe Aug 10, 2026
c95963e
Add lower divertor outboard wetted area variable to DivertorData
chris-ashe Aug 10, 2026
ec55c2d
Rename 'deg_div_field_plate' to 'deg_b_div_lower_outboard_grazing' ac…
chris-ashe Aug 10, 2026
8739954
Add lower divertor outboard plate-separatrix poloidal angle variable …
chris-ashe Aug 10, 2026
25accf8
Refactor divertor-related variables and methods for clarity and consi…
chris-ashe Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 14 additions & 28 deletions documentation/source/eng-models/divertor.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,21 +169,11 @@ The interactive graph below can be used to investigate how changing the key para
!!! Note ""
`i_div_heat_load == 2`

A divertor heat flux model is provided in Appendix A.II. of [^2]. This uses the Eich scaling
[^3] and S-factor [^4] to calculate the SOL width at the outboard divertor, mapped to the midplane:
A divertor heat flux model is provided in Appendix A.II. of [^wade_21]. This model originally uses the [Eich scaling](../physics-models/plasma_scrape_off_layer.md#eich-2013-model--calculate_eich2013_sol_power_decay_length)
and the [Scrabosio S-factor](../physics-models/plasma_scrape_off_layer.md#scarabosio-2015--calculate_scarabosio2015_power_spreading_factor) to calculate the SOL width at the outboard divertor, mapped to the midplane:

$$
\lambda_{int} = \lambda_{q,Eich} + 1.64S
$$

where

$$
\lambda_{q,Eich} = 1.35 \, P_{\mathrm{SOL}}^{-0.02} \, R_{o}^{0.04} \, B_{p}^{-0.92} \, \epsilon^{0.42}
$$

$$
S = 0.12(n_{e,mid}/10^{19})^{-0.02} \, P_{\mathrm{SOL}}^{-0.21} \, R_{o}^{0.71} \, B_{p}^{-0.82}.
\lambda_{\text{int}} = \lambda_{\text{q,Eich}} + 1.64S
$$

This is then used to calculate the wetted area in the divertor
Expand All @@ -196,44 +186,40 @@ where $N_{div}$ is the number of divertors (1 or 2), $F_{exp}$ is the relevant f
$\theta_{div}$ is the tilt of the separatrix relative to the target in the poloidal plane, and has the form

$$
\theta_{div} = \sin^{-1} [(1+1/\alpha_{div}^{2})\sin\beta_{div}],
\theta_{\text{div}} = \sin^{-1} [(1+1/\alpha_{\text{div}}^{2})\sin(\beta_{\text{div}})],
$$

where

$$
\alpha_{div} = F_{exp}\alpha_{mid}
\alpha_{\text{div}} = F_{\text{exp}}\alpha_{\text{mid}}
$$

$$
\alpha_{mid} = \tan^{-1}\frac{B_{p,mid}}{B_{T,mid}}
\alpha_{\text{mid}} = \tan^{-1}\frac{B_{\text{p,mid}}}{B_{\text{T,mid}}}
$$

where $B_{p,mid}$ and $B_{T,mid}$ are the poloidal and toroidal fields on the outer midplane. The
where $B_{\text{p,mid}}$ and $B_{\text{T,mid}}$ are the poloidal and toroidal fields on the outer midplane. The
parameter $\beta_{div}$ is the angle of incidence between the field line and the target.

The divertor heat flux in $\mathrm{MW}/\mathrm{m^{2}}$ is then
The divertor heat flux in $[\mathrm{MW}/\mathrm{m^{2}}]$ is then

$$
q_{div} = P_{\mathrm{SOL}}(1-f_{rad,div})/A_{wetted}
q_{\text{div}} = P_{\mathrm{SOL}}(1-f_{\text{rad,div}})/A_{\text{wetted}}
$$

where $f_{rad,div}$ is the SOL radiative fraction.
where $f_{\text{rad,div}}$ is the SOL radiative fraction.

For the purposes of this model, the following are inputs:

- Flux expansion $F_{exp}$ (`f_div_flux_expansion`, default = 2)
- Field line angle with respect to divertor target plate (degrees) $\beta_{div}$ (`deg_div_field_plate`), also
- Flux expansion $F_{\text{exp}}$ (`f_div_flux_expansion`, default = 2)
- Field line angle with respect to divertor target plate (degrees) $\beta_{\text{div}}$ (`deg_b_div_lower_outboard_grazing`), also
available as an iteration variable (170)
- SOL radiative fraction, $f_{rad,div}$ (`rad_fraction_sol`).
- SOL radiative fraction, $f_{\text{rad,div}}$ (`rad_fraction_sol`).

[^1]: N.A. Uckan and ITER Physics Group, 'ITER Physics Design Guidelines: 1989',
ITER Documentation Series, No. 10, IAEA/ITER/DS/10 (1990)

[^2]: M.R. Wade & J.A. Leuer, 'Cost Drivers for a Tokamak-Based Compact Pilot Plant, Fusion Science and Technology, 77:2, 119-143 (2021)

[^3]: T. Eich et al, 'Scaling of the tokamak near the scrape-off layer H-mode power width and implications for ITER', Nucl. Fusion 53 093031 (2013)

[^4]: A. Scarabosio et al, 'Scaling of the divertor power spreading (S-factor) in open and closed divertor operation in JET and ASDEX Upgrade, Journal of Nuclear Materials, Vol. 463, 49-54 (2015)
[^wade_21]: M. R. Wade and J. A. Leuer, “Cost Drivers for a Tokamak-Based Compact Pilot Plant,” Fusion Science and Technology, vol. 77, no. 2, pp. 119–143, Feb. 2021, doi: 10.1080/15361055.2020.1858670.

[^5]: Y.-K. M. Peng, J. B. Hicksand AEA Fusion, Culham (UK), "Engineering feasibility of tight aspect ratio Tokamak (spherical torus) reactors". 1990. https://inis.iaea.org/records/ey2rf-dah04
33 changes: 31 additions & 2 deletions documentation/source/physics-models/plasma_scrape_off_layer.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,34 @@ This can be found in Table 2 and Equation 4 from Thornton et.al [^mast_2014]

The $R^2$ value for this fit is 0.55

--------
-------------

## Spreading Parameter

The scrape-off layer (SOL) spreading parameter $S$ represents a Gaussian width that quantifies additional perpendicular heat spreading in the divertor leg. It works alongside the upstream heat flux decay length $\lambda_{q}$ to determine total target heat loads on the divertor.

Unlike $\lambda_{q}$, which is governed by robust upstream parallel and perpendicular transport physics at the plasma midplane, $S$ is inherently a "local" divertor parameter. Deriving a single, absolute multi-machine formula for $S$ is incredibly difficult due to several overlapping regional variables:

- Divertor Geometry: The path length from the X-point to the target tile heavily impacts how much the heat spreads radially.

- Plasma Recycling Regimes: Low-recycling, high-recycling, and detached plasma conditions completely alter the cross-field diffusion rates.

- Localized Radiation: Impurity seeding and neutral gas interactions dissipate power unevenly along the divertor leg, altering the effective Gaussian profile width.

-----------

### Scarabosio 2015 | `calculate_scarabosio2015_power_spreading_factor()`

The H-mode SOL spreading factor, $S$ is given in $\text{m}$ by[^scarabosio_2015]:

$$
S = (0.12(\pm0.07)\times 10^{-3}) P_{\text{sep}}^{0.21(\pm0.11)}R_0^{0.71(\pm0.5)}B_{\text{p}}(a)^{-0.82(\pm0.27)}n_{\text{sep}}^{0.71(\pm0.5)}
$$

- This was fitted from ASDEX Upgrade and JET outer target data
- The $R^2$ value of the regression fit was 0.65

------------

[^eich_2013]: T. Eich et al., “Scaling of the tokamak near the scrape-off layer H-mode power width and implications for ITER,” Nuclear Fusion, vol. 53, no. 9 p. 093031, Aug. 2013, doi: 10.1088/0029-5515/53/9/093031.

Expand All @@ -90,4 +117,6 @@ Plasma Physics and Controlled Fusion, vol. 56, no. 5, p. 055008, Apr. 2014, doi:

[^stangeby_boundary]: P. C. Stangeby, “The Plasma Boundary of Magnetic Fusion Devices,” Jan. 2000, doi: 10.1201/9780367801489.

[^henderson_step]: S. S. Henderson et al., “An overview of the STEP divertor design and the simple models driving the plasma exhaust scenario,” Nuclear Fusion, vol. 65, no. 1, pp. 016033–016033, Nov. 2024, doi: 10.1088/1741-4326/ad93e7.
[^henderson_step]: S. S. Henderson et al., “An overview of the STEP divertor design and the simple models driving the plasma exhaust scenario,” Nuclear Fusion, vol. 65, no. 1, pp. 016033–016033, Nov. 2024, doi: 10.1088/1741-4326/ad93e7.

[^scarabosio_2015]: A. Scarabosio et al., “Scaling of the divertor power spreading (S-factor) in open and closed divertor operation in JET and ASDEX Upgrade,” Journal of Nuclear Materials, vol. 463, pp. 49-54, Aug. 2015, doi: 10.1016/j.jnucmat.2014.11.076.
4 changes: 3 additions & 1 deletion process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,9 @@ def bounds(self) -> tuple[NumberType | None, NumberType | None]:
"bctmp": InputVariable("pulse", float, range=(1.0, 800.0)),
"e_beam_kev": InputVariable("current_drive", float, range=(1.0, 1000000.0)),
"dx_beam_duct": InputVariable("current_drive", float, range=(0.001, 5.0)),
"deg_div_field_plate": InputVariable("divertor", float, range=(0.0, 360.0)),
"deg_b_div_lower_outboard_grazing": InputVariable(
"divertor", float, range=(0.0, 360.0)
),
"beta_poloidal_max": InputVariable("constraints", float, range=(0.01, 2.0)),
"betai": InputVariable("divertor", float, range=(0.0, 1.5707)),
"betao": InputVariable("divertor", float, range=(0.0, 1.5707)),
Expand Down
3 changes: 2 additions & 1 deletion process/core/io/obsolete_vars.py
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@
"wave_mode": "i_ecrh_wave_mode",
"pheatfix": "p_hcd_secondary_extra_heat_mw",
"ftar": "f_p_div_lower",
"beta_div": "deg_div_field_plate",
"beta_div": "deg_b_div_lower_outboard_grazing",
"divclfr": "f_vol_div_coolant",
"divdens": "den_div_structure",
"divplt": "dx_div_plate",
Expand Down Expand Up @@ -473,6 +473,7 @@
"i_cs_stress": None,
"f_nd_alpha_electron": "f_nd_alpha_thermal_electron",
"cost_model": "i_cost_model",
"deg_div_field_plate": "deg_b_div_lower_outboard_grazing",
}

OBS_VARS_HELP = {
Expand Down
Loading