diff --git a/experiments/COUPLED_CONVERGENCE_STUDY_2026-09-19.md b/experiments/COUPLED_CONVERGENCE_STUDY_2026-09-19.md index 471419c..fbba293 100644 --- a/experiments/COUPLED_CONVERGENCE_STUDY_2026-09-19.md +++ b/experiments/COUPLED_CONVERGENCE_STUDY_2026-09-19.md @@ -41,3 +41,77 @@ hashes. Initial evidence directory: Results and any adaptive extensions will be recorded below before finalizing the study. Defaults and the physics-facing API are unchanged. + +## Adaptive follow-up, specified before execution + +The completed n=2 control has energy/force enthalpy virials 3.25e-7/2.25e-6 +but a residual of 8.85e-6 after twelve updates. At captured update seven, +94.42% of squared residual is Poisson balance and 4.45% gravity-gradient +relation. All observed rejections there are insufficient decrease; pressure +preparation has not failed. This motivates a gravity-path comparison in the +current harmonic space, independently of earlier nodal-surface conclusions. + +Restart both raw and gravity-curvature Newton from the same update-three +physical capture, with six updates, eta=.03, and a shared absolute residual +target 1e-12. Initial guesses are installed through an explicit transactional +experiment hook, separate from the read-only diagnostic callback. Coordinate +transfer checks names, sizes, discretization metadata, mesh and saved hashes; +captured/unconverged iterates require an explicit experimental override. +Gravity-curvature correction retains the full coupled equations and Newton +direction and changes only the prepared trial path. Gravity elimination is +deferred until per-iteration reporting distinguishes its reduced and lifted +full linear defects and its completed initial state. + +Frozen tests at that same n=2 capture compare gravity refinement, a new +surface-plus-scalar approximate Schur inverse, and their combination at +eta=.003. Repeat the combined candidate at eta=1e-7 to measure attained +accuracy within a 300-iteration budget, not assert an arithmetic floor. +Test the combined candidate at n=3 update seven separately. Each benchmark +also runs a fresh default inverse on the identical RHS and physical Jacobian. +Setup costs and internal Jacobian applications belong to the comparison. + +The small Schur block contains all 25 surface parameters and every generated +scalar. Its field inverse is the unbordered structure inverse; restricting an +already scalar-bordered inverse could spuriously constrain the field solve. +Singular/ill-conditioned coarse blocks are reported, never silently repaired. +The implementation is frozen-state only and must be reconstructed for a new +Jacobian. No changed live default is implied by a successful frozen benchmark. + +Saved linear directions receive optional raw trial observations on a fixed +alpha grid. The squared-merit screen matches production's sufficient-decrease +formula, but the sparse grid is not a replay of its adaptive line search. +Remainder scalars are direct FEM observations; saved Jp, RHS and correction +allow independent verification of the linear defect and merit slope. + +## Compatibility of the rotating n=3 target + +This is a separate physical-model issue, not an explanation of the measured +n=2 stall. The driver derives K from a nonrotating Lane–Emden model with +M=R=1 and retains M=1 when J changes. At n=3 that mass/K combination is +critical: the nonrotating mass M_LE(K) is independent of central density. + +For nonnegative finite-energy density with the exact EOS P=K rho^(4/3), the +sharp gravitational-energy bound gives + + |W| <= 3 integral(P) (M/M_LE(K))^(2/3). + +The bound holds for nonradial densities as well. Its relation to Lane–Emden +mass is given in equations (1.14)–(1.15) and Theorem 3.1 of Cheng, Cheng and +Lin, [Expanding solutions near unstable Lane-Emden stars](https://arxiv.org/html/2305.10218#S3.SS1). +The paper uses G=1; restoring G in W leaves the displayed mass-ratio form. + +Our inference from this bound and the isolated steady virial identity is: +at M=M_LE(K), W+3 integral(P)>=0, while nonzero angular momentum at finite +moment of inertia requires T>=J^2/(2I)>0. Thus 2T+W+3 integral(P)=0 is +impossible. A rotating n=3 family needs M>M_LE(K); at fixed M=1 this means +K below the driver's nonrotating critical value. This necessary condition +does not itself construct a rotating equilibrium or choose its rotation rate. +Fixing an additional central density cannot repair incompatible physical +specifications; a central artificial force could instead mask them. + +The exact continuum statement must not be applied uncritically to the +present discrete equations: independent rho and P(h), weak EOS consistency, +negative density, gravity approximation and central forcing can bypass its +assumptions. Numerical Lane–Emden integration also makes the driver's K only +approximately critical. A small discrete virial in such a case would require +careful interpretation. No mass/K change has been made in this campaign. diff --git a/experiments/convergence_gravity_path_cases_2026-09-19.json b/experiments/convergence_gravity_path_cases_2026-09-19.json new file mode 100644 index 0000000..58917ab --- /dev/null +++ b/experiments/convergence_gravity_path_cases_2026-09-19.json @@ -0,0 +1,70 @@ +[ + { + "id": "n2_restart_raw", + "arguments": [ + "--index", + "2", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--no-central", + "--max-newton", + "6", + "--linear-tol", + ".03", + "--strategy", + "baseline", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n2_J0/capture_3/physical_base.txt", + "--allow-unconverged-restart", + "--model-slices", + "--slice-subdivisions", + "4" + ] + }, + { + "id": "n2_restart_gravity_path", + "arguments": [ + "--index", + "2", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--no-central", + "--max-newton", + "6", + "--linear-tol", + ".03", + "--strategy", + "curvature", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n2_J0/capture_3/physical_base.txt", + "--allow-unconverged-restart", + "--model-slices", + "--slice-subdivisions", + "4" + ] + } +] diff --git a/experiments/convergence_linear_cases_2026-09-19.json b/experiments/convergence_linear_cases_2026-09-19.json new file mode 100644 index 0000000..626623f --- /dev/null +++ b/experiments/convergence_linear_cases_2026-09-19.json @@ -0,0 +1,164 @@ +[ + { + "id": "n2_late_gravity", + "arguments": [ + "--index", + "2", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--max-newton", + "0", + "--linear-tol", + ".003", + "--preconditioner-probe", + "--preconditioner-variant", + "gravity-schur", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n2_J0/capture_3/physical_base.txt", + "--allow-unconverged-restart", + "--no-central", + "--benchmark-trials" + ] + }, + { + "id": "n2_late_surface", + "arguments": [ + "--index", + "2", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--max-newton", + "0", + "--linear-tol", + ".003", + "--preconditioner-probe", + "--preconditioner-variant", + "surface-border-schur", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n2_J0/capture_3/physical_base.txt", + "--allow-unconverged-restart", + "--no-central" + ] + }, + { + "id": "n2_late_combined", + "arguments": [ + "--index", + "2", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--max-newton", + "0", + "--linear-tol", + ".003", + "--preconditioner-probe", + "--preconditioner-variant", + "gravity-schur-surface-border-schur", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n2_J0/capture_3/physical_base.txt", + "--allow-unconverged-restart", + "--no-central", + "--benchmark-trials" + ] + }, + { + "id": "n2_late_tight_combined", + "arguments": [ + "--index", + "2", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--max-newton", + "0", + "--linear-tol", + "1e-7", + "--preconditioner-probe", + "--preconditioner-variant", + "gravity-schur-surface-border-schur", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n2_J0/capture_3/physical_base.txt", + "--allow-unconverged-restart", + "--no-central" + ] + }, + { + "id": "n3_late_combined", + "arguments": [ + "--index", + "3", + "--angular-momentum", + "0", + "--surface-prescription", + "harmonics", + "--surface-degree", + "4", + "--restart", + "160", + "--max-linear", + "300", + "--rtol", + "0", + "--atol", + "1e-12", + "--max-newton", + "0", + "--linear-tol", + ".003", + "--preconditioner-probe", + "--preconditioner-variant", + "gravity-schur-surface-border-schur", + "--restart-snapshot", + "../../diagnostics/coupled_convergence_2026-09-19/screen_v1/n3_J0_control/capture_7/physical_base.txt", + "--allow-unconverged-restart", + "--benchmark-trials" + ] + } +]