Fast-ion confinement#
These fields describe the fast-ion confinement simulations: fusion-born alpha particles followed along their guiding-center orbits in each equilibrium, and whether each one is confined or lost. For quantities describing the equilibria, see Ideal MHD.
Simulation setup#
Code |
|
Physics |
Collisionless guiding-center motion in Boozer coordinates |
Particles |
Alpha particles of 3.5 MeV (\(v \approx 1.3 \times 10^{7}\) m/s): 15,000 per configuration in the confinement data, and 6,000 randomly selected per configuration in the trajectory data |
Birth surfaces |
\(s = 0.1\), \(0.25\) and \(0.5\); in the confinement data, 5,000 particles on each |
Birth distribution |
Uniform over the flux surface; isotropic in velocity, so \(v_\parallel\) is uniform on \([-v, v]\) |
Loss condition |
The particle reaches \(s = 0.98\), just inside the plasma boundary (\(s = 1\)), where the integrator stops it |
Duration |
Until the particle is lost, or \(t_\text{max}\) ( |
Machine size |
Each configuration is scaled to a randomly chosen reactor size and field strength |
Confinement Data#
The confinement files hold the start and end state of every traced particle: 15,000 alpha particles per configuration, and up to 3,000 configurations per file, along with the Ideal MHD fields of each configuration. They are enough to compute loss fractions, lost energy and heat fluxes.
A particle is lost if its confinement time is shorter than the simulation
time, \(t_\text{loss} < t_\text{max}\). Loss quantities are computed over the
particles born on one surface; for example, the loss fraction of the particles
born on \(s = 0.1\) is bb.loss_fraction(confinement_time, t_max, s_init, s0=0.1)
(see loss_fraction()). For a lost particle,
zeta_end and theta_end give where it left the plasma; the
heat-flux benchmark takes these as its strike point
on the plasma boundary.
HDF5 name |
Symbol |
Type |
Description |
|---|---|---|---|
|
\(t_\text{loss}\) |
array |
Time at which the particle was lost, i.e. reached \(s = 0.98\) [s]. Equals |
|
\(s_0\) |
array |
Birth surface, \(s_0 \in \{0.1, 0.25, 0.5\}\). |
|
\(\theta_{B,0}\) |
array |
Initial Boozer poloidal angle, in \([0, 2\pi)\) [rad]. |
|
\(\zeta_{B,0}\) |
array |
Initial Boozer toroidal angle, in \([0, 2\pi)\) [rad]. |
|
\(v_{\parallel,0}\) |
array |
Initial parallel velocity [m/s]. |
|
\(s_\text{end}\) |
array |
Normalized toroidal flux when the simulation stopped. |
|
\(\theta_{B,\text{end}}\) |
array |
Final Boozer poloidal angle, in \([-\pi, \pi]\) [rad]. |
|
\(\zeta_{B,\text{end}}\) |
array |
Final Boozer toroidal angle, in \([-\pi, \pi)\) [rad]. |
|
\(v_{\parallel,\text{end}}\) |
array |
Final parallel velocity [m/s]. |
|
\(t_\text{max}\) |
float |
Maximum simulation time, 0.1 s [s]. |
|
– |
float |
Relative and absolute tolerance of the adaptive integrator. |
Trajectory Data#
The trajectory files hold the full guiding-center orbits of 6,000 particles per configuration, sampled every 1 µs for the first 1 ms, for up to 40 configurations per file, along with the Ideal MHD fields of each configuration. The samples of an orbit are regularly spaced, 1 µs apart, unless the particle is lost: its trajectory then ends with one last sample at the time it was lost.
The orbits are stored in a compressed sparse row (CSR) format. Orbits have
different lengths, because a lost particle stops early, so all samples of all
orbits in a file are stacked in one array, traj_data, and two offset arrays
mark where each orbit and each configuration starts. Unlike the other fields,
traj_data, traj_offsets and config_offsets run over the whole file
rather than one configuration. load_trajectory()
reads one orbit, and read_trajectories() all orbits
of a configuration; see Loading trajectory data.
HDF5 name |
Symbol |
Type |
Description |
|---|---|---|---|
|
– |
array |
All orbit samples in the file, one row per sample. Columns \((t, s, \theta_B, \zeta_B, v_\parallel)\): time [s], normalized toroidal flux, Boozer poloidal and toroidal angles in \([-\pi, \pi)\) [rad], parallel velocity [m/s]. |
|
– |
array |
Orbit |
|
– |
array |
The orbits of configuration |
|
\(\Delta t\) |
float |
Time between samples, 1 µs [s]. |
|
\(t_\text{max}\) |
float |
Maximum simulation time, 1 ms [s]. |
|
– |
float |
Relative and absolute tolerance of the adaptive integrator. |