Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenFAST v3.2.0 #1175

Merged
merged 256 commits into from
Jul 13, 2022
Merged

OpenFAST v3.2.0 #1175

merged 256 commits into from
Jul 13, 2022

Conversation

rafmudaf
Copy link
Collaborator

@rafmudaf rafmudaf commented Jul 8, 2022

Feature or improvement description
Pull request to merge main into dev and create a tagged release for v3.2.0.

See the milestone and project pages for additional information

Test results, if applicable
See GitHub Actions

Release Checklist

  • Update the documentation version in docs/conf.py
  • Update the versions in docs/source/user/api_change.rst
  • Verify readthedocs builds correctly
  • Create a tag in OpenFAST
  • Create a merge commit in r-test and add a corresponding tag
  • Compile executables for Windows builds
    • FAST_SFunc.mexw64
    • OpenFAST-Simulink_x64.dll
    • openfast_x64.exe
    • DISCON.dll

Proposed Change Log

General

#866 Include legacy documentation in pdf and MS Word format - Modules
#1021 Reg_tests python scripts: fix issue where directory returned is empty
#1062 Add documentation for community contribution
#1169 Update git-module urls
#1158 Update orientation differences in linear trim solution
#1177 Add documentation on 3D rotations in linearization
#1178 Corrections for 3.2.0 release

AeroDyn

#932 BugFix: UA update states that were not updated
#1032 AD: added more nodal outputs for debugging UA
#1039 [BugFix] Nacelle motion not passed between AeroDyn driver and AeroDyn
#1043 AeroDyn: combine some FVW and BEMT output calculations
#1045 OLAF: check for division by zero to avoid invalid calculations
#1141 Move AD module reg tests to a standalone job

BeamDyn

#1050 Fix aeroelastic stability analysis with BeamDyn

FAST.Farm

#1107 Fix Time-Step Delay in Super Controller within FAST.Farm

HydroDyn

#806 C-bindings interface for HydroDyn
#1047 Fix HydroDyn Jacobian outputs when LinOutJac is True
#1108 BugFix: Checks to populate matrix input to Newman's app were reversed
#1173 Bug Fix: rotation matrix perturbation with small angles was wrong

InflowWind

#1144 BugFix: Fix typo in DLLEXPORT attributes for IfW C interface

MAP++

#1048 MAP: small fix based on MAP 1.3
#1168 Fix MAP linearization operating point

NWTC Library

#1050 Fix aeroelastic stability analysis with BeamDyn -- changes to the library routines for angle perturbations during linearization
#1124 Updates to VersionInfo module and its dependencies
#1157 Fix for binary file compression

OpenFAST Library

#962 Add a Python glue-code interface
#1057 FAST Library: add access to hub position and velocity

ServoDyn

#803 Linearization of ServoDyn Structural control elements
#1074 [BugFix] ServoDyn StC control signal channels were not zeroed properly
#1089 BugFix: Fix API change line numbers
#1101 BugFix: ServoDyn API change docs
#1140 Add non-rotating hub forces to Bladed Interface
#1160 Correction to documentation on Extended Bladed DLL interface

TurbSim

#887 TurbSim modifications

Does not run (seg faults) since there are old routines still that need updating.
- new order: Blade, nacelle, tower, substructure
- The order is very important in the linearization, so I reordered simply to keep it consistent everywhere.
- Update SrvD_JacobianPInput
   - still missing the dYdu user channels
   - also missing dXdu
- Update GetOP for dx_op matrix
- Updates to FAST_Lin.f90 so it now compiles and actually runs!!!!  Just produces rubbish...

There was some confusion on a prior commit about where the logmapping flag from FAST_Lin goes (doesn't go with the u% stuff, only for y% motion DCMs)
- this is necessary so I can set outputs for single StC during linearization (speeds up code)
- think this is working for BStC
- but u (unerturbed) was getting used to set the StC motion input perturbations :(
Increase rank of arrays so that blade number and StC instance are tracked.  This simplifies assembling of jacobians in glue code.
Also a few blank lines moved for easier git comparisons
fix a few typos in Linear_SrvD_InputSolve_du, and add some comments
Copy link
Contributor

@ebranlard ebranlard left a comment

Choose a reason for hiding this comment

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

I would possibly add #1168

* MAP: Jacobian_PInput modifies y, but should be at y_op (See #1165)

* MAP: dll routine to return summed load at operating point
@rafmudaf
Copy link
Collaborator Author

I would possibly add #1168

Ok done!

@bjonkman
Copy link
Contributor

I'd suggest also adding this bug fix: #1158

- Changed name of optional parameter in`ModName_GetOP` routine from `NeedLogMap` to `NeedPackedOrient` in an attempt to clarify what that does (returns the orientation matrix as a 3-valued vector instead of 9-valued one)
- Made the use of this value consistent in ElastoDyn (all meshes with orientation fields that are packed in the GetOP routine need to have the same value for their  call to `PackMotionMesh`)
- Added the optional `NeedPackedOrient` input to `SD_GetOP`
- Made ED, BD, and SD each pack their arrays the same way in `FAST_DiffInterpOutputs`; otherwise, the linear trim solution does not difference all of the outputs correctly to determine if it has converged
@rafmudaf
Copy link
Collaborator Author

I'd suggest also adding this bug fix: #1158

Thanks - did it!

Copy link
Collaborator

@jjonkman jjonkman left a comment

Choose a reason for hiding this comment

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

I'm happy to see OpenFAST v3.2.0 finally being released! Please find a few comments regarding the updated documentation below.

Also, after finally reviewing #1050 that has already been merged, I found a couple discrepancies wrt the 3D rotation implementation plan. I've now sent these comments to @andrew-platt and will paste them here for completeness. These changes should also be implemented in this release:

  • For the perturbation of input rotations for the TStc and SStc meshes in ServoDyn, the small angle perturbation approach should be used, i.e., the call to PerturbOrientationMatrix() needs UseSmlAngle=.true. For BStc and NStc, the implementation looks correct.

  • Likewise in AeroDyn for the tower motion orientation, UseSmlAng = .true. should be used.

docs/source/user/api_change.rst Outdated Show resolved Hide resolved
docs/source/user/api_change.rst Outdated Show resolved Hide resolved
docs/source/user/fast.farm/index.rst Outdated Show resolved Hide resolved
docs/source/user/turbsim/output.rst Show resolved Hide resolved
…cture (SStc)

This now aligns with the 3D rotation implementation plan (in docs/OtherSupporting).
Copy link
Collaborator

@jjonkman jjonkman left a comment

Choose a reason for hiding this comment

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

Thanks for addressing my comments. I know approve this release.

@rafmudaf rafmudaf merged commit 90a1ffb into main Jul 13, 2022
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.