Skip to content

Batch passive-yaw frequency interpolation with SciPy - #668

Merged
cmccomb merged 1 commit into
masterfrom
codex/passive-yaw-batched-631
Oct 24, 2026
Merged

cmccomb merged 1 commit into
masterfrom
codex/passive-yaw-batched-631

Conversation

@cmccomb

@cmccomb cmccomb commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Replace the per-DOF and per-heading linear-frequency interpolation loops with batched SciPy degree-one interpolation of the real and imaginary coefficient tensors.
  • Preserve the in-range frequency check, (6, headings) output, rho * g scaling, cubic-spline path, and periodic heading interpolation.

Verification

  • Compared the previous and new implementations on the pinned OSWEC HDF5 (500 frequencies, 36 headings) at both endpoints and five interior frequencies. Maximum absolute differences were 2.33e-10 for real coefficients and 4.66e-10 for imaginary coefficients and evaluated forces; shapes matched. Out-of-range frequencies still reject.
  • python -m pytest -q tests/test_oswec_passive_yaw_portable.py tests/test_oswec_passive_yaw_parity.py tests/test_oswec_regular_yaw_portable.py tests/test_variable_yaw_heading_bank.py tests/test_passive_yaw_configuration.py: 15 passed, 11 skipped locally (live MATLAB output variables unavailable). The portable tests use checked MATLAB fixtures.
  • Targeted live MATLAB OSWEC passive-yaw pairing on this commit: both paired cases passed against freshly generated pinned-source output.
  • git diff --check passed.

Closes #631

@cmccomb
cmccomb merged commit df22a06 into master Oct 24, 2026
10 checks passed
@cmccomb
cmccomb deleted the codex/passive-yaw-batched-631 branch October 24, 2026 23:50
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.

Use batched SciPy interpolation for passive-yaw frequency coefficients

1 participant