Skip to content

Conversation

@deslaughter
Copy link
Collaborator

This PR is ready to merge

Feature or improvement description

This PR adds the ModCoupling switch to the main input file which allows the user to select between:

  • LooseCoupling: traditional loose coupling scheme (could use more testing and benchmarking)
  • TightCoupilngFixed: tight-coupling algorithm with a fixed Jacobian update time. Simulation will exit if the simulation doesn't converge
  • TightCouplingAdapative: tight-coupling algorithm where the Jacobian is automatically updated and a correction step is performed if solution doesn't converge in a time step.

This PR also renames the new RotorDir flag to MirrorRotor which is more descriptive of how the flag will be used. This flag currently isn't used, but it will be for multi-rotor turbines.

Impacted areas of the software

Glue code, regression tests

Test results, if applicable

The AWT_WSt_StartUp_HighSpShutDown regression test is enabled once again and uses the loose coupling scheme for the solve which is required for the high-speed brake.

…ption. Rename RotorDir to MirrorRotor. Reenable high-speed brake test. Update regression tests.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a ModCoupling input parameter to enable selection between loose coupling and tight coupling schemes (with fixed or adaptive Jacobian updates), and renames RotorDir to MirrorRotor for clarity. The AWT_WSt_StartUp_HighSpShutDown regression test is re-enabled using loose coupling.

Key Changes:

  • Added ModCoupling switch to select coupling method (loose, tight-fixed, tight-adaptive)
  • Renamed RotorDir to MirrorRotor throughout the codebase
  • Re-enabled AWT_WSt_StartUp_HighSpShutDown regression test with loose coupling
  • Updated ServoDyn to validate high-speed brake mode only for tight coupling

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
reg_tests/r-test Updated subproject commit reference
reg_tests/CTestList.cmake Re-enabled AWT_WSt_StartUp_HighSpShutDown regression test
openfast_io/openfast_io/FAST_writer.py Changed RotorDir to MirrorRotor in writer
openfast_io/openfast_io/FAST_reader.py Changed RotorDir to MirrorRotor in reader
modules/servodyn/src/ServoDyn_Types.f90 Added TightED flag to InitInputType
modules/servodyn/src/ServoDyn_Registry.txt Added TightED registry entry
modules/servodyn/src/ServoDyn.f90 Updated brake validation to check TightED flag
modules/openfast-library/src/Glue_Types.f90 Added ModCoupling parameter to TCParam
modules/openfast-library/src/Glue_Registry.txt Added ModCoupling registry entry
modules/openfast-library/src/FAST_Types.f90 Added coupling constants and renamed RotMirror to MirrorRotor
modules/openfast-library/src/FAST_Subs.f90 Added ModCoupling input reading and validation
modules/openfast-library/src/FAST_Solver.f90 Updated module categorization based on coupling mode
modules/openfast-library/src/FAST_Registry.txt Added coupling constants and ModCoupling parameter
modules/openfast-library/src/FAST_Funcs.f90 Added state updates for ED/BD/SD in loose coupling
modules/nwtc-library/src/Registry_NWTC_Library_base.txt Renamed VC_ constants to MC_ and added MC_Post
modules/nwtc-library/src/Registry_NWTC_Library.txt Renamed VC_ constants to MC_ and added MC_Post
modules/nwtc-library/src/NWTC_Library_Types.f90 Updated generated types with MC_ constants
docs/source/user/api_change.rst Updated documentation with new ModCoupling and MirrorRotor inputs

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@andrew-platt
Copy link
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants