Cookie Consent by Free Privacy Policy Generator Finding Magnetic Nulls with a Growth Vector | Igor Moiseev
Lab › The Geometry of Forbidden Directions › Part 4 of 8 · start at Part 1

Finding Magnetic Nulls with a Growth Vector

A magnetic null — where the field vanishes, and a candidate site for reconnection — announces itself as a jump in a sub-Riemannian invariant. This post (the fourth of eight) takes the growth-vector estimator to a real dynamo field, checks it against the standard eigenvalue finder as a tangent-cone consistency check, and is honest about exactly where it agrees and where it stops.

By Igor Moiseev · 14 August 2026
The Geometry of Forbidden Directions
  1. The Geometry of Forbidden Directions: A Research Program
  2. The Magnetic Contact Geometry: Larmor Motion Is Heisenberg
  3. Reading the Field Gradient from the Caustic
  4. Finding Magnetic Nulls with a Growth Vector ← you are here
  5. The Null Gallery: Grounding the Estimator in the Real Sun
  6. The Transition State: Reading a Null Collision from One Point
  7. The Litmus Tests: What Survived Our Own Review
  8. Jupiter's Buried Skeleton: The Polar Patch as a Combination of Separatrices
Appendices — Theory Background
  1. D1. Connections, Holonomy, and Curvature
  2. D2. The Selection Rule: Why Anisotropic Transport Isn't Sub-Riemannian
  3. D3. The Law Q = d + k + 2, Derived
  4. D4. The Magnetic Geodesic Flow and Its Conjugate Locus
  5. D5. The Nilpotent-Deviation Gradient Formula
Where we are
Part 2 built the magnetic geometry and read the field's strength off the growth vector; Part 3 read its gradient off the caustic. This post goes to the places that matter most — the nulls, where the field vanishes — and asks whether the sub-Riemannian detector earns its keep against the tool plasma physicists already use.

Nulls as a jump in dimension

Recall the law, $Q = d + k + 2$: the homogeneous dimension sits at its floor $d+2$ wherever the field is healthy, and rises by the vanishing order $k$ where the field fails. In three dimensions that means

\[Q = 5 \ \text{almost everywhere},\qquad Q = 6 \ \text{at a generic (linear) null}.\]

A magnetic null is a candidate site for reconnection — where the field direction is undefined and field lines can most easily break and reconnect, releasing the energy behind solar flares and magnetospheric substorms. (A null does not by itself make reconnection happen: three-dimensional reconnection requires non-ideal evolution in a localized region, and can also occur with no null at all — see Pontin & Priest 2022.) Finding and classifying nulls is a standard task, done by locating the zeros of $\mathbf B$ and reading the eigenvalues of the Jacobian $\nabla\mathbf B$: three real eigenvalues make a radial null, a complex pair makes a spiral null, and the signs fix its orientation. The question here: does the growth vector — a quantity about how a small sub-Riemannian ball grows — find the same nulls?

A real dynamo field, and two independent finders

The test field is the ABC-like trigonometric field $\mathbf B = (\cos y,\, \cos z,\, \cos x)$ — one of the two curl-partners whose sum is the classic Arnold–Beltrami–Childress field. The distinction matters, and Part 5’s theorem is why: the true ABC field is Beltrami ($\nabla\times\mathbf B = \mathbf B$, force-free) and therefore cannot host a spiral null at all; this field is divergence-free but genuinely non-force-free — its current at the nulls is $\lVert\nabla\times\mathbf B\rVert = \sqrt3 \neq 0$ — which is exactly what permits the spiral types below. It has eight isolated nulls in a periodic box, sitting at the vertices of a cube, their two spiral sub-types alternating like a checkerboard. We run two genuinely independent computations on it:

Two finders on the ABC-like field (experiment P2). The eight magnetic nulls, at the vertices of a cube in the periodic box. The standard finder colours each by the eigenvalue type it computes — spiral-A (blue) and spiral-B (orange), alternating like a checkerboard. The sub-Riemannian detector labels each with the homogeneous dimension it measures: Q=6 at every null (it detects all eight), against Q=5 at the generic sample points (grey). The two methods agree on location and order; the growth vector does not distinguish blue from orange — that type is in the eigenvalues. Data: research/preferred-directions/artifacts/p2_nulls_results.json.

The verdict, read honestly

It agrees, exactly, on what it can see. The growth vector reads $Q=6$ at all eight nulls and $Q=5$ at every generic point. As an independent detector it reproduces the standard finder’s null set and their order — from a completely different computation, one that never looks for a zero of $\mathbf B$ but instead watches how a small ball’s directional reach collapses (the reach exponents of the article’s Prop. 2.7 — not a ball-volume exponent, which at the null itself remains unproved).

It does not refine what it cannot see. Every one of these nulls is linear ($k=1$), so every one gives $Q=6$; the growth vector cannot tell spiral-A from spiral-B. That distinction lives in the eigenvalues of $\nabla\mathbf B$ — and there the standard method simply has more information than a single number read from the ball’s directional reach can carry.

This is the program’s kill criterion met head-on and answered without spin. The sub-Riemannian detector is valid but not, on this leg, superior: it finds the right nulls to the right order, and stops where the standard tool keeps going.

On a real Sun

