Back to Experiments

Shell-model experiment: 20-shell run

Overview

The system is a cubic shell ODE: independent velocity-shell variables \(u_k\) and vorticity-shell variables \(\omega_k\) at integer wavenumbers \(k\), coupled by hand-built cubic transfer terms, a stretching coupling \(\lambda\) and a feedback coupling \(\sigma\), with linear damping \(\nu k^2\). It is not a Galerkin truncation of Navier–Stokes; \(u_k\) and \(\omega_k\) are separate state variables and the coupling structure is chosen by hand. Every threshold reported on this page — the amplitude \(A^*\), times to threshold crossing and classification scores — is a finite-window excursion threshold: \(A^*\) is the smallest initial amplitude for which the shell enstrophy \(\sum_k \omega_k^2\) exceeds a fixed excursion level within the integration window, and its value depends on the window length, the excursion level and the solver.

Question

Extending the ODE to 20 shells (10 velocity + 10 vorticity variables, wavenumbers \(k=1,\ldots,5\)) asks whether the threshold value at the fixed window and excursion level differs from the 16-shell value of 0.347.

Method

  1. Implement the 20-shell ODE with 10 velocity and 10 vorticity variables at wavenumbers \(k=1,\ldots,5\), with all transfer paths and linear damping \(\nu k^2\) up to \(25\nu\).
  2. Run the full 26-level H/H'/H'' hierarchy with the doubling-time criterion \(P\).
  3. Sweep amplitudes to find \(A^*(\text{truth})\) and \(A^*(P)\). Evaluate classification across 14 test amplitudes.
  4. Compare with the 16-shell run at the same window, excursion level and solver settings.

Results

Threshold amplitude

QuantityValueNote
\(A^*(\text{truth})\)0.347Same value as the 16-shell run at this window and excursion level
\(A^*(P)\)0.328Doubling-time criterion estimate
\(P/\text{truth}\)94.6%Same as the 16-shell run

Classification

MetricResult
Score14/14 amplitudes classified
Diagnostic loop\(L_1 \to L_4 \to L_2 \to L_1\) present at every checkpoint
Fitted power-law exponent2.0

Threshold values across shell counts

A* values:  0.290  →  0.302  →  0.328  →  0.347  →  0.347
              8       10       12       16       20   shells

\(A^*\) takes the same value, 0.347, at 16 and 20 shells in these runs.

Observation. Adding four shells (16 → 20), with wavenumbers up to \(k=5\) and damping up to \(25\nu\), leaves the recorded quantities unchanged at this window and excursion level: \(A^* = 0.347\), \(P/\text{truth} = 94.6\%\), 14/14 classified.

Analysis

  • Threshold value. \(A^* = 0.347\) at both 16 and 20 shells in these runs.
  • Classification. 14/14, as at 12 and 16 shells.
  • Criterion ratio. 94.6% at both 16 and 20 shells.
  • Fitted exponent. 2.0 at each of the six shell counts run (6, 8, 10, 12, 16, 20).
  • Damping range. Linear damping \(\nu k^2\) spans a 25:1 range across the shells.

Summary of the run

The 20-shell cubic ODE gives the same recorded values as the 16-shell ODE at this window and excursion level: \(A^* = 0.347\), \(P/\text{truth} = 94.6\%\), 14/14 classified, fitted power-law exponent 2.0. All are finite-window excursion quantities of this ODE.

Reproducibility

../simplex/build/sxc exp_ns_20mode_solve.sx -o build/exp_ns_20mode_solve.ll

OPENSSL_PREFIX=$(brew --prefix openssl)
clang -O2 build/exp_ns_20mode_solve.ll \
  ../simplex/runtime/standalone_runtime.c \
  -o build/exp_ns_20mode_solve \
  -lm -lssl -lcrypto -L${OPENSSL_PREFIX}/lib

./build/exp_ns_20mode_solve

Related