Df/kf/σ Stability Boundary Near the Hard Regime#

experiments.md established a single hard-regime data point (Df=2.25, kf=0.95, σ=1.9) where success rates collapse to ~17–20%, and pairing_frustration.md diagnosed why single-shot attempts fail there. This page maps the Df/kf/σ/N boundary around that point on the then-current implementation (greedy first-fit pairing), forming the baseline against which the subsequent pairing fix is measured (boundary_sweep_v2.md). It covers territory (kf < 1.0, σ > 1.5) that earlier stability characterizations of this project did not reach.

Method#

configs/hard_regime_boundary_sweep.toml: Df ∈ [1.8, 2.5] step 0.1 (8), kf ∈ [0.8, 1.4] step 0.1 (7), σ ∈ {1.0, 1.5, 1.9} (3), N ∈ {64, 128, 256, 512, 1024} (5), 5 seeds per combination — 840 combinations, 4200 trials. Unlike pairing_frustration_probe.py’s single-shot methodology, this sweep uses run_simulation’s standard internal retry loop (up to 20 attempts per trial) via benchmarks/stability_sweep.py — the same retry-inclusive metric exposed to users via --max-attempts. Run on a local Dask cluster (16 cores); ~4200 trials in ~20–30 minutes wall clock.

Raw output: benchmark_results/hard_regime_boundary_sweep/stability_sweeps/.

A caveat applies to the runtime columns in the raw data: stability_sweep.py’s Dask path records each task’s submit_time when all 4200 tasks are enqueued up front, not when a worker begins executing it, so avg_runtime_s and median_runtime_s in the summary are dominated by queue-wait for tasks scheduled late in a 4200-task/16-worker batch rather than by per-trial cost (a directly-timed single trial takes ~1 s in the easy region, ~16 s at the hardest tested corner; see gpu_acceleration.md for the timing methodology). Success-rate figures are unaffected; the timing columns in this sweep are unreliable and were not corrected.

Results#

Boundary map at σ=1.9, success rate averaged over N=64..1024:

Df

kf=0.8

kf=0.9

kf=1.0

kf=1.1

kf=1.2

kf=1.3

kf=1.4

1.8

1.00

1.00

1.00

1.00

1.00

1.00

1.00

1.9

1.00

1.00

1.00

1.00

1.00

1.00

1.00

2.0

1.00

1.00

1.00

1.00

1.00

1.00

0.92

2.1

1.00

1.00

1.00

1.00

0.80

0.32

0.08

2.2

1.00

0.92

0.52

0.16

0.00

0.00

0.00

2.3

0.56

0.12

0.04

0.00

0.04

0.00

0.00

2.4

0.16

0.00

0.00

0.00

0.00

0.00

0.00

2.5

0.00

0.00

0.00

0.00

0.00

0.00

0.00

The same table at σ=1.5 and σ=1.0 (monodisperse):

σ=1.5

kf=0.8

kf=0.9

kf=1.0

kf=1.1

kf=1.2

kf=1.3

kf=1.4

2.2

1.00

1.00

1.00

1.00

1.00

1.00

0.92

2.3

1.00

1.00

1.00

0.84

0.44

0.08

0.04

2.4

0.92

0.60

0.36

0.00

0.00

0.00

0.00

2.5

0.40

0.08

0.04

0.00

0.00

0.00

0.00

σ=1.0

kf=0.8

kf=0.9

kf=1.0

kf=1.1

kf=1.2

kf=1.3

kf=1.4

2.3

1.00

1.00

1.00

1.00

1.00

1.00

1.00

2.4

1.00

1.00

1.00

0.88

0.68

0.56

0.36

2.5

0.92

0.68

0.60

0.52

0.20

0.04

0.00

(Df ≤ 2.1 is at or near 100% across all tested kf at every σ and is omitted above; the full grid is in the raw JSON/CSV.)

Across the full grid, 3039/4200 trials (72.4%) succeeded. This figure is not meaningful on its own — the grid deliberately spans well past the boundary — but confirms the grid placement was neither uniformly easy nor uniformly hard.

Discussion#

The collapse boundary shifts to lower Df as polydispersity increases: safe up to Df≈2.3 monodisperse, Df≈2.2 at σ=1.5, and Df≈2.0 at σ=1.9. This direction is consistent with the field literature: a survey conducted alongside this sweep independently cites algorithmic collapse around Df 2.2–2.3 for polydisperse rigid CCA, and an absolute monodisperse ceiling of Df≈2.55 for size-symmetric merge strategies matching FracVAL’s design. Both figures agree with the direct measurements here: at σ=1.0, kf=0.8, Df=2.5 still succeeds 92% of the time, consistent with a ceiling near Df≈2.55.

The Df×kf interaction is sharp and directional: at every σ, lower kf survives further into high-Df territory. At σ=1.9, Df=2.2, kf=0.8 remains at 100% while kf=1.1 has dropped to 16% — a transition spanning a kf range of only 0.3.

The established hard regime sits close to the edge of this transition. At N=128 (matching the probe in pairing_frustration.md), Df=2.25/kf=0.95 is bracketed by:

Df

kf

success_rate (5 seeds, N=128, σ=1.9)

2.2

0.9

1.00 (5/5)

2.2

1.0

0.60 (3/5)

2.3

0.9

0.00 (0/5)

2.3

1.0

0.00 (0/5)

A fully-successful and a fully-collapsed corner sit 0.05 apart in Df. The regime chosen in experiments.md (Df=2.25, kf=0.95) is thus a deliberately hard stress point on this transition, which is also why the pairing-frustration probe’s single-shot methodology measured only 2.5% success there: near the boundary, retry compounds a low per-attempt probability into a substantially higher eventual success rate, while the per-attempt probability itself is what the probe’s census explains.

N amplifies instability specifically at the boundary. Two representative near-boundary points:

Df

kf

N=64

N=128

N=256

N=512

N=1024

2.2

1.0

1.00

0.60

0.60

0.40

0.00

2.3

0.8

1.00

1.00

0.40

0.40

0.00

Points comfortably inside the safe region (e.g. Df=2.1, kf=1.0, σ=1.9) show no such degradation: 100% at every tested N from 64 to 1024. N does not independently cause failure; it sharpens whatever margin Df/kf/σ leaves.

Implications#

This sweep is the greedy-pairing baseline. The pairing-frustration diagnosis and the independent literature survey both identify CCA merge ordering — rather than search strategy, already ruled out in experiments.md — as the lever most likely to move this boundary. The backtracking pairing fix was subsequently benchmarked against this exact grid; boundary_sweep_v2.md quantifies the shift.