bluemira.plasma_physics.scaling_laws

A collection of common 0-D plasma physics scaling laws.

Classes

PowerLawScaling

Simple power law scaling object, of the form:

Functions

lambda_q(→ float | tuple[float, float, float])

Scrape-off layer power width scaling (Eich et al., 2011) [4]

P_LH(→ float | tuple[float, float, float])

Power requirement for accessing H-mode, Martin scaling [3]

IPB98y2(→ float)

ITER IPB98(y, 2) Confinement time scaling for ELMy H-mode [2]

Module Contents

class bluemira.plasma_physics.scaling_laws.PowerLawScaling(constant: float, constant_err: float, exponents: collections.abc.Iterable[float], exp_errs: numpy.ndarray | list | None = None)

Simple power law scaling object, of the form:

\(c~\pm~cerr \times {a_{1}}^{n1\pm err1}{a_{2}}^{n2\pm err2}...\)

Parameters:
  • constant (float) – The constant of the equation

  • constant_err (float) – The error on the constant

  • exponents (Iterable) – The ordered list of exponents

  • exp_errs (Union[np.ndarray, List, None]) – The ordered list of errors of the exponents

c
constant_err
exponents
__call__(*args)

Call the PowerLawScaling object for a set of arguments.

Returns:

power law scaling

Raises:

ValueError – Number of arguments not equal to number of exponents

calculate(*args, constant=None, exponents=None)

Call the PowerLawScaling object for a set of arguments.

Returns:

power law scaling

calculate_range(*args) tuple[float, float]

Calculate the range of the PowerLawScaling within the specified errors for a set of arguments

Returns:

  • min_value – Minimum value of the power law according to the specified errors

  • max_value – Maximum value of the power law according to the specified errors

Raises:

ValueError – No constant error or error ranges

Return type:

tuple[float, float]

__len__() int

Get the length of the PowerLawScaling object.

Returns:

length of PowerLawScaling object

Return type:

int

bluemira.plasma_physics.scaling_laws.lambda_q(B_t: float, q_cyl: float, p_sol: float, R_0: float, *, error: bool = False) float | tuple[float, float, float]

Scrape-off layer power width scaling (Eich et al., 2011) [4]

Parameters:
  • B_t (float) – Toroidal field [T]

  • q_cyl (float) – Cylindrical safety factor

  • p_sol (float) – Power in the scrape-off layer [W]

  • R_0 (float) – Major radius [m]

  • error (bool) – Whether or not to report the value with +/- errors

Returns:

  • value – Scrape-off layer width at the outboard midplane [m]

  • min_value – (if error) Minimum value of the power law according to the specified errors

  • max_value – (if error) Maximum value of the power law according to the specified errors

Return type:

float | tuple[float, float, float]

Notes

[4] Eich et al., 2011

\(\lambda_q=(0.73\pm0.38)B_t^{-0.78\pm0.25}q_{95}^{1.2\pm0.27}P_{SOL}^{0.1\pm0.11}R_{0}^{0.02\pm0.2}\)

bluemira.plasma_physics.scaling_laws.P_LH(n_e: float, B_t: float, A: float, R_0: float, *, error: bool = False) float | tuple[float, float, float]

Power requirement for accessing H-mode, Martin scaling [3]

Parameters:
  • n_e (float) – Electron density [1/m^3]

  • B_t (float) – Toroidal field at the major radius [T]

  • A (float) – Plasma aspect ratio

  • R_0 (float) – Plasma major radius [m]

  • error (bool) – Whether or not to return error bar values

Returns:

  • value – Power required to access H-mode [W]

  • min_value – (if error) Minimum value of the power law according to the specified errors

  • max_value – (if error) Maximum value of the power law according to the specified errors

Return type:

float | tuple[float, float, float]

Notes

[3] Martin et al., 2008, DOI: 10.1088/1742-6596/123/1/012033 equation (3)

\(P_{LH}=2.15e^{\pm 0.107}n_{e20}^{0.782 \pm 0.037}\) \(B_{T}^{0.772 \pm 0.031}a^{0.975 \pm 0.08}R_{0}^{0.999 \pm 0.101}\)

bluemira.plasma_physics.scaling_laws.IPB98y2(I_p: float, B_t: float, p_sep: float, n: float, mass: float, R_0: float, A: float, kappa: float) float

ITER IPB98(y, 2) Confinement time scaling for ELMy H-mode [2]

Parameters:
  • I_p (float) – Plasma current [A]

  • B_t (float) – Toroidal field at R_0 [T]

  • p_sep (float) – Separatrix power [W] (a.k.a. loss power (corrected for charge exchange and orbit losses))

  • n (float) – Line average plasma density [1/m^3]

  • mass (float) – Average ion mass [a.m.u.]

  • R_0 (float) – Major radius [m]

  • A (float) – Aspect ratio

  • kappa (float) – Plasma elongation

Returns:

Energy confinement time [s]

Return type:

float

Notes

[2] ITER Physics Expert Group, Nucl. Fus. 39, 12

\(\tau_{E}=0.0562I_p^{0.93}B_t^{0.15}P_{sep}^{-0.69}n^{0.41}M^{0.19}R_0^{1.97}A^{-0.58}\kappa^{0.78}\)