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

RAFT v1.3.2 #68

Merged
merged 14 commits into from
Jan 10, 2025
Merged

RAFT v1.3.2 #68

merged 14 commits into from
Jan 10, 2025

Conversation

lucas-carmo
Copy link
Contributor

@lucas-carmo lucas-carmo commented Jan 10, 2025

Purpose

This PR includes bug fixes only:

  • Bug fixes in member.getInertia() and cap info for rectangular members (097c264). In particular, fixed a bug when reading cap_d_in from the yaml file for rectangular elements (previous code to read cap_d_in worked for circular cylinders only).
  • Bug fix of the rotor moments from CCBlade. 'Q' output from CCBlade was in the 'pitch' spot and 'My' output from CCBlade was in the 'roll' spot - they were flipped and now things are correct. Also updated the default vapor pressure when calculating cavitation (cf839a8)
  • Bug fix to account for rotor orientation in model.solveStatis(). The rotor orientation is set internally depending on yaw_mode, but this was done only after computing the inertial properties of the system in solveStatics(). Consequently, the weight of the RNA was acting as if the turbine was at its initial position regardless of yaw_mode. Now, rotor orientation is updated before computing the inertial properties of the system. (b5d2591 and 69b8695)
  • Included tests for QTFs computed with RAFT and for the MacCamy-Fuchs correction (173c8be)
  • We were missing a term from Rainey's formulation in the computation of RAFT QTFs (7835e39)
  • The total mass and the x coordinate of the center of gravity of the RNA of the IEA15 MW turbine were wrong in examples/VolturnUS-S_example.yaml, tests/test_data/IEA15MW.yaml, tests/test_data/VolturnUS-S.yaml and tests/test_data/VolturnUS-S_farm.yaml (cb14509)
  • Flag aeroServoMod was misspelled in some input files (f69e88b)

Changes that do not affect users or previous results:

Type of change

What types of change is it?

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (non-backwards-compatible fix or feature)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no API changes)
  • Documentation update
  • Maintenance update
  • Other (please describe)

Testing

All affected tests were updated

Checklist

  • I have run existing tests which pass locally with my changes
  • I have added new tests or examples that prove my fix is effective or that my feature works
  • I have added necessary documentation

lucas-carmo and others added 14 commits November 8, 2024 11:42
Due to AttributeError: `np.complex_` was removed in the NumPy 2.0 release. Use `np.complex128` instead.
Maybe there's a better option? RegularGridInterpolator is more convoluted than Interp2d
- Reading of cap_d_in from the yaml file was wrong for rectangular elements. Previous code worked for cap_d_in of circular cylinders only.
- Fixed interpolation of section properties for rectangular elements
- Fixed call to RectangularFrustumMOI() which was with the wrong inputs.
- added some checks to avoid division by zero when computing the center of mass of member parts, as some parts can have zero mass depending on modeling choices
- Added attributes mshell and mfill to the member class
- 'Q' output from CCBlade was in the 'pitch' spot and 'My' output from CCBlade was in the 'roll' spot - these should be flipped

- Also updating the default vapor pressure when calculating cavitation
Updated the true values for test cases that include aerodynamic loads to the bug fix from commit cf839a8

Affected tests:

- test_rotor.py:
---- test_calcAero

- test_model.py:
---- test_solveStatics_Wind
---- test_solveStatics_Wind_Wave_Current
---- test_solveEigen_loaded
---- test_analyzeCases
Numpy doesn't like `if s_ring:` anymore. Replaced by `if np.any(s_ring)`
The rotor orientation is set internally depending on yaw_mode, but this was done only after computing the inertial properties of the system in solveStatics(). Consequently, the weight of the RNA was acting as if the turbine was at its initial position regardless of yaw_mode.
This commit fixes that, and now rotor orientation is updated before computing the inertial properties of the system. I'm still not sure if this fix is 100% correct, so this modification needs to be revised before merging rc1.3.2 into main.

The affected tests are the ones with wind in test_model.py. The corresponding true values were updated.
Cannot call fowt.calcTurbineConstants() if not analyzing a `case`, which happens when we call model.analyzeUnloaded()
The total mass and the x coordinate of the center of gravity of the RNA were wrong in `examples/VolturnUS-S_example.yaml`, `tests/test_data/IEA15MW.yaml`, `tests/test_data/VolturnUS-S.yaml` and `tests/test_data/VolturnUS-S_farm.yaml`.

Updated the true values of the corresponding tests.
Those tests were in the dev branch (commit 872ab5d) but should be included in release 1.3.2 because concern functionality that is already in the main branch
We were missing the transverse force at the ends of the cylinder from Rainey's formulation
Some input yaml files were using a flag aeroMod instead of aeroServoMod. This does not impact the results because the specified values were the default value (which were used because the correct flag was missing from the yaml files). But hat incorrect flag could mislead users.
@lucas-carmo lucas-carmo merged commit 0bcc3ae into master Jan 10, 2025
14 checks passed
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