Skip to content

CurledWake: use non-dimensional Ct in Gamma_0#35

Open
zanig wants to merge 1 commit into
Howland-Lab:mainfrom
zanig:fix/gamma0-ct-dimensionalization
Open

CurledWake: use non-dimensional Ct in Gamma_0#35
zanig wants to merge 1 commit into
Howland-Lab:mainfrom
zanig:fix/gamma0-ct-dimensionalization

Conversation

@zanig

@zanig zanig commented May 12, 2026

Copy link
Copy Markdown

The initial circulation Gamma_0 in CurledWakeWindfield.stamp_ic was using
the dimensionalized rotor.Ct (= sol.Ct * REWS^2) instead of the
non-dimensional rotor.extra.Ct (= sol.Ct).
After the fix, Gamma_0 scales linearly with U_REWS, matching both the
dimensional argument ([Gamma] = L^2/T) and the referenced Shapiro et al. (2018) form.

Also adds tests/test_uref_invariance.py: it runs a 2-turbine yawed farm with the
k-l turbulence model at U_0=1 and U_0=2 and asserts that REWS/U_0 at each
turbine is invariant under freestream rescaling, and that U_REWS <= U_0 for a Uniform Inflow.

To isolate the bug into a single factor, I ran a 4-turbine inline row (20° yaw, k-l model) at U_0=1 and U_0=8. Because $\Gamma_0 \propto U_{\rm REWS}^3$ instead of $U_{\rm REWS}^1$, each downstream turbine accumulates a stray U^2 factor and the ratio of $U_{\rm REWS}/U_0$ between the two runs diverges from 1.0, shown below.

Turbine current (rotor.Ct) fixed (rotor.extra.Ct)
1 1.0000 1.0000
2 4.0293 0.9995
3 2.0580 1.0001
4 2.3485 1.0000

Turbine 1 has no upstream wake so it's invariant either way; T2–T4 sit downstream and pick up the $U_{\rm REWS}^2$ factor. Based on this observation is also the added test.

You're making a pull request to a branch (probably main) of MITWindFarm. Please ensure you have done the following.

  • Request a review from other Howland Lab members who use MITWindFarm.
  • Add at least a sentence on your change to the documentation (probably the quickstart guide).
  • Add tests for your new functionality.
  • Make sure the tests pass and the documentation notebook still runs.
  • Get approval from the folks you requested a review from.

If you want more details on best practices, please see the following guide on the Howland Lab Google Drive.

Happy merging!

…ance

  The initial circulation Gamma_0 used to stamp the (Delta_v, Delta_w)
  counter-rotating vortex pair in CurledWakeWindfield.stamp_ic was using
  the dimensionalized rotor.Ct (= sol.Ct * REWS**2) instead of the
  non-dimensional rotor.extra.Ct (= sol.Ct). The result was that Gamma_0
  scaled as U_REWS**3 instead of U_REWS**1, breaking the freestream-velocity
  invariance of the model.

  After the fix, Gamma_0 scales linearly with U_REWS, matching both the
  dimensional argument ([Gamma] = L^2/T) and the referenced Shapiro et al. (2018) form.

  Also adds tests/test_uref_invariance.py: it runs a 2-turbine yawed farm with the
  k-l turbulence model at U_0=1 and U_0=2 and asserts that REWS/U_0 at each
  turbine is invariant under freestream rescaling.
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.

1 participant