-
Notifications
You must be signed in to change notification settings - Fork 21
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
Second-order wave loads in RAFT #37
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Included mean drift. Current implementation is not rigorously correct when more than one wave direction are acting at the same time, but should be good enough for now. - The QTF files pre-computed with a BEM code are in a different resolution then the incoming waves in RAFT. To solve that, we were computing the second-order force spectrum considering the QTF resolution and then interpolating the result. Turns out that we obtain different results if we interpolate the QTF first. Left both implementations in the code, but still thinking whether it is worth adding a flag for that on the input file. - Typo fix
- Added helper functions to compute quantities needed for the slender-body approximation for second-order wave loads - Added the capability of computing QTFs using the slender-body approximation - Included flags in the input file for the second-order loads - Updated solveDynamics for the case where the second-order loads are computed with the slender-body approximation. In that case, we need to first solve for the first-order motions to compute the second-order forces and moments.
- Added force due to the rotation term from slender-body approach - Added force due to body motions inside the wave field - Bug fix: The force component due to the relative wave elevation was being computed for one member only; - Bug fix: There was a cos instead of a sin in the computation of gradient matrix of fluid velocity induced by waves. This influenced the axial-divergence acceleration and the component due to body displacements; - Bug fix: The 2D qtf interpolation in calcHydroForce_2ndOrd was interpolating only the real part of the matrix - Commented a part of raft_member.py that breaks the computation of second-order loads. Still need to figure out why
Also changed test cases for the OC3 Hywind
Made it run for a single turbine case, but need to test it with an array. Besides, had to change some stuff in the code from ctopt and comment other stuff that I don't know how to fix right now.
- Damping levels were heavily underpredicted when motions induced by second-order loads are large. It much improved after including these motions in the drag linearization procedure. - There was a bug in the calculation of the second-order force amplitude from the spectrum, namely a factor of 2 that was outside a sqrt but should be inside it.
This looks awesome, and I think good to merge in. One last little thing: could you confirm that for the preexisting designs/examples, with no 2nd order, results from this branch match those from the dev branch? |
Yes, they do! |
11 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
This PR implements second-order wave loads in RAFT. For now, we only capture the magnitude of these loads, hence without the phases. This should be acceptable for single units but could be problematic for arrays. We plan to address this limitation in the future.
Two approaches are now available:
To use precomputed QTFs, the user needs to provide the following inputs:
To compute the second-order loads internally with the slender-body approach:
Note that
potSecOrder
does not conflict withpotModMaster
. We should be able to use any combination of them. For instance, we can use Morison's equation for the first-order wave loads and QTFs from WAMIT for the second-order wave loads.Type of change
Testing
I included two test cases in the examples folder. They correspond to the OC3-Hywind spar using (i) precomputed QTFs and (ii) the slender-body approximation. I have done some comparisons with OpenFAST simulations, and the results match well within the inherent limitations.
Checklist
This branch did not pass the automated tests, but it seems to be unrelated to this PR.