Skip to content

Conversation

@misi9170
Copy link
Collaborator

@misi9170 misi9170 commented Jan 13, 2026

FLORIS v4 introduced the notion of turbine "operation models", which model how a turbine responds to different control setpoints and atmospheric conditions. See the documentation for details.

Until now, users specify which operation model they'd like to use by either setting the operation_model key on the turbine input yaml, or passing one of the predefined strings (e.g. "cosine-loss", "simple-derating", etc) to FlorisModel.set_operation_model().

This PR enables users to pass in a compatible operation model class of their own making. Currently included are the functional changes (which are minimal, and limited to turbine.py and floris_model.py), detailed documentation showing how this feature can be used, and tests. I also plan to make a small example showing how this can be done. Note also that the existing, prepackaged operation models can also be passed in this way, if desired.

Finally, this also adds tests to show that the operation model class passed can be a dynamic class (all prepackaged operation models are static classes at this time).

I am leaving this PR as a draft while we work with partners to ensure that everything works as expected.

As part of this PR, I'm also renaming FlorisModel.get_turbine_ais() to the more explicit FlorisModel.get_turbine_axial_induction_factors(), which is more consistent with other methods used to extract quantities from FLORIS (e.g. FlorisModel.get_turbine_thrust_coeficients()). For backwards compatibility, FlorisModel.get_turbine_ais() will still work but will throw a deprecation warning.

To do:

  • Check full integration
  • Add or update examples to show usage
  • Update docs page with exact minor version number of expected release

@misi9170 misi9170 added enhancement An improvement of an existing feature documentation labels Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation enhancement An improvement of an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant