Skip to content

Expand PyWake submodel support with case-insensitive lookup#53

Open
bjarketol wants to merge 1 commit into
EUFLOW:mainfrom
bjarketol:expand-pywake-submodel-support
Open

Expand PyWake submodel support with case-insensitive lookup#53
bjarketol wants to merge 1 commit into
EUFLOW:mainfrom
bjarketol:expand-pywake-submodel-support

Conversation

@bjarketol

Copy link
Copy Markdown
Contributor

Summary

  • Add _normalize_name() for case-insensitive model name matching across all 6 submodel categories
  • Expand deficit models: Niayifar2016, Zong2020, Carbajofuertes2018, TurboNOJ, GCL, SuperGaussian2023 with model-specific kwargs routing
  • Expand deflection (GCLHill), turbulence (GCL, IEC-TI-2019), superposition (Max, Weighted, Cumulative), rotor averaging (EqGrid, GQGrid, PolarGrid, CGI), and blockage models (SelfSimilarityDeficit, RankineHalfBody, Rathmann, VortexCylinder, VortexDipole, HybridInduction)
  • Fix get_with_default() to preserve extra user keys with recursive merge
  • Guard None names in deflection/turbulence to prevent AttributeError
  • Warn when scalar k is provided for a=[k_a, k_b] models
  • Replace debug print() calls with warnings.warn()
  • Simplify config functions with dict-based lookups, remove dead code and unused imports

Closes #52

Test plan

  • 130 parametrized unit tests in test_pywake_submodels.py covering all model mappings, case-insensitive matching, parameter passthrough, model instantiation, and error cases
  • 10 existing integration tests in test_pywake.py pass with no regressions
  • All 140 tests pass

🤖 Generated with Claude Code

@bjarketol bjarketol force-pushed the expand-pywake-submodel-support branch from a1be602 to 32e7a1c Compare March 2, 2026 20:34
@bjarketol bjarketol marked this pull request as draft March 2, 2026 20:45
@bjarketol bjarketol force-pushed the expand-pywake-submodel-support branch 3 times, most recently from e27dd02 to d2f074c Compare March 13, 2026 11:36
@bjarketol bjarketol force-pushed the expand-pywake-submodel-support branch from ae243ea to 1457d07 Compare March 27, 2026 08:27
@bjarketol bjarketol force-pushed the expand-pywake-submodel-support branch from 530e6b3 to 1c4b2c7 Compare June 4, 2026 11:10
@bjarketol bjarketol marked this pull request as ready for review June 8, 2026 10:37
bjarketol added a commit to bjarketol/WIFA that referenced this pull request Jun 8, 2026
Empty commit to re-run PR EUFLOW#53 CI after a transient wayve fetch timeout
on the Python 3.11 job.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bjarketol

Copy link
Copy Markdown
Contributor Author

@kilojoules can you review this?

- Case-insensitive submodel lookup, optional dependencies, and a
  NOJLocalDeficit alias for the Jensen wake model
- Align the pyWake reader with the windIO schema: free_stream_ti flag,
  overlap rotor-averaging models, and validation guards

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bjarketol bjarketol force-pushed the expand-pywake-submodel-support branch from 9e920ef to eefcc8e Compare June 8, 2026 10:46
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.

Expand PyWake submodel support with case-insensitive lookup and tests

1 participant