Skip to content

Conversation

@lejeunemax
Copy link

WindIO support in FLORIS

This PR introduces support for WindIO in FLORIS.
It enables running FLORIS wake simulations directly from WindIO-compliant input files, while keeping WindIO as an optional dependency.

Summary of changes

The fmodel now includes three new methods:

  • from_windio
    Reads a WindIO YAML farm file and runs a wake model simulation based on its contents.

  • set_wind_data_from_windio
    Updates the wind farm geometry and turbine data based on a specified WindIO wind farm file.

  • set_farm_from_windio
    Updates wind data based on a specified WindIO wind resource file.
    Currently supported wind resource formats include:

    • Time series
    • Wind rose
    • Weibull distribution

WindIO parsing and field tracking

WindIO input files are read using the modified dictionary class
read_windio/utils/TrackedDict.

This class tracks which WindIO fields are accessed during parsing and emits a warning when keys from the WindIO input are not used. This mechanism helps:

  • Identify which WindIO fields are currently mapped to FLORIS
  • Highlight which inputs are ignored or not yet supported

Dependency management

WindIO is imported at runtime and therefore remains an optional dependency of FLORIS.
Users who do not rely on WindIO workflows are not affected.

Impacted areas of the software

Most changes are contained within the read_windio directory and are therefore largely orthogonal to other ongoing or future developments.

To comply with the WindIO output standard, a new keep_inertial_frame option was added to the initialization of FlowFieldPlanarGrid.
This option allows the FLORIS flow field to be computed on a fixed inertial grid, rather than in a frame aligned with the main wind direction, which is required for compatibility with WindIO outputs.

Optional TODOs

  • Review and update documentation as needed
  • Add tests for WindIO-based workflows
  • Check for unmapped or unsupported features (e.g. blockage_model, axial_induction_model, rotor_averaging)
  • Enforce consistent FLORIS-style logging across the new code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants