Skip to content

fix(statics): a restart at full stiffness runs on while its residual falls - #140

Merged
SMI-Lab-Inha merged 3 commits into
devfrom
fix/restart-stage-rotation
Nov 9, 2026
Merged

SMI-Lab-Inha merged 3 commits into
devfrom
fix/restart-stage-rotation

Conversation

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner

The finite-EI statics of a long lazy wave failed at some azimuths of the same deck (fuzz campaign case fei_60122, at 328.29 and 329 degrees; it solved at every other azimuth tried). Turning the line about the vertical changed only round-off, and round-off decided whether the solve finished.

Cause. When the first EI-continuation stage fails, the statics restart at full EI from the seed with an energy (Levenberg–Marquardt) descent. On this 3.8 km line the descent lowers the energy by about 1e9 J over more than a thousand iterations, while the residual swings between 1e-2 and 10. Its length is chaotic: 1171 to 1661 iterations over 28 azimuths. It was cut at a fixed 1600 (the restart allowance), so the azimuths that needed 1636 and 1661 failed with the descent about 99 % done.

Fix. CD_HermiteCable_Static_Solve takes an optional stall_limit. The descent stops once stall_limit updates pass without the two-norm of the scaled residual halving. That norm does not change when the line is turned; the L∞ convergence test is untouched.

The energy pass of a restart, from the seed or from a snap, now:

  • uses the old allowance as its stall limit;
  • may run on to 1.5 allowances while the residual keeps falling, within the element-scaled budget.

A descent with no halving stops at exactly the old count. PTC passes and normal stages are unchanged.

Why the ceiling. With no ceiling, two cable_statics_matrix decks run on until they settle on a folded branch, which dev avoids through its other routes: CURSYM_1000 at 2971 iterations (default kernel only), and CUR_1009 at 3711. At 1.5 allowances, fei needs at most 1661 of 2400.

Tried and rejected (each broke another deck):

  • an isotropic scale per nodal block;
  • a block-Jacobi metric;
  • the old diagonal shift in a frame attached to the chord. This one is exactly rotation-equivariant, but it still failed at 330 degrees from round-off alone.

Tests. hermite_static_azimuth solves the deck at 328 to 329.5 degrees in quarter-degree steps (plus 328.29), and at 0, 90, 200 and 330 degrees. It requires the end tensions to match within 1e-6 relative. It fails on dev at 328.29 and 329 degrees. It takes 15 s in Release and 139 s in Debug (TIMEOUT 900).

Checks.

  • CTest 371/371 on both BLAS kernels; pytest passes.
  • Every example is byte-identical to dev, as are all 373 .out files of cable_statics_matrix.
  • A 28-azimuth sweep solves everywhere to the same end tensions.

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 8, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-09T04:38:31.770527Z f823e4b Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@SMI-Lab-Inha
SMI-Lab-Inha force-pushed the fix/restart-stage-rotation branch from b220b50 to 4224aed Compare November 8, 2026 18:10
@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@read-the-docs-community

read-the-docs-community Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 CableDyn | 🛠️ Build #35744813 | 📁 Comparing f823e4b against latest (e8f88f5)

  🔍 Preview build  

13 files changed · ± 13 modified

± Modified

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: 4224aed158

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@SMI-Lab-Inha
SMI-Lab-Inha force-pushed the fix/restart-stage-rotation branch from 4224aed to 6de2102 Compare November 8, 2026 20:07
@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Delightful!

Reviewed commit: 6de21025ef

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@SMI-Lab-Inha
SMI-Lab-Inha force-pushed the fix/restart-stage-rotation branch from 6de2102 to f1537f3 Compare November 8, 2026 22:28
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: f1537f386a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Hooray!

Reviewed commit: 7b10ee7508

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@SMI-Lab-Inha
SMI-Lab-Inha force-pushed the fix/restart-stage-rotation branch from 7b10ee7 to e0f05db Compare November 9, 2026 00:38
@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

Reviewed commit: e0f05dbcb5

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@SMI-Lab-Inha
SMI-Lab-Inha force-pushed the fix/restart-stage-rotation branch from e0f05db to 2e463e6 Compare November 9, 2026 02:42
@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

Reviewed commit: 2e463e62d3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

…falls

When the first stage of the finite-EI stiffness continuation does not
converge (a clamped end on a mesh too coarse for its boundary layer), the
statics restart at full stiffness from the seed. On a long line that energy
descent runs for more than a thousand iterations in which the energy falls
and the residual rises and falls, and its length scatters with the last
digits of the input: on a 3.8 km lazy wave clamped at its fairlead (540
elements) it took 1171 to 1661 iterations over 28 azimuths of the same deck.
The descent was cut at a fixed 1600, so turning the deck about the vertical
failed the statics at 328.29 and 329 deg and solved them elsewhere. Scaling
the descent's shift so that it turns with the line does not remove the
scatter: round-off alone spreads the count over the same range.

Past its allowance (1600 updates at the default stage allowance) the energy
pass of a restart, from the seed or past a limit point of the continuation,
now runs on while the two-norm of the scaled residual keeps halving within
an allowance (stall_limit of the static solve), to one and a half
allowances. The norm does not change when the line is turned. A descent that
converged within the allowance is unchanged, and one without progress stops
as before. The extension is bounded because a descent still going far past
it can settle on a folded branch that the other routes avoid: run on to the
budget, a current-loaded deck of the statics matrix converged at 2971
updates on a self-overlapping branch and failed.

The lazy wave solves at all 28 azimuths with the same end tensions. The new
hermite_static_azimuth test turns it through seven azimuths from 328 to
329.5 deg and four elsewhere and requires the same fairlead and anchor
tensions to 1e-6.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
The [Unreleased] entries of the open changes are added together in one
change, so that they do not conflict with each other.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
…another

A troubleshooting entry for the static solve of a long, light finite-EI
line whose descent from the seed depends on the last digits of the input,
as when the deck is turned about the vertical: check the azimuth and
declination conventions first, inspect the static profile, compare with a
refined mesh and judge the shape; CableDyn does not choose between
physically admissible branches.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@SMI-Lab-Inha
SMI-Lab-Inha force-pushed the fix/restart-stage-rotation branch from 2e463e6 to f823e4b Compare November 9, 2026 04:37
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Chef's kiss.

Reviewed commit: f823e4bf7a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@SMI-Lab-Inha
SMI-Lab-Inha merged commit 18e2c39 into dev Nov 9, 2026
22 checks passed
@SMI-Lab-Inha
SMI-Lab-Inha deleted the fix/restart-stage-rotation branch November 9, 2026 08:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant