Bug report: AeroDyn Write Output Not Appearing in Linearization
Bug description When write outputs are specified in AeroDyn for an OpenFAST model that is linearized, the derivatives of these outputs should be calculated and reported in the linearized C and D matrices. However, the rows in the C and D matrices associated with the AeroDyn write outputs are all zero. This functionality worked in OpenFAST v2.6 and older, but no longer works in OpenFAST v3.0 and the current dev branch. I would guess the bug originated when the multi-rotor capability was added to AeroDyn in PR # https://github.com/OpenFAST/openfast/pull/672.
To Reproduce See the model input files shared by Dezheng Zhu on the forum: https://wind.nrel.gov/forum/wind/viewtopic.php?f=30&t=2667 and compare the C and D matrices between OpenFAST v2.6 and v3.0.
Expected behavior Nonzero derivatives associated with the AeroDyn write outputs.
Screenshots, if applicable
OpenFAST Version OpenFAST v3.0 and current dev.
System Information (please complete the following information): Any
Additional context
We might have to
- call
AD_CalcOutputinstead ofRotCalcOutputinRot_JacobianPInput()andRotJacobianPContState()or - move where
y%rotors(iR)%WriteOutputis computed fromAD_CalcOutputintoRotCalcOutput.
This issue was resolved by PR #1061.
Reopening this issue as we now thing we should be calling AD_CalcOutput.
This became an issue after the addition of the buoyancy loads to AD15. These loads were added to the AD_CalcOutput, so would not get included in the linearization results. So we think it best to not have the glue code aware of the rotors in AD15.
I don't think this is a matter of the glue code being aware of rotors in AD15.... For instance, the glue code calls AD_JacobianPInput, which calls Rot_JacobianPInput. I don't think the rotor-level Jacobian routines should be calling the AD (all rotors+) routines, so you'd have to do some other rearranging of those jacobian routines (not just calling AD_CalcOutput).