← Research

Schur-complement degradation on molded-shell geometry

Anderson Brunsvold

Status: internal measurement, not peer reviewed. Weakest evidence of the four notes in this series — see §7 before relying on any of it. Tier: established theory, measured in a domain where nobody appears to have measured it — plus a diagnostic signature worth knowing.


1. Summary

The standard viscosity-weighted preconditioner for the Stokes pressure Schur complement gives mesh-independent convergence on well-shaped domains, and this is usually stated without qualification. It is not domain-independent: its quality is governed by the inf-sup constant, which degrades with domain aspect ratio.

We measured the consequence on a real molded part. On a solid cube the outer iteration count is flat (12 → 15 across a 4× refinement). On a shelled tray it grows: 116 → 180 → 214 across 6k / 37k / 292k cells.

The theory is established (§2) and the mechanism has been measured in porous media on an identical discretization. What appears to be missing is any measurement in injection molding, where a literature survey found zero iteration-count data of any kind for filling solvers.

We also implemented the remedy the literature prescribes (a SIMPLE approximation of the Schur complement) and found it a real but shrinking improvement: 1.91× → 1.68× → 1.18× as resolution increases. We report why, because the reason determines what is actually required.


2. What theory says, and what it is usually not qualified with

The inf-sup (LBB) constant on a stretched domain scales inversely with aspect ratio — Dobrowolski, Math. Nachr. 254–255 (2003): the constant is "proportional to a⁻¹, where a ≥ 1 is the aspect ratio", valid "for channel domains and plates"; independently Chizhonkov & Olshanskii, ESAIM M2AN 34(5) (2000). The preconditioned condition number goes as β⁻², so Krylov iterations go as β⁻¹.

Sande, Koch, Kuchta & Mardal (arXiv:2510.24590, 2025) measure it directly with a standard block preconditioner, mesh-independent at each aspect ratio L:

L131050
condition number6.4~24214–2255270–5540
MinRes iterations445074–86229–270

Pimanov, Iliev, Oseledets & Muravleva (NLAA 2024, arXiv:2307.05266) supply the mechanism on our exact discretization — staggered finite differences, voxel grids, no-slip at fluid/solid voxel faces, PCG on the pressure Schur complement:

"the condition number of the Schur complement matrix increases linearly with increasing the surface-to-volume ratio"

and

"the number of its non-unit eigenvalues is determined by the number of boundary nodes where the Dirichlet b.c. on the tangential velocity component is imposed"

Their 2-D channel study, varying thickness, shows the two regimes cleanly:

channel thickness (cells)1210864
Uzawa iterations52618198138
SIMPLE-preconditioned4035292215

As the channel thins, plain Uzawa degrades and SIMPLE improves.

The gap. Every quantitative source above is porous media, slender-domain numerical analysis, or glaciology. A survey of the injection-molding literature returned no iteration-count data for filling solvers at all — vendors do not publish solver internals, and the field's standard review names no linear solver or preconditioner. Molded parts are among the thinnest domains anyone solves Stokes on, and the conditioning consequence appears unmeasured there.


3. Method

Voxel-grid Stokes as above; Uzawa iteration on the pressure Schur complement S = Gᵀ A⁻¹ G, preconditioned by the viscosity-weighted (lumped inverse-viscosity pressure mass matrix) approximation, M⁻¹ = diag(η).

Two geometries: a solid n³ box, and a shelled 210 × 50 × 24 mm tray with a 3.5 mm wall, at three voxel budgets. One complete Stokes solve, uniform viscosity, pressure pinned at a single interior cell.

Provenance of the tray: a synthetic fixture authored for this engine's own test corpus, generated parametrically and dimensioned from the pipeline's own constraints (mold-base tie-bar coverage, clamp envelope, ejector-pin threshold) — realistic in character, free of any third-party origin.

The SIMPLE alternative replaces A⁻¹ with diag(A)⁻¹, giving Ŝ = B diag(A)⁻¹ Bᵀ — a single weighted pressure Laplacian, roughly 100× cheaper per application than the true Schur complement. Ŝ⁻¹ is approximated by a fixed number of damped-Jacobi sweeps: fixed and Jacobi both deliberately, since CG requires a linear symmetric preconditioner and an inner CG run to a tolerance is neither (its polynomial depends on its own right-hand side).


4. Results

