Repository navigation
fix(output): recover node tension through touchdown on coarse meshes - #47
Conversation
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
The equilibrium recovery of finite-EI node values spread each node's floor reaction over the elements beside it by tributary length, including the touchdown element, which lies on the floor at one end only. That understated the tension of the last suspended node by the floor reaction of half an element: 5.3 % on a 10 m lazy-wave mesh against a mesh four times finer. A node's reaction is now shared by the grounded elements beside it (both nodes on the floor); a node with none keeps the tributary split. The coarse mesh follows the fine one within 3 % through touchdown (tests/check_touchdown_recovery.py fails on the old recovery). The node-value cache keys on the neighbouring nodes' positions as well, since their contact now decides an element's share. Line end forces and the solution do not change. The larger coarse-mesh wiggle comes from seabed friction, which acts at the nodes: as the line lands and lifts, a grounded element locks or releases up to mu w L, and the laid tension swings by that much (std 491, 136, 42, 33 N with 10, 5, 2.5, 1 m elements on the same cable). At initialisation a finite-EI line whose grounded elements lock more than 15 % of the touchdown tension now gets a note with the grounded element length that resolves it (flat seabed; standalone and OpenFAST). The manual explains this mesh resolution, the mesh dependence of the negative BA (damping ratio) form, whose ratio holds for each element's own axial mode while the line's modes get zeta n pi / (2N), and the measured trade-off of modified_newton, which stays off by default. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
…un diagnosis A static solve in a current that fails because seabed friction holds the grounded run while the current pushes the suspended span into the touchdown ran the mesh-sequenced route to its iteration budget after the catenary-continuation route had diagnosed it; the frictionless grounded-run diagnosis already skipped that route. Both diagnoses now skip it (the symmetry-breaking pass still runs): the robustness study's 1000 m lazy wave in 440 m of water fails closed in 17.7 s instead of 22 s with the same message, and its 15 converging friction-and-current cases are unchanged. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
9551471 to
28023d9
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 28023d9377
ℹ️ 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".
An anchor held exactly on the floor has no contact force of its own, so the grounded-element rule of the node recovery counted its laid end element as suspended and moved the next node's whole floor reaction to the following element; the held-end floor support restored only the anchor's side, leaving a weight moment at the anchor and its neighbour (521 N.m, 31 % of w l0^2/12, on a 100 m line laid on the penalty floor of CD_HermiteCable_Dyn_Init). A held end whose end element the floor supports (held_end_floor_support) now counts as on the floor; test_hermite_cable_static checks the laid line (4.6 N.m left, the bending of the line settling into the floor). Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Summary
Release blocker for 0.3.0: node tension wiggles at touchdown on coarse meshes. Two different causes, two remedies, plus two documentation items.
1. Recovery defect (fixed).
2. Lumped-friction resolution (advisory).
Problem: the larger wiggle is in time, from seabed friction, which acts at the nodes. As the line lands and lifts, each grounded element locks or releases up to μ·w·L, and the laid tension swings by that much.
Measurement: same cable, standard deviation of a grounded segment tension:
Control: with friction off, the 10 m and 1 m meshes agree (std 82 vs 62 N).
Advisory: at initialisation, a finite-EI line whose grounded elements lock more than 15 % of the touchdown tension gets a note naming the grounded element length that resolves it. It covers flat seabeds, on both the standalone and OpenFAST routes. The note changes no results.
Not in this PR: distributing friction along the element, the proper remedy, is deferred to 0.3.1 by decision.
3. Documentation.
doc/theory.rst: the friction mesh resolution.BA(damping-ratio) form: it damps each element's own axial mode at the given ratio, so the line's axial modes getζ nπ/(2N).BA = -1gives 1.6 % to the first mode on 100 elements and 0.8 % on 200. The manual gives theBAin N·s for mesh-independent damping.doc/conventions.rstpoints there.doc/options.rstmodified_newtonrow: the measured trade-off from qualifying it as the default, which it remains off by:Verification
driver_touchdown_recovery: passes at 3.02 % and fails on dev at 5.35 %.driver_advisories: gains the friction note on the 10 m mesh and its absence on the 2.5 m mesh.pre-commit run --all-filesand the Sphinx-Wbuild pass.Checklist
pre-commit run --all-filespassesctest --test-dir build --output-on-failurepassespython -m pytest tests python/testspasses (if Python or validation records changed)[Unreleased](heading added if missing) for user-visible changesdoc/updated for changed inputs, options, or outputsfeat:,fix:,docs:, ...)git commit -s) under theDeveloper Certificate of Origin