Repository navigation
Conversation
…nite p-multigrid level); S5 benchmark cases CG runs with Krylov.jl's linesearch = true: a non-positive curvature stops it with the last positive-curvature iterate and the solve is reported as failed and indefinite instead of diverging; an indefinite p-multigrid level (finite blocks, a non-positive Ritz value: smoother_indefinite, preconditioner_indefinite) is reported the same way, a non-finite one is not. HyperFEM's HybridTangent switches to the projected tangent on this signal. Benchmark: hem_plate_c n k [φtop] (electrode voltage), hem_plate_ch (the mechanical part in HessianRegularization with a TangentSwitch: the hybrid Newton, atolp= its projected tolerance), grow=/easy= (LoadStepping), run_s4b.sh emphi/emh modes.
…ion (total mechanical tangent, in E)
…son of the hybrid Newton with the direct solver)
…ssianRegularization with a TangentSwitch)
This was referenced Nov 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Matrix-free side of S5 (HyperFEM branch
s5-levers): the linear solver says when it stopped because the tangent isindefinite, so that HyperFEM's
HybridTangentswitches to the projected tangent instead of the driver bisecting.Branch
s5-benchonmain000848d, 5 commits (afbf944, 85d4615, 8a77f3f, 9dd4eee, e31b389). Measurements indesign/solvers-s5-status.md.What changes
src/solvers.jl:linear_indefinite(ns::MatrixFreeSolverNS). CG runs with Krylov.jl'slinesearch = true: anon-positive curvature
pᵀAp ≤ 0stops it with the last positive-curvature iterate and the solve is reported as failedand indefinite instead of diverging.
preconditioner_indefinite(P)(defaultfalse).src/pmultigrid.jl,src/smoothers.jl: an indefinite level of the p-multigrid (finite nodal blocks, a non-positiveRitz value:
smoother_indefinite) is reported throughpreconditioner_indefinite; a non-finite one is not.hem_plate_c n k [φtop](electrode voltage),hem_plate_ch(the coupled model inHessianRegularizationwith aTangentSwitch: the hybrid Newton),krylov.jlwordsgrow=,easy=,atolp=,verbose=,maxit=,HFK_SAVE_X(the converged state, to compare with LU),run_s4b.shmodesemphi,emh;hmre r rv [Bfactor]andhmre_h(themechanical model in
HessianRegularization).Tests
test/solvers/test_pmultigrid.jl: elasticity − s·mass with the p-multigrid → failed andlinear_indefinite; bare CG onthe same operator → failed, indefinite, finite iterate; an SPD operator → converged, not indefinite; a NaN state → failed,
not indefinite. Solver tests 658 passed.
Results
See the HyperFEM PR: the EM plate past the pull-in at 71k dofs reaches Λ = 1 with the hybrid Newton and the field-split
h-multigrid in 22 s (LU 331–683 s), the states agreeing to 4.5e-7; at 555k dofs in 182 s.