WISDEM / RAFT

A frequency-domain dynamics model for floating wind turbines
https://openraft.readthedocs.io
Apache License 2.0
43 stars 24 forks source link

Extending RAFT to multiple bodies #63

Open rebeccamccabe opened 1 month ago

rebeccamccabe commented 1 month ago

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.

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 commented 1 month ago

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 lucas.carmo@nrel.gov

rebeccamccabe commented 1 month ago

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 commented 1 month ago

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.