Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
17 changes: 14 additions & 3 deletions documentation/source/physics-models/plasma_confinement.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ The loss power $P_{\text{L}}$ [$\mathtt{p\_plasma\_loss\_mw}$] is calculated fro
Published confinement scalings are all based on low radiation pulses. A power
plant will certainly be a high radiation machine, both in the core, due to
bremsstrahlung and synchrotron radiation, and in the edge due to impurity
seeding. The scaling data does not predict this radiation [^23] [^24], that needs to be
seeding. The scaling data does not predict this radiation [^24] [^25], that needs to be
done by the radiation model. However, if the transport is very "stiff", as
predicted by some models, then the additional radiation causes an almost equal
drop in power transported by ions and electrons, leaving the confinement
Expand Down Expand Up @@ -647,6 +647,16 @@ $$

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

#### 51: NCST spherical tokamak scaling (L-mode) | `ncst_confinement_time()`

Is selected with `i_confinement_time = 51` [^23]

$$
\tau_{\text{E}} = 0.11 I_{\text{p}}^{0.33} B_{\text{T}}^{1.03} \overline{n}_{19}^{-0.01} P_{\text{L}}^{-0.07}
$$

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

### Transport Powers

After the confinement time scaling with $H$-factor correction has been calculated, the ion and electron transport power densities are found. `PROCESS` assumes the scaling confinement time to be equal to the ion and electron energy confinement time.
Expand Down Expand Up @@ -729,6 +739,7 @@ The value of `f_t_alpha_energy_confinement_min` can be set to the desired minimu
[^20]: J. E. Menard, “Compact steady-state tokamak performance dependence on magnet and core physics limits,” Philosophical Transactions of the Royal Society A, vol. 377, no. 2141, pp. 20170440-20170440, Feb. 2019, doi: https://doi.org/10.1098/rsta.2017.0440.
[^21]: P. F. Buxton, L. Connor, A. E. Costley, M. Gryaznevich, and S. McNamara, “On the energy confinement time in spherical tokamaks: implications for the design of pilot plants and fusion reactors,” vol. 61, no. 3, pp. 035006-035006, Jan. 2019, doi: https://doi.org/10.1088/1361-6587/aaf7e5.
[^22]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91.
[^23]: H. Lux, R. Kemp, E. Fable, and R. Wenninger, “Radiation and confinement in 0D fusion systems codes,” Plasma Physics and Controlled Fusion, vol. 58, no. 7, pp. 075001–075001, May 2016, doi: https://doi.org/10.1088/0741-3335/58/7/075001.
[^24]: H. Lux, R. Kemp, D. J. Ward, and M. Sertoli, “Impurity radiation in DEMO systems modelling,” Fusion Engineering and Design, vol. 101, pp. 42–51, Dec. 2015, doi: https://doi.org/10.1016/j.fusengdes.2015.10.002.
[^23]: Y. Chen, X. C. Chen, X. F. Wu, and S. Q. Liu, “Energy confinement scaling in the NCST spherical tokamak,” AIP Advances, vol. 16, no. 3, pp. 035043-035043, Mar. 2026, doi: https://doi.org/10.1063/5.0311657.
[^24]: H. Lux, R. Kemp, E. Fable, and R. Wenninger, “Radiation and confinement in 0D fusion systems codes,” Plasma Physics and Controlled Fusion, vol. 58, no. 7, pp. 075001–075001, May 2016, doi: https://doi.org/10.1088/0741-3335/58/7/075001.
[^25]: H. Lux, R. Kemp, D. J. Ward, and M. Sertoli, “Impurity radiation in DEMO systems modelling,” Fusion Engineering and Design, vol. 101, pp. 42–51, Dec. 2015, doi: https://doi.org/10.1016/j.fusengdes.2015.10.002.
5 changes: 5 additions & 0 deletions process/data_structure/physics_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,11 @@ class ConfinementTimeModel(IntEnum):
f"ITPA20-IL ({ConfinementMode.H_MODE.abbreviation})",
ConfinementMode.H_MODE,
)
NCST = (
51,
f"NCST ({ConfinementMode.L_MODE.abbreviation})",
ConfinementMode.L_MODE,
)

def __new__(cls, value: int, full_name: str, mode: ConfinementMode = None):
"""Create a new instance of ConfinementTimeModel.
Expand Down
56 changes: 56 additions & 0 deletions process/models/physics/confinement_time.py
Original file line number Diff line number Diff line change
Expand Up @@ -923,6 +923,16 @@ def calculate_confinement_time(
self.data.physics.kappa_ipb,
)

# ==========================================================================
# NCST spherical tokamak L-mode confinement time scaling
elif model == ConfinementTimeModel.NCST:
t_electron_confinement = self.ncst_confinement_time(
pcur=pcur,
b_plasma_toroidal_on_axis=b_plasma_toroidal_on_axis,
p_plasma_loss_mw=p_plasma_loss_mw,
dnla19=dnla19,
)

# ==========================================================================

else:
Expand Down Expand Up @@ -4058,3 +4068,49 @@ def itpa20_il_confinement_time(
* kappa_ipb**0.673
* aion**0.302
)

@staticmethod
def ncst_confinement_time(
pcur: float,
Comment thread
chris-ashe marked this conversation as resolved.
b_plasma_toroidal_on_axis: float,
p_plasma_loss_mw: float,
dnla19: float,
Comment thread
grmtrkngtn marked this conversation as resolved.
) -> float:
"""Calculate the NCST spherical tokamak L-mode confinement time

Parameters
----------
pcur :
Plasma current [MA]
b_plasma_toroidal_on_axis :
Toroidal magnetic field [T]
p_plasma_loss_mw :
Thermal power lost due to transport through the LCFS [MW]
dnla19 :
Central line-averaged electron density in units of 10¹⁹ m⁻³

Returns
-------
:
float: NCST confinement time [s]

Notes
-----
- The electron density used to derive the scaling was measured locally
at a normalised minor radius of approximately 0.9. The central
line-averaged electron density is used here as the closest available
PROCESS quantity.

References
----------
[1] Y. Chen et al., “Energy confinement scaling in the NCST spherical
tokamak,” AIP Advances, vol. 16, no. 3, pp. 035043-035043,
Mar. 2026, doi: https://doi.org/10.1063/5.0311657.
"""
return (
0.11
* pcur**0.33
* b_plasma_toroidal_on_axis**1.03
* p_plasma_loss_mw ** (-0.07)
* dnla19 ** (-0.01)
)
5 changes: 5 additions & 0 deletions tests/unit/models/physics/test_confinement_time.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,11 @@
(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0),
0.09877603755850378,
),
(
PlasmaConfinementTime.ncst_confinement_time,
(1.0, 1.0, 1.0, 1.0),
0.11,
),
],
)
def test_confinement_time(func, args, expected):
Expand Down
Loading