Orbit classification¶
This page defines the footprints and the three classifiers that label an orbit regular or chaotic from a short trace, and the class codes written to the outputs. Usage: Orbit classification.
Without collisions only chaotic orbits are lost late, so a regular orbit
can be stopped early (Albert, Kasilov and Kernbichler 2020, fractal
classifier; Albert et al. 2023, \(J_\parallel\) and topological
classifiers and metrics). Code: src/classification.f90,
src/check_orbit_type.f90, src/cut_detector.f90. Classification
excludes collisions and full-orbit tracing.
Footprints¶
The classifier keeps a stencil of the last nplagr \(= 4\)
microstep states \((r,\vartheta,\varphi,v/v_0,\lambda)\) together with the
running integral
which, at constant speed, is proportional to the parallel adiabatic invariant \(\oint m v_\parallel\, dl\) over one bounce.
Banana tips: when \(\lambda\) changes sign from negative to positive, the state is interpolated to \(\lambda = 0\) by a Lagrange polynomial in \(\lambda\) through the stencil. The footprint is \((r,\vartheta)\) at the tip, together with \(J_\parallel\) since the previous tip; \(J_\parallel\) is then reset.
Field-period planes: when \(\varphi\) crosses a multiple of \(2\pi/N_\text{fp}\), the state is interpolated to the plane in the same way; the footprint is \((r,\vartheta)\).
Tip footprints feed all three classifiers; plane footprints only the fractal one.
Class codes¶
class_parts.dat and results.nc store three codes per marker
(Outputs): \(J_\parallel\), topological, fractal.
Each is 0 (unclassified), 1 (regular) or 2 (chaotic). Passing markers skipped
by notrace_passing or contr_pp get 1 in all three.
\(J_\parallel\) and topological classifiers¶
check_orbit_type processes the tip footprints in order. A recurrence
occurs when the angle of a new footprint lies between the angles of the
first two footprints (angles taken modulo \(2\pi\) around the first).
If the first recurrence comes after at most 10 footprints, both codes are 2.
Otherwise, once nturns (default 8) recurrences are collected:
Topological: the numbers of footprints between consecutive recurrences must be consistent with one closed curve. For every multiplicity \(m \le \texttt{nturns}/2\), each interval of \(m\) recurrences must contain \(N_m\) or \(N_m - 1\) footprints, where \(N_m\) is the first such interval (
check_recurs). In addition, the footprints of each recurrence, sorted by angle, must keep their order in the following recurrences. Both conditions hold: code 1 (ideal); otherwise 2.\(J_\parallel\): code 1 if \(|J_\parallel^{(k)} - J_\parallel^{(2)}| \le 15\) for every tip \(k\) up to the last recurrence, otherwise 2. \(J_\parallel\) is in units of \(\tau\) (cm), so the tolerance is absolute.
With fast_class = .true. and without class_plot, a trapped marker is
stopped and counted confined once its \(J_\parallel\) code is 1.
Fractal classifier¶
At the microstep ntcut (from tcut) the \(N\) collected footprints
of each kind are box-counted (fract_dimension) on their bounding
rectangle in \((r,\vartheta)\) with a \(2^n \times 2^n\) grid,
\(n = \lfloor\log_4 N\rfloor\), so that the number of boxes is about
\(N\). The occupied fraction
is \(\sim 2^{-n}\) for footprints on a curve and of order one for an area; \(\phi > 0.2\) (box-counting dimension \(d > 2 + \log 0.2/\log 2^n\)) is chaotic. Tip footprints set the fractal code; chaotic plane footprints only mark the orbit as not regular. This classifier needs far longer traces but also covers passing orbits.
Albert et al. (2023) derive two metrics from the codes: the fraction of chaotic trapped orbits, and the radial extent of regular regions in \(J_\perp\), which bound chaotic orbits starting further inside.
References¶
C. G. Albert, S. V. Kasilov, W. Kernbichler, Accelerated methods for direct computation of fusion alpha particle losses within stellarator optimization, J. Plasma Phys. 86, 815860201 (2020), https://doi.org/10.1017/S0022377820000203
C. G. Albert, R. Buchholz, S. V. Kasilov, W. Kernbichler, K. Rath, Alpha particle confinement metrics based on orbit classification in stellarators, J. Plasma Phys. 89, 955890301 (2023), https://doi.org/10.1017/S0022377823000351