Domain shape, not mesh, drives the outer count.

geometryrefinementouter iterations
solid cuben = 8 → 3212 → 15 (flat)
shelled tray6k → 37k → 292k cells116 → 180 → 214

SIMPLE helps, and the help shrinks:

budgetcellswall runη outerη wallSIMPLE outerSIMPLE wallspeedup
16,0006,10211164.2 s352.2 s1.91×
128,00036,908118058.2 s6834.6 s1.68×
1,000,000291,7985214688 s139582 s1.18×

SIMPLE degrades too — 35 → 68 → 139 — just more slowly than η's 116 → 180 → 214.

Why it shrinks, and what that implies. The Jacobi sweeps approximating Ŝ⁻¹ become a worse approximation as the mesh refines, because Jacobi's convergence on low-frequency modes degrades like O(h²). Keeping the preconditioner's quality constant under refinement requires a mesh-independent solve of Ŝ — that is, multigrid. Ŝ is a scalar pressure Poisson, which is the easy multigrid target, unlike the vector momentum block where a geometric hierarchy fails on one-cell walls (companion note). Pimanov solve Ŝ with algebraic multigrid and report 1238 → 22.

The chain therefore closes on a specific, measured requirement rather than a preference: SIMPLE needs a mesh-independent Ŝ solve, which needs algebraic multigrid.


5. A diagnostic signature: divergence looks like weakness

Our first implementation of SIMPLE was worse than the preconditioner it replaced — 304 outer against 116. The natural reading is "this approximation is too weak for our problem", and on a solid cube (32–42 against 12–15) that reading looked confirmed.

It was wrong, and one observation distinguishes the two cases:

Jacobi sweeps141664
outer iterations120304400 (cap)400 (cap)

A weak-but-convergent preconditioner improves monotonically with more sweeps. Getting monotonically worse and saturating the iteration cap is the signature of a diverging sweep, not a weak one.

The one-sweep column is identical before and after the fix (120 in both), and that is a consequence of the bug rather than a contradiction of it. The sweep begins from a zero initial guess, so the first residual is r − Ŝ·0 = r: the operator is applied to zero, and a linear operator applied to zero is zero whatever its sign. One sweep therefore reduces exactly to z = ω·r/diag(Ŝ) — plain diagonal scaling, with Ŝ never entering. The sign can only become visible from the second sweep onward, which is precisely where the two sequences diverge (304 vs 89). We flag this because the identical column is the first thing a careful reader will challenge.

Materializing Ŝ into a dense matrix showed every eigenvalue negative. The cause was a dropped sign: on a MAC grid D = −Gᵀ, so div(grad(p)/diag) is −Gᵀ diag(A)⁻¹ G, negative definite, while the true Schur complement Gᵀ A⁻¹ G is positive definite. Every Jacobi sweep stepped the wrong way. With the sign corrected, the same sweep sequence reads 120 → 89 → 55 → 35.

Two transferable points. First, monotonicity in a preconditioner's strength parameter is a cheap correctness test, and non-monotonicity should be treated as a bug rather than a result. Second, we would have missed this had we judged on the cube — where the pathology being fixed does not exist, and where the result was merely "worse".


6. What this implies

(Speedups are computed from the wall-clock figures as displayed. An earlier draft reported 1.94× for the first row from unrounded values, which did not reproduce from the table; all three now do.)

  1. For thin-shell domains, the viscosity-weighted Schur preconditioner should be expected to degrade with refinement. Its mesh independence is conditional on domain shape, and molded parts are the adverse case.
  2. SIMPLE is a strict improvement at every resolution measured, cheap to implement (the momentum diagonal is already available), and provably SPD — but as a constant-factor gain that shrinks, not a fix for the scaling.
  3. The scaling fix requires algebraic multigrid on the scalar operator Ŝ.

7. Threats to validity — read these before using anything above

