Skip to content

docs(validation): record the supercycling verification - #41

Merged
SMI-Lab-Inha merged 3 commits into
devfrom
docs/supercycle-verification
Oct 22, 2026
Merged

SMI-Lab-Inha merged 3 commits into
devfrom
docs/supercycle-verification

Conversation

@SMI-Lab-Inha

Copy link
Copy Markdown
Owner

Summary

This PR records the verification of the coupled time-step work: the advisory (#38), the load predictor (#39) and the restart fix (#40). It also adds the script that computes the figures. No solver code changes.

Case.

  • IEA-15 VolturnUS-S, chain mooring.
  • DLC-1.6 environment: NTM 10.6 m/s turbulent wind, JONSWAP Hs 8 m / Tp 12 s.
  • 3800 s with the full aero-servo-elastic-hydro model.
  • Three runs of the current dev: dtM = DT = 0.025 s, and dtM = 0.1 s with extrapolated and with held loads.
  • The existing stock-MoorDyn twin, with the same seeds, for 0–1200 s.

Against CableDyn at dtM = DT: 200–3800 s, common 0.1 s grid; validation/scripts/openfast_supercycle_ab.py.

extrapolated (default) held
Platform DOFs: largest RMS of the difference / std 0.14 % 0.41 %
Tension mean / std / max (6 lines) within 0.01 / 0.12 / 0.16 % within 0.01 / 0.26 / 0.28 %
Fairlead DEL (rainflow, m = 3) ≤ 0.21 % ≤ 0.27 %
Anchor DEL ≤ 1.5 % ≤ 1.1 %
  • Anchor DEL in context. The reference's own DEL changes by up to 0.94 % between its 0.025 s samples and the 0.1 s grid. The anchor differences are of that order.
  • High-frequency differences. The leeward tension time series differ by 5–7 % of their std, because the lines step on the coarser dtM. Statistics and damage are unaffected.

Against stock MoorDyn (200–1200 s, openfast_dlc11_ab.py gates):

  • The in-plane platform std agree within 0.03 % (dtM = DT: 0.04 %; held: 0.14 %).
  • All three runs PASS.

Changes

  • validation/scripts/openfast_supercycle_ab.py (new) compares twin runs over the window, on the grid of the coarsest committed samples:
    • platform DOFs: mean, std, max and the RMS of the time-series difference over the reference std;
    • fairlead and anchor tensions: the same, plus the damage-equivalent load from a rainflow count (ASTM E1049 four-point method, half-cycle residue, a plateau of equal samples counted once);
    • the reference's native-sampling DEL, which shows the part of a difference that is sampling alone.
  • tests/test_supercycle_ab.py pins the rainflow count to the ASTM E1049 worked example, with and without plateaus, and checks the DEL of a constant-amplitude history against its closed form.
  • Records:
    • VALIDATION.md (L4, Supercycling);
    • a sentence in doc/openfast.rst's time-step note;
    • CHANGELOG.

A bug caught on the way, by this test: a first version dropped a peak sitting on a plateau, which the 7-digit .CD.out produces often. With it, the reference's native-sampling DEL came out below its 0.1 s-grid DEL, which is impossible.

Tests

  • Python: 2041 passed (3 new).
  • pre-commit run --all-files and the Sphinx build with -W pass.
  • No Fortran changes.

Checklist

  • pre-commit run --all-files passes
  • ctest --test-dir build --output-on-failure passes (no Fortran change)
  • python -m pytest tests python/tests passes (if Python or validation records changed)
  • VALIDATION.md updated if a validation result changed
  • CHANGELOG.md updated under [Unreleased] (heading added if missing) for user-visible changes
  • Documentation in doc/ updated for changed inputs, options, or outputs
  • Conventional Commit title (feat:, fix:, docs:, ...)
  • Commits are signed off (git commit -s) under the
    Developer Certificate of Origin

The coupled time-step work (#38 to #40) lets CableDyn solve on a dtM
larger than the OpenFAST DT. This records the verification of that
change on the IEA-15 MW VolturnUS-S chain mooring in a DLC-1.6
environment (NTM 10.6 m/s turbulent wind, JONSWAP Hs 8 m / Tp 12 s,
3800 s), at dtM = 4 DT = 0.1 s against the same model at dtM = DT and
against stock MoorDyn.

With the coupled loads extrapolated between CableDyn solves, every
platform DOF's time series differs from the dtM = DT run by at most
0.14 % of its standard deviation (0.41 % held), the tension statistics
stay within 0.16 %, and the rainflow damage-equivalent loads change by
at most 0.21 % at the fairleads and 1.5 % at the anchors, of the order
of the reference's own sampling effect (0.94 %). Against stock MoorDyn
the in-plane platform standard deviations agree within 0.03 %.

validation/scripts/openfast_supercycle_ab.py computes these figures
from the twin runs; its rainflow count (ASTM E1049, four-point method,
half-cycle residue, a plateau of equal samples counted once) is tested
against the standard's worked example.

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 commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

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

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T02:43:36.695230Z 9b56a67 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 Oct 22, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 CableDyn | 🛠️ Build #35314460 | 📁 Comparing 9b56a67 against latest (d3ddfeb)

  🔍 Preview build  

8 files changed · ± 8 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: 9ee654fbc8

ℹ️ 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 validation/scripts/openfast_supercycle_ab.py Outdated
…erence

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: 3e1909be31

ℹ️ 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 validation/scripts/openfast_supercycle_ab.py Outdated
…y it

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. 🎉

Reviewed commit: 9b56a67de3

ℹ️ 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 f0358ae into dev Oct 22, 2026
15 checks passed
@SMI-Lab-Inha
SMI-Lab-Inha deleted the docs/supercycle-verification branch October 22, 2026 03:58
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