Repository navigation
Configure paired RM3 floating joint in Python WEC API - #56
Merged
Merged
Conversation
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.
Scope
Expose the existing paired four-coordinate RM3 floating joint through
WEC.floating_joint(float_body, spar, ...). Python users can configure the relative-heave PTO, joint surge spring, radiation option, added-mass comparison scheme, hard stops, and initial coordinates without writing a case dictionary.WEC.runreturns named surge, float heave, spar heave, pitch, body, and PTO histories. The mode rejects additional bodies, coordinate maps, separate PTOs, and off-axis joint locations that its solver would ignore.The general case runner retains its CSV output shape. The physical implicit added-mass scheme remains the default; source-compatible delayed mass feedback is explicit.
Paired evidence
Fresh pinned MATLAB MCR Option 1 array and MooringMatrix jobs pass the new public Python API gates. The MCR comparison gates all 4,001 samples of two bodies' surge/heave/pitch positions and velocities plus PTO stroke, speed, force, and absorbed power. The MooringMatrix comparison also checks imported elevation and the joint surge mooring force over 40,001 samples. The first case's largest observed differences are 35.1 mm surge, 0.228 mm heave,
3.46e-6rad pitch, 0.243 mm PTO stroke, 163 N PTO force, and 118 W absorbed power.The local Python API/case/wave suite passes (28 tests), both paired tests pass with the saved MATLAB artifacts and fresh live output, and
actionlintpasses. A built wheel runsWEC.floating_jointoutside the checkout.This is the published RM3-style slider layout. It does not claim arbitrary Simscape joints or off-axis PTO attachment dynamics. RM3 state-space Cases 5 and 6 remain a separate unresolved fit investigation.