This is the weakest-evidenced note in the series, and deliberately labelled so.

  1. Three data points, from a single-front-cell pressure pin. A real fill pins the entire front, which is a substantially better-conditioned pressure problem. The A/B comparisons are sound because both arms share the setup, but the absolute counts 116 / 180 / 214 are likely pessimistic and should not be quoted as the engine's behaviour. Confirming the growth against a real fill step is outstanding and was explicitly flagged as unfinished.
  2. Uniform viscosity throughout. Every measurement here is kinematic mode. The dimensional path, where viscosity varies by orders of magnitude across a frozen layer, is unmeasured, and the viscosity-weighted preconditioner is designed for exactly that case — so its poor showing here may not carry over.
  3. Prior-art risk is high, higher than the other notes. The mechanism is established; only the domain is new. Injection molding may well have this measured somewhere in a thesis, a vendor validation report, or under different vocabulary in the porous-media or geodynamics literature. We regard the novelty claim here as the least secure of the four notes.
  4. The 1.18× figure is one point, at one sweep count (64) chosen without a knee-finding sweep at that resolution. A different sweep count may be better there, since sweeps get relatively more expensive as the grid grows.
  5. Not compared against the alternatives the literature offers for this regime — augmented Lagrangian / grad-div stabilization, or the lubrication-scaled pressure-diffusion preconditioner of Sande et al. Both were surveyed and neither was implemented.

8. What would make this publishable

  • Full-fill measurement with the front pinned as the solver actually pins it, replacing the proxy, at three or more resolutions.
  • Dimensional (variable-viscosity) measurement, which is the regime the incumbent preconditioner is built for and the one where a fair comparison lives.
  • A geometric predictor. Pimanov tie the condition number to the surface-to-volume ratio; a molded part's S/V is computable from the voxel grid, so the natural test is whether outer iteration count tracks measured S/V across a corpus of parts. That would convert an observation into a usable predictor and is the most valuable single follow-up.
  • A serious prior-art pass, given §7.3.
  • Comparison against augmented Lagrangian and the lubrication-scaled pressure preconditioner, so "SIMPLE is the right remedy" is a finding rather than the only thing tried.

9. Sources

  • Dobrowolski, "On the LBB constant on stretched domains", Math. Nachr. 254–255 (2003), DOI 10.1002/mana.200310052.
  • Chizhonkov & Olshanskii, "On the domain geometry dependence of the LBB condition", ESAIM M2AN 34(5):935–951 (2000).
  • Sande, Koch, Kuchta & Mardal, "On a robust inf-sup condition for the Stokes problem in slender domains — with application to preconditioning", arXiv:2510.24590 (2025).
  • Pimanov, Iliev, Oseledets & Muravleva, "On the efficient preconditioning of the Stokes equations in tight geometries", Numer. Linear Algebra Appl. (2024), arXiv:2307.05266 — the closest published analogue to this discretization, and the source of the SIMPLE remedy.
  • Meier, Bänsch & Frank, "Schur preconditioning of the Stokes equations in channel-dominated domains", CMAME 399:115264 (2022) — independent rediscovery of the same fix from Darcy upscaling (abstract only; paywalled).
  • Baum, Anders & Reinicke, Polymers 15(21):4220 (2023) — the filling-phase review that names no linear solver or preconditioner, establishing the gap.

Colophon — authorship and AI assistance

Author (responsible natural person): Anderson Brunsvold, FutureMold.

AI assistance disclosure. This note was produced with substantial AI assistance, and the extent is material to how it should be read:

  • Literature search and synthesis: AI-conducted. The surveys behind the "no published source" claims were run by AI agents. Their search budgets were exhausted and several primary sources were paywalled and read only via abstract or secondary description. The novelty claims rest on those searches and inherit their limits — see the threats-to-validity section.
  • Measurements: AI-executed, human-directed. The experiments were designed, scripted and run by an AI agent (Claude) working in the FutureMold repository, under direction from the author. The raw outputs are in the session record and the repository's reference documentation.
  • Drafting: AI-written, human-reviewed. The prose is AI-drafted. It was reviewed by the author, and that review caught substantive errors — including, in this series, a claim that contradicted its own data table and a headline figure that conflated two mechanisms. Corrections are marked in place rather than silently applied.
  • Not independently reproduced. No result here has been reproduced by a second implementation or a second party.

Standing caveat. Absence of a result in an AI-conducted literature search is weak evidence of absence in the field. Any novelty claim in this note should be re-checked against paywalled and non-indexed sources before it is relied upon.

Literature searches, experiment design, scripting, execution, and drafting were AI-performed (Claude, Anthropic) under the direction of the named author, who reviewed the work and takes responsibility for it. Each note carries a fuller provenance section, including the limits that AI-conducted searches place on its novelty claims.

Clearance: no-customer-data.