AD: refresh wind rotations for direction linearization - #3468
Open
Mohammad-Salik wants to merge 1 commit into
Open
Mohammad-Salik wants to merge 1 commit into
Mohammad-Salik wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
One or more issues must be addressed before approval.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Updates AeroDyn’s flow-field perturbation used for Jacobian calculations so propagation-direction changes refresh wind rotations.
Changes:
- Resets cached rotation data for each perturbation.
- Recomputes rotation matrices and enables wind-box rotation for direction perturbations.
File summaries
| File | Description |
|---|---|
| modules/aerodyn/src/AeroDyn.f90 | Updated as part of this pull request. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Mohammad-Salik
marked this pull request as ready for review
September 19, 2026 08:41
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.
Feature or improvement description
Fix the AeroDyn Jacobian perturbation for the InflowWind propagation-direction extended input.
PerturbFlowFieldcurrently perturbsPropagationDirwhile leaving the dependentRotToWind,RotFromWind, andRotateWindBoxvalues unchanged. As a result, AeroDyn evaluates the perturbed case with the base wind rotation and the aeroelastic propagation-direction sensitivity is lost.This change resets the cached rotation quantities from the base flow field for each perturbation and recomputes them when
PropagationDiris perturbed. No change is made to the finite-difference step size.Related issue, if one exists
Closes #3463
Impacted areas of the software
No time-domain behavior is intentionally changed; the modification is confined to the flow-field copy used inside the input-Jacobian perturbation.
Additional supporting information
The production change was validated on clean OpenFAST v5.0.0 source revision
2895884d2be01862173c88d70f86b358d2f1a50aat one operating point with 36 azimuth snapshots. At the maintainers' request, this PR targetsrc-5.0.1for the v5.0.1 bugfix release.With the original implementation, both propagation-direction state-input columns are zero and their feedthrough to turbine outputs is zero, while the InflowWind diagnostic velocity Jacobian still gives the expected lateral derivative. With the repair, the aeroelastic direction sensitivity is restored.
The repaired rotation perturbation was compared at the same perturbation size against an independent uniform-wind-angle finite-difference implementation. The direction
Bcolumns agreed exactly at saved precision and the maximumD-column difference was2.7041e-13. Saved operating states/inputs/outputs,A,C, and all non-directionB/Dcolumns were unchanged at saved precision.A reproducer containing the input files, 36 legacy/fixed
.linpairs, and a standalone comparison script is attached to issue #3463.Finite-difference step-size convergence was investigated separately and is not part of this patch.
Generative AI usage
OpenAI Codex was used to assist with implementation and validation tooling. OpenAI ChatGPT was used to assist with preparation of the reproducer and PR text.
Test results, if applicable
Validated on the
rc-5.0.1PR branch at commitaa22ddca9, built withIntel ifx 2026.0.0 in double precision.
The direction-linearization reproducer was rerun with the PR executable at
36 azimuth snapshots. The repaired model restores nonzero propagation-direction
Band turbine-outputDsensitivity. Saved operating points,A,C,and all non-direction
B/Dcolumns remain unchanged at the exported precision.Existing linearization regression tests were also run.
WP_Stationary_Linearpasses. The remaining affected linearization cases differ only in the
propagation-direction Jacobian columns: the current r-test references contain
the pre-fix zero sensitivity, while the PR produces the corrected nonzero
response. Modal frequencies/damping and all non-direction entries remain
unchanged.
An r-test reference update is therefore required to reflect the intended
propagation-direction Jacobian change.