Record matched preconditioner controls and candidate rationale
This commit is contained in:
85
experiments/PRECONDITIONER_IMPROVEMENT_2026-09-18.md
Normal file
85
experiments/PRECONDITIONER_IMPROVEMENT_2026-09-18.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# Preconditioner improvement: matched frozen Newton systems
|
||||
|
||||
This experiment changes preconditioning only. The complete Newton Jacobian,
|
||||
normalization, physical residual, mesh, and linear acceptance gate are held fixed.
|
||||
The date in branch and artifact names is an experiment identifier; provenance
|
||||
files contain the actual UTC execution times.
|
||||
|
||||
## Reproduction and scope
|
||||
|
||||
Integration branch: `research/preconditioner-benchmarks-20260918`, based on
|
||||
`10adf7e`. Hypotheses are retained separately on
|
||||
`research/gravity-consistent-schur-20260918`,
|
||||
`research/preconditioner-cached-cross-actions-20260918`, and
|
||||
`research/coupled-shape-coarse-20260918`.
|
||||
|
||||
The experiment workspace is
|
||||
`/Users/tboudreaux/.codex/.chatgpt-projects/g-p-6a6b3f2194ec8191bebcd59075897f1d`.
|
||||
Evidence is under `diagnostics/preconditioner_improvement_2026-09-18` there.
|
||||
Each campaign retains its clean source commit, build configuration, copied
|
||||
executable and hash, mesh hash, exact commands, input/output hashes, and logs.
|
||||
Runs are serial, without overlapping builds or FEM jobs during timing.
|
||||
|
||||
Frozen comparisons start FGMRES from zero on the same saved state and right-hand
|
||||
side. Each role constructs a fresh inverse, including its own specification
|
||||
border responses. The restart length is 160, the initial cap is 200 iterations,
|
||||
and the required relative full-J true defect is 0.03. The independently applied
|
||||
full Jacobian decides acceptance; the Krylov recurrence flag alone does not.
|
||||
All accepted/trial state buffers, normalization factors, preparation generation,
|
||||
and a deterministic full-J probe must remain unchanged.
|
||||
|
||||
Costs include inverse construction, normalized binding, Krylov setup, Krylov
|
||||
solve, and full-J verification. Extra diagnostic applications and artifact I/O
|
||||
are recorded separately. A speedup to convergence is reported only if both
|
||||
methods meet the same true gate. Less work spent on a failed solve is not a
|
||||
time-to-convergence improvement. A frozen linear pass is not nonlinear or
|
||||
physical convergence.
|
||||
|
||||
## Existing two-way coupling: negative controls
|
||||
|
||||
`screen_v1` uses source `018fc1c`, before the cached cross-action optimization.
|
||||
|
||||
| Saved state | Inverse | Iterations | Full-J relative defect | Complete verified cost (s) |
|
||||
|---|---|---:|---:|---:|
|
||||
| n=1.5, J=0 plateau | independent | 200 | 0.0590170471860 | 87.9302 |
|
||||
| same | stellar LDU | 200 | 0.0600668598825 | 599.5473 |
|
||||
| n=1, J=0.1 plateau | independent | 200 | 0.0826534298794 | 86.9409 |
|
||||
| same | stellar LDU | 200 | 0.0720550396371 | 594.2053 |
|
||||
|
||||
All four miss the 0.03 gate. Stellar LDU spends 6.82–6.83 times the total cost;
|
||||
it slightly worsens the n=1.5 result and reduces the rotating defect by 12.82%.
|
||||
Mean inverse application costs rise from approximately 0.19 s to 2.7 s, while
|
||||
full-J actions remain approximately 0.23 s. The uncached gravity-to-material
|
||||
force column explains the application-cost anomaly.
|
||||
|
||||
Poisson contributes 95.53% of the squared n=1.5 baseline defect and 98.28% with
|
||||
stellar LDU. For the rotating state those fractions are 85.00% and 98.10%; LDU
|
||||
reduces the gradient-row norm by 94.16% but the Poisson norm by only 6.35%.
|
||||
These are global normalized block diagnostics, not proof of an exclusively
|
||||
exterior error. No exterior weighting is changed.
|
||||
|
||||
The independent artifact audit passes 65 provenance checks and 93 checks per
|
||||
case. Both saved states and the normalization data exactly match their producer
|
||||
artifacts. The two independent baselines reproduce the earlier failed solves.
|
||||
|
||||
## Candidate mechanisms
|
||||
|
||||
1. **Prepared cross action.** Reuse the complete prepared gravity force with
|
||||
zero density and displacement directions to apply its gravity-gradient
|
||||
column. This is the same mathematical coupling with cached geometry; it does
|
||||
not strengthen the inverse. See `PRECONDITIONER_CACHED_CROSS_ACTION_2026-09-18.md`.
|
||||
2. **Consistent gravity Schur refinement.** Keep the existing AMG action, but
|
||||
apply a fixed number of corrections against `B R B^T`, where `R` is the same
|
||||
mass inverse used in flux recovery. Fixed work preserves linear stationarity
|
||||
for stationary child inverses. Damping does not guarantee contraction; it
|
||||
must earn its additional cost. See `GRAVITY_CONSISTENT_SCHUR_2026-09-18.md`.
|
||||
3. **Experimental coupled shape coarse inverse.** Use nine fixed geometric
|
||||
modes, complete their material/gravity responses, and construct a checked
|
||||
low-rank correction to the normalized inverse. Modes do not depend on the
|
||||
Newton right-hand side or previous Krylov results. A rank/overlap guard
|
||||
explicitly falls back to the underlying inverse when the correction cannot
|
||||
be trusted. Coarse setup and storage are counted, and actual FEM subspace
|
||||
identities are independently checked before solving.
|
||||
|
||||
Candidate numerical results and execution validation are pending. Defaults
|
||||
remain unchanged until measurements support a different choice.
|
||||
Reference in New Issue
Block a user