Repository navigation
feat: run lines restrained in torsion in coupled OpenFAST runs - #11
Merged
Merged
Conversation
Torsion of finite-EI lines was the main feature of 0.1.1 but ran in the standalone driver only: the coupled entries refused any torsion column. Most of what the coupled route needs was already in place. The cable module turns a parent-attached End A frame with the host orientation, returns the torque moment with the connection moment, substeps a large turn within a step, and carries the unwrapped twist in its snapshot and checkpoint mirror. The OpenFAST and FAST.Farm shells pass the platform orientation every update. The aggregate and the single-cable entry now take a host_orientation flag, which the shells set: with it a deck with torsion columns builds, without it (the C API, the standalone mixed route, which move line ends by translation only) the deck is refused by name instead of running with a frozen fairlead frame. A coupled run is always dynamic, so the configuration blend is refused at initialisation as on the standalone route. Three shell changes complete it. The checkpoint rebuild moved the fairlead to the restart pose before it reloaded the cable mirror, so the preflight bounded the twist change against the static twist and a restart after more than 90 deg of turn failed; the rebuild now restores the torsion cables' mirror first. Linearisation now refuses a line restrained in torsion also at a bending-pinned end, whose torque stiffness the translation-only reduction would drop. The state registration subtracted the friction and force-blend slots but not the 14 torsion slots, so the velocity and position blocks were mislabelled. A new test, coupled_torsion, drives the aggregate: a rolled fairlead gives Twist1 = -roll and GJ(-roll)/L, a 60 deg/s roll the quasi-static torque at every step (bit-identical to the single coupled cable), 1.5 turns no 2 pi slip; rewind, refusal of a 100 deg non-stepping turn, PtfmInit, a FAST.Farm turbine yaw, and the checkpoint recipe after 150 deg (the previous order is refused) are checked. In an OpenFAST build, the IEA-15 MW mixed deck with its power cable restrained in torsion runs 60 s in waves and restarts from a checkpoint bit-identically. Signed-off-by: Jae Hoon Seo <jaehoon.seo@inha.ac.kr>
Owner
Author
|
@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. Another round soon, please! 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". |
4 of 8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Runs finite-EI lines restrained in torsion in coupled OpenFAST (
CompMooring = 5) runs and, on the aggregate surface, FAST.Farm. Torsion was 0.1.1's main feature but ran in the standalone driver only; every coupled entry refused torsion columns.Most of the machinery already existed:
Changes:
CD_Init_Deck_Aggregate,CD_AGG_Init_From_DeckandCD_Init_Deck_HermiteCabletake ahost_orientationflag, which the OpenFAST and FAST.Farm shells set (init and checkpoint rebuild). Without it (the C API and the standalone mixedEI = 0+ finite-EI route, which move line ends by translation only) a deck with torsion columns is refused by name instead of running with a frozen fairlead frame. A coupled run is always dynamic, soFalse alpha_force_blendis refused at initialisation, as on the standalone route.reload_cable_mirrors), then sets the coupled kinematics, then reloads the full mirror as before.a aᵀ / Cthe translation-only quasi-static reduction would silently drop.CD_InitVarssubtracted the friction and force-blend slots but not the 14 torsion slots, so the cable velocity/position blocks were mislabelled;CD_HFMF_TorsionMirrorSizeis now public and subtracted.Tests
New
coupled_torsion(aggregate,openfastlabel). The straight 100 m neutral line (GJ5e4 N·m²), End A on the platform fairlead, End B anchored:Twist1 = −20°,Torq = GJ(−roll)/Lat both ends to 1e-6; fairlead moment = torque about the line axis, resisting the roll; no bending momentpi/2), state unchangedPtfmInityaw 15° over a vertical lineGJ·yaw/LTurbine2,farm_ptfm_inityaw 10°torsion_deck: callers without orientation are refused by name; with it, both coupled entries build; the configuration blend is refused.OpenFAST build of this branch (gfortran, IEA-15 MW VolturnUS-S, 3 chains + the lazy-wave power cable restrained in torsion, 60 s of irregular SeaState waves, no wind):
NumCrctn = 1;Torq4N1 = GJ·Twist4/L; the twist follows the platform yaw (±0.14° against ±0.12°);openfast -restartfrom 30 s reproduces all 1200 later rows of the OpenFAST and CableDyn outputs bit for bit.No full FAST.Farm run with a torsion line is part of this PR; FAST.Farm is covered on the aggregate surface the farm shell drives.
Suites: full CTest suite, Windows, gfortran 16.2, Release, slow tier included: 251/251 pass (rebased on #10). Python:
python/tests1879 passed,tests46 passed, with the native library.Found along the way, not changed here: the standalone torsion statics of a lazy-wave cable with a long laid section on a coarse deck mesh stops as an unstable equilibrium; the cause (spurious Gauss-point compression of an under-resolved touchdown) and a mesh-refinement fix are prepared for a separate PR. The OpenFAST case above uses a shorter laid section.
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