Repository navigation
test: compare the linearisation and FAST.Farm runs with MoorDyn - #12
Conversation
The release check of the OpenFAST linearisation gated only invariants of CableDyn's own stiffness block (symmetry, restoring diagonals, the spread's symmetry) and reported MoorDyn's zero-frequency reduction D - C A^-1 B as unusable: about 14 % asymmetric and violating the spread symmetry. OpenFAST writes the .lin matrices in the .fst OutFmt, and with the usual 4-digit format D (about 1e8 N/m) cancels to a 1e4 N/m result; the same case reproduces the asymmetric block that way. The check now writes both twins with OutFmt ES24.15E3, lets MoorDyn settle its initial condition (TmaxIC 400 s), linearises at t = 0 in still water with platform DOFs only, refuses a reference with fewer than 10 digits or asymmetric above 1e-3, and gates CableDyn against it: per-fairlead blocks and the platform 6 x 6 to 0.5 %. On the IEA-15 MW UMaine twin the fairlead stiffness agrees to 0.07-0.10 % (0.29 % for the transverse H/X term) and the 6 x 6 diagonals to 0.10 %; standalone static solves reproduce the block by finite differences to 1.5e-5. VALIDATION.md, RELEASE.md and the manual's Linearisation bullet are updated. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
The FAST.Farm record rested on one 60 s run against stock MoorDyn, with tension differences from 0.04 % to 3 %, and no script in the repository reproduced it. fastfarm_shared_ab.py prepares the r-test MD_Shared farm for both modules (identical inputs except Mod_SharedMooring) and compares the mooring and platform channels. Over 600 s, from 100 s on, tension means agree to 0.02 %, minima and maxima to 0.25 %, and platform motions to millimetres and 0.001 deg. The shared lines' tension std is 2.2-2.7 % lower with CableDyn and 1.0 % lower at half the mooring step: CableDyn steps implicitly at the 0.05 s coupling step, MoorDyn explicitly at 1e-4 s. MoorDyn's initial settling does not converge for anchor legs 6 and 7, a start-up transient over by 100 s that most likely set the 3 % of the 60 s record. The comparison also shows that on a line with no Fixed end CableDyn's FairTen and AnchTen name the opposite ends from MoorDyn's, while the migration guide said the names were the same; it now says so. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
OpenFAST's CMake raises the Windows stack reserve from 2 MB to 16 MB only for Cygwin and Visual Studio builds. Built with the MinGW gfortran of the conda environment, as DEVELOPMENT.md describes, both openfast.exe and FAST.Farm.exe keep 2 MB, and FAST.Farm stops with a stack overflow while ElastoDyn initialises the r-test MD_Shared farm; the same executable with its stack reserve raised to 16 MB runs it. The guide now adds the linker flag to the configure line. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
|
@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. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6aeb992aac
ℹ️ 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".
Review found that the farm comparison scored the anchor tension of anchor leg 4 only, while the record speaks of all four legs, legs 6 and 7 included. The r-test deck writes AnchTen1-AnchTen4 only, so prepare now adds AnchTen5-AnchTen7 to both runs and compare scores the anchor and fairlead ends of every leg. Rerun over 600 s: the anchor tensions of legs 5-7 agree in mean to 0.018 % and in extremes to 0.084 %, inside the record's figures, which stand unchanged. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a4a5188a18
ℹ️ 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".
Review found that a FAST.Farm run that stopped after the start of the window but before TMax would still be compared over the shorter shared prefix, without a warning. compare now reads TMax from both prepared runs (they must agree) and refuses any mooring or turbine table that ends more than one output interval before it (FAST.Farm's MoorDyn output omits its last row), naming the table. The 600 s runs pass; the same CableDyn table cut at 500 s is refused. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
|
@codex review |
|
Codex Review: Didn't find any major issues. Keep them coming! 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
Closes two items of the coupled-route validation backlog and fixes a build note. No solver code changes.
validation/scripts/openfast_lin_ab.py). The release check gated only invariants of CableDyn's own stiffness block and reported MoorDyn's zero-frequency reductionD − C A⁻¹ Bas unusable (about 14 % asymmetric). OpenFAST writes the.linmatrices in the.fstOutFmt; with the usual 4-digit format,D(about 1e8 N/m) cancels to a 1e4 N/m result. The same case run that way reproduces the asymmetric, sign-flipped block. The check now:OutFmt ES24.15E3, lets MoorDyn settle (TmaxIC 400) and linearises at t = 0 (platform DOFs, still water);validation/scripts/fastfarm_shared_ab.py, new). The record rested on one 60 s run with no script in the repository.FAST.Farm.exebuilt as DEVELOPMENT.md describes keeps 2 MB and overflows in ElastoDyn's initialisation.Results
Linearisation (IEA-15 MW UMaine twin,
examples/openfastdecks):H/XtermH/X.OutFmt ES10.3E2the script stops: "MoorDyn reference unusable (digits 4, asymmetry 5.66e-01)".FAST.Farm (r-test
MD_Shared, 600 s, statistics from 100 s; identical inputs exceptMod_SharedMooring):The std difference is the step: CableDyn steps implicitly at the 0.05 s coupling step, MoorDyn explicitly at 1e-4 s; halving
DT_Mooringhalves it. MoorDyn's initial settling does not converge for anchor legs 6 and 7 (2.4 m of excess length at t = 0), a start-up transient over by 100 s that most likely produced the 3 % end of the old 60 s record.The comparison also found that on a line with no
Fixedend (the shared lines), CableDyn'sFairTen/AnchTenname the opposite ends from MoorDyn's (MoorDyn writesFairTenatAttachB). The migration guide said "same names"; it now says so, and the script pairs those channels by end.Tests
openfast_lin_ab.pypasses end to end, and--skip-runre-checks the same.linfiles.fastfarm_shared_ab.py comparereproduces the table above from the 600 s runs.preparewrites two run folders that differ only inMod_SharedMooring.-Wl,--stack,16777216flag gives a 16 MB reserve with this gfortran, and a FAST.Farm executable with a 16 MB reserve runs the farm case.pre-commit run --all-filespasses.Checklist
pre-commit run --all-filespassesctest --test-dir build --output-on-failurepasses — not applicable, no source changespython -m pytest tests python/testspasses (if Python or validation records changed) — the changed scripts are standalone validation scripts outside the test suites; both were run as described above[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