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

Extending RAFT to multiple bodies #63

Open
rebeccamccabe opened this issue Sep 12, 2024 · 3 comments
Open

Extending RAFT to multiple bodies #63

rebeccamccabe opened this issue Sep 12, 2024 · 3 comments

Comments

@rebeccamccabe
Copy link

Description of feature

I am wondering if there are any plans to extend RAFT to multiple hydrodynamic bodies, and if not how easy it would be for me to do this myself? This would be useful for simulating wave energy converters. I would want to do this in RAFT instead of some other code like WEC-Sim or WecOptTool because the frequency domain with the drag linearization is faster than the time/pseudospectral domains and I'm doing optimization.

Potential solution

I see that there is an ndof property set to 6* number of turbines, but I assume that simulating a 2-body system would be more complicated than just setting ndof=12. Here are my initial thoughts on what would need to be done, please let me know what I am missing because I haven't read through the RAFT source in detail yet.

  • adjust calcBEM to run multiple bodies and get/save interaction coefficients (although for my specific usecase I plan to override HAMS and use hydro coeffs that I calculate with a different package that is faster - matched eigenfunction expansion method)
  • find places in the code that 6 dofs are implicitly assumed, ie in RAO plots, and modify accordingly
  • account for constrained motion in the dynamics (ie after constraints the two-body RM3 WEC has 7 DOF because the float can only translate wrt the spar, but the hydro coefficients are computed for the 12 DOF system). This seems like the hard part. The DTOcean+ project has code for multibody hydrodynamics in the frequency domain, which I would try to replicate. I think I would prefer to start with RAFT and add multibody than to start with DTOcean+ and add drag iteration and open MDAO integration, because RAFT seems better maintained and has a more permissive license.

Open to any additional thoughts you have. I'm a PhD student and able to develop this if it makes sense within the time constraints of my project. Thanks.

@lucas-carmo
Copy link
Contributor

lucas-carmo commented Sep 17, 2024

Hi Rebecca,

Sorry for taking so long to answer your question! We do have plans for multiple body dynamics, besides the already available capability of considering arrays of rigid bodies connected by mooring lines, and those plans could possibly include hydrodynamic interactions between bodies.

I haven't thought much about the hydrodynamic part of things yet. But if you only needed the hydrodynamic interactions to solve your problem—i.e., if you didn't need to model hinges or other connections that we still don't have in RAFT—the first step you listed seems enough to me. As you said, you would need the full 12x12 added mass and radiation damping matrices and the 12-element wave excitation vector. I don't think HAMS can do that, but if you have a different approach that does it then it should be good enough! RAFT can read precomputed hydrodynamic coefficients using WAMIT format, but it would need some modification to read the full matrix instead of treating the bodies separately.

And indeed, I would say that the hardest part would be to account for the connections between the different bodies. You probably wouldn't need to change plotting functions or other similar things because RAFT can model systems composed of multiple rigid bodies as long as they are independent or connected by mooring lines (to model arrays of floating wind turbines). But we have plans to include other kinds of connections in the near future, and the idea of using DTOcean+ seems promising, thanks for sharing that!

If you want, we would be glad to schedule a call to talk about this further 😀 My email is [email protected]

@rebeccamccabe
Copy link
Author

Thanks for meeting with us! Also wanted to mention that I just found this other open source multibody code, also copyleft but it seems more general than the one in DTOcean. link

@rebeccamccabe
Copy link
Author

Also HydroChrono (project Chrono has a more permissive license). This and the link above (MBDyn) are both time domain solvers but maybe their multibody representations could be reused for the freq domain.

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

No branches or pull requests

2 participants