Skip to content

feat: a seabed drift note and initialisation notes for in-process hosts - #100

Merged
SMI-Lab-Inha merged 10 commits into
devfrom
feat/capi-init-notes
Nov 7, 2026
Merged

SMI-Lab-Inha merged 10 commits into
devfrom
feat/capi-init-notes

Conversation

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner

Summary

Seabed drift note. With no seabed friction a current moves grounded nodes freely along the seabed, with no warning. One initialisation note now appears when a dynamic deck has an interior node in contact at the converged static state, a current on that line and no friction. It names the lines and the remedy (frictionMu), or says friction is not supported where the route rejects it. It covers EI = 0 and finite-EI lines on the standalone routes and the coupled route, with a deck current or a host's steady current. It changes no result.

Notes of an initialisation. The C API prints no notes, so an in-process host never saw them. CableDyn_GetInitNotes returns the notes of the last initialisation as text, with the buffer conventions of CableDyn_GetLastError; a NULL buffer asks for the size. Python: CableDyn.init_notes, a list of strings. Part of ABI minor 4. A failed initialisation replaces the notes while the handle keeps its model.

Checks

  • seabed_drift_note: 82 gates, 20 of which fail on the old driver: every case with and without grounded nodes, static-only runs, friction on, zero current, a taut line touching only at its anchor, TURBINES with motionFile.
  • The note appears on three shipped decks, each confirmed by node channels; the two silent lazy-wave decks are TMax 0 and print it once given a march.
  • 58 shipped decks: files and messages identical to the previous tree apart from the note.
  • init_notes equals the driver's start and report notes on 6 shipped decks, tested through Python and C. With a host field a deck's steady current gives the note, and a deck with no current gives none.
  • A TURBINES deck at TMax 0 without dtM.
  • CTest 361 of 361, pytest passes, no new compiler warnings.

The CHANGELOG entry lands with the release batch.

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 7, 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-07T17:43:22.845372Z ba1522d 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.

@read-the-docs-community

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

Copy link
Copy Markdown

Documentation build overview

📚 CableDyn | 🛠️ Build #35722233 | 📁 Comparing ba1522d against latest (3d04008)

  🔍 Preview build  

19 files changed · ± 19 modified

± Modified

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6c114ba0fd

ℹ️ 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".

Comment thread python/cabledyn/_lib.py Resolved
…eabed

With no seabed friction a current moves grounded nodes freely along the
seabed, and nothing in a run says so. A dynamic deck with an interior
line node in contact at the converged static state, a current on the
line and no friction now prints one initialisation note for the run,
naming the lines and frictionMu. Where the route rejects frictionMu the
note says so instead of asking for it.

The note covers EI = 0 and finite-EI lines on the standalone routes, and
the coupled aggregate with the current known at initialisation (the
deck's, or the host's steady current). A run that marches no step prints
nothing. No result changes.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
The note gave a drift distance that was never measured. It now says
what holds: nothing holds the grounded nodes against the current, so the
layout can drift along the seabed through the run.

The note test gains a TURBINES deck on its motionFile record, and the
shipped lazy wave, silent at its own TMax = 0 and noted on a short march.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
The row editor could match a comment that names an option, and leave
the option itself as it was. It now skips comments, and the test checks
that a shipped deck keeps one TMax row.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
An in-process host saw none of the notes the driver and OpenFAST print
at the start of a run. CableDyn_GetInitNotes returns the notes of the
last deck initialisation on a handle, one per line, on the point route
and the aggregate alike, under the buffer conventions of
CableDyn_GetLastError; it also returns the whole length, so a null
buffer asks for the size. Python reads them as CableDyn.init_notes.

The notes of a parse are kept once, although a deck is read twice. The
library prints what it printed before. The point route now works out
the notes of its lines, which it had no report for. Part of ABI 1 minor
extension 4.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
The notes of a point system now take the step the deck reports, zero
without one, so a deck built on a nominal step gets no dtM advisory. The
two module variables of the note capture join the reviewed static
storage: they are written only under the process-wide input lock.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
The static check gains the TURBINES route: a deck on its per-turbine
motionFile record runs without dtM and writes the output of the run
with dtM byte for byte.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
A library of ABI minor 4 could predate CableDyn_GetInitNotes, and the lookup sat with the host fluid calls, so importing cabledyn stopped. The call is now optional and only init_notes refuses without it.

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

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ec00e2eb55

ℹ️ 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".

Comment thread src/CableDyn_CAPI.f90 Resolved
The notes of a line were copied through a 2048-character buffer, shorter than the summary they come from, so a longer note would have been cut. The buffer now has the summary's own length.

Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
@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. Can't wait for the next one!

Reviewed commit: ba1522de3f

ℹ️ 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 8244887 into dev Nov 7, 2026
26 of 27 checks passed
@SMI-Lab-Inha
SMI-Lab-Inha deleted the feat/capi-init-notes branch November 7, 2026 20:31
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