A blade element momentum method for analyzing wind turbine aerodynamic performance that is robust (guaranteed convergence), fast (superlinear convergence rate), and smooth (continuously differentiable).
This refactors CCBlade.distributedAeroLoads() and CCBlade.evaluate() to return dicts for outputs and derivatives instead of tuples. This provides a more unified interface for these methods regardless of the values of the induction and derivatives flags.
It makes it much easer to add additional outputs at the blade and rotor levels, and some additional outputs - W, Re and perhaps a few other I can't remember - are added.
This PR also does away with some of the confusing logic which returned variable-length tuples based on their values of CCBlade.induction and CCBlade.derivatives. Now, those flag still exist, but their values only determine if values actually get put into the output dicts. As before, no derivatives are computed if CCBlade.derivatives is False
This refactors
CCBlade.distributedAeroLoads()
andCCBlade.evaluate()
to return dicts for outputs and derivatives instead of tuples. This provides a more unified interface for these methods regardless of the values of theinduction
andderivatives
flags. It makes it much easer to add additional outputs at the blade and rotor levels, and some additional outputs -W
,Re
and perhaps a few other I can't remember - are added.This PR also does away with some of the confusing logic which returned variable-length tuples based on their values of
CCBlade.induction
andCCBlade.derivatives
. Now, those flag still exist, but their values only determine if values actually get put into the output dicts. As before, no derivatives are computed ifCCBlade.derivatives
isFalse
This also fixes all tests, addressing #15