The ABC-like field is a genuine divergence-free dynamo-style field, but an analytic one. Does the detector survive contact with observation? We took a real SDO/HMI magnetogram — the 45-s line-of-sight product (sunpy’s sample file HMI20110607_063211_los_lowres.fits, T_OBS 2011.06.07 06:33:07 TAI), a solar active region imaged on 2011 June 7 — potential-field extrapolated it into a three-dimensional coronal field, and searched. The standard finder locates a coronal magnetic null some 40 pixels above the surface, a radial null by its $\nabla\mathbf B$ eigenvalues. The growth vector, read from that null’s local structure, returns $Q=6$ against $Q=5$ in the surrounding strong field — the same null jump, now computed from a real solar extrapolation. Said precisely: this is the law’s consistency on real data, not an independent detection — the paragraph below spells out what the raw grid does and does not give, and Part 5 races the honest version.

Two panels: left, a real SDO/HMI magnetogram of a solar active region; right, a vertical slice of the extrapolated coronal field magnitude showing it collapse to zero at the null, with field-line streamlines fanning through it
A real solar magnetic null, end to end. Left (A): a line-of-sight SDO/HMI magnetogram of a solar active region (2011 June 7; red / blue = field out of / into the photosphere, up to $\sim\!10^3$ G). The dashed line marks the vertical plane drawn at right; the star is the null's footpoint. Right (B): the potential-field–extrapolated coronal $\lvert\mathbf B\rvert$ on that plane (log scale, bright = strong), with in-plane field lines in white. The field collapses to zero at the null $\sim\!40$ px up (cyan star) and the streamlines fan through it in the characteristic X-type topology — a radial null by its $\nabla\mathbf B$ eigenvalues $(-0.76,\,-0.24,\,+1.00)$. There the sub-Riemannian growth vector returns $Q=6$ against $Q=5$ in the strong bipolar field: the null jump, on the real Sun. Pipeline: research/preferred-directions/scripts/run_p2_solar.py.

One honest wrinkle, and it is a real methodological point. Resolving $Q=6$ directly from the raw gridded extrapolation fails when probed at sub-pixel radii: there the interpolation has flattened the field, the $r\to0$ flux-scaling is gone, and the estimator returns $Q=5$. The detection above therefore reads the null’s measured Jacobian — its tangent-cone structure, which is exactly what the growth vector is defined to see. A follow-up (Part 5’s program) located the actual rule: probed in the right scale window — above the grid cell, below the surrounding structure — the raw real field returns the null flux weight $w_4\approx3$ directly (here $w_4$ is the scale-resolved reach exponent of the flux coordinate — the local log–log slope of holonomy reach versus probe radius, i.e. the fourth coordinate’s weight), no substitution needed. On gridded data the detector is not resolution-limited so much as scale-windowed, and real magnetic-field data demands you choose that window consciously.

That wrinkle earns a vocabulary the whole series now uses. Blind detection: a candidate location produced by the sub-Riemannian statistic alone, with no root-finder or Jacobian input — not what this post does. Independent local confirmation: the statistic evaluated on the full field at a location another method found — the scale-windowed $w_4 \approx 3$ reading above. Tangent-cone consistency check: the structure built from the measured Jacobian, whose answer the law then fixes — the $Q = 6$ values above. Every solar, magnetospheric and Jovian $Q$ in this series is of the second or third kind; none is blind detection.

Estimator parameters, for the record: reach measured from $n = 5000$ horizontal curves per radius (a quarter straight, the rest with log-uniform turning rates $w \in [0.4, 40]/r$; 300 integration steps), endpoint spread read at the 98th percentile after subtracting the exact gauge terms $A_0!\cdot!d + \tfrac12 d!\cdot!S\,d$; radii log-spaced, 7 per window. The scale-window rule on gridded data: lower edge $\ge 1.5$ grid cells, upper edge $\le$ half the distance to the nearest neighbouring structure — stated in advance, so the $Q = 5 \to 6$ change of verdict with window choice is a recorded parameter decision, not a post-hoc tunable.

The one place it might yet win

There is a leg we have not used here. Part 3 showed the caustic — not the growth vector — reads the profile-calibrated gradient combination $(1-\tfrac34\beta)\lvert\nabla\ln B\rvert^2$ (with unit calibration on the exponential profile). A null’s type is precisely a statement about $\nabla\mathbf B$, the very thing the caustic is sensitive to. So the decisive, still-open question is whether a caustic invariant like the nilpotent deviation $\delta$ distinguishes spiral-A from spiral-B where the growth vector cannot. If it does, the framing genuinely refines the standard null classifier; if it does not, the honest conclusion is that this is a beautiful re-description of magnetic topology rather than a new instrument. That experiment is the program’s frontier; this post — originally the roadmap’s last — names it rather than pretending it is already done, and Parts 5–8 (the null gallery, the transition state, the litmus tests, Jupiter) carry the program on from here.

The series, in one arc

The whole program rests on one distinction that most “preferred direction” intuitions miss: geometry only becomes sub-Riemannian when a direction is forbidden and bracket-reachable, and then — remarkably — the geometry reads the field that forbade it. Where that holds (magnetism, rotation) the invariants are curvature-degeneracy meters; where it only seems to (anisotropic transport, gravity) the honest answer is that there is no sub-Riemannian structure to find. Knowing which case you are in, and not confusing them, is the result worth keeping.

Glossary

References