Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eddy viscosity wake model #882

Draft
wants to merge 73 commits into
base: develop
Choose a base branch
from
Draft

Conversation

misi9170
Copy link
Collaborator

@misi9170 misi9170 commented Apr 18, 2024

Eddy viscosity wake model

Introduces the eddy viscosity wake model, as described by Ainslie (1988) and extended by Gunn (2019).

The implementation comprises the following:

  • Calculation of an initial velocity in the wake of a wind turbine
  • Computation (via integrating an ODE) of the centerline velocities in the wind turbine wake for downstream locations
  • Calculation of the wake width according to the usual Gaussian wake shape and momentum conservation
  • Correction for the wake width via "streamtube expansion" when the wake of an upstream turbine encounters a downstream turbine
  • Combination of wakes using the "sum of energy deficits" (Kuo et al., 2014)

These are implemented in the following locations:

  • floris/core/wake_velocity/eddy_viscosity.py
  • floris/core/wake_combination/soed.py
  • floris/core/solver.py (streamtube_expansion_solver() and full_flow_streamtube_expansion_solver())

This pull request is currently a draft, while we work through final implementation steps and incorporate feedback.

TODO

  • Implement eddy viscosity model main solve
  • Test main solve
  • Implement eddy viscosity "full flow" solve for visualization and flow sampling
  • Include wake deflection model (currently raises NotImplementedError with nonzero yaw angles)
  • Add initial set of examples
  • Handle warnings raised
  • Incorporate feedback and comments on implementation, in particular:
  • where streamtube expansion should be applied
  • which turbulence intensity (either atmospheric or wake-induced) should be used to initialize eddy viscosity model for downstream turbines
  • whether and how to use the near-wake correction filter
  • Clean up and finalize examples
  • Add documentation

@misi9170 misi9170 changed the title Add eddy viscosity model Eddy viscosity wake model Jul 16, 2024
@misi9170
Copy link
Collaborator Author

misi9170 commented Jul 17, 2024

This pull request is now ready for comments. I've added two example scripts that use the eddy viscosity model, which can be found in examples/examples_eddy_viscosity.

The first, 001_demonstrate_eddy_viscosity_model.py, demonstrates the wake velocity predictions in a wind farm (first, a row of 3 turbines aligned; and second, a 3x3 wind farm in conditions first where the flow is aligned and second when the flow is misaligned with the rows by 15 degrees). Running the script produces the following figures:
ev_001_fig1
ev_001_fig2

The second script, 002_reproduce_published_results.py, attempts to recreate plots published by Ainslie (1988) and Gunn (2019) of the wake profile. I was not able to accurately reproduce the results from Ainslie (Figs 3. and 4.), but I believe the second figure generated, which attempts to recreate Fig 1b. from Gunn, is a good match. I used the specified parameters from Gunn, and adjusted the ambient turbulence intensity to get this match.
ev_002_fig1
ev_002_fig2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation examples Changes to FLORIS examples floris.simulation in-progress Work is actively in progress new-feature A new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant