Fluid Structure Interaction: mooring lines


The video of a wave-energy converter in the Gallery page suggests that GPUSPH has the capability of modelling mooring lines for floating objects. The guides are somewhat short on modelling FSI, as far as I could see.
Is this feature generally available with the current distribution of GPUSPH? Is this planned for a specific future release?
Thanks for dealing with this



currently the integration of GPUSPH with Chrono is limited to rigid bodies, and does not support more sophisticated forms of fluid/structure interaction (in particular, no deformations).

To model the mooring lines, the Gallery example (that was designed for an even older GPUSPH version that still used ODE instead of Chrono) actually computed the mooring forces semi-analytically (from the tension derived from the position of the frame attachment point).

I’ll contact the author and see if they allow the inclusion of the Problem (or a simplified version of it) among the examples, since it does illustrate some of the more advanced features of GPUSPH.

The mooring lines in the Gallery example were modelled using a semi-analytical mooring tension computation.


Can this mooring feature be used for solving towing problems as well?


@giuseppe.bilotta Thanks for the reply. I then understand that the mooring lines are modelled as point forces applied to the floating bodies in response to their displacements. This can still be pretty useful.

If this understanding is correct, are there any handles in the source code (empty variables, data structures, etc) in order to customize such mooring forces at the user’s own discretion? Or did the adaptations for the wave-converter simulation remained an isolated edit and not make it to the subsequent releases?



@sph_tudelft_nl yes, the mooring lines were modelled as point forces applied to the floating body. To achieve this, you can override bodies_forces_callback, a Problem method that allows you to modify the forces and torques applied to moving bodies before they are used for integration. With the current API, the hardest part in this is that you have to track the position in global space of the anchor point on the body yourself, using the moving body kinematic data (rotation and displacement). If there’s a growing interest for this kind of applications, we may also consider improving the API to make this information more accessible.

@James I’m guessing the same approach could be used for towing as well, by moving the “ground” anchor point during the simulation. The involved callback has all information about the current time and integration step, so I see no apparent issue.


Thanks for this addition. At this stage I am not in the condition to provide anything like a business case to motivate the tracking of a body’s (generalized) coordinates and velocities. However, this is certainly useful for a variety of applications involving floating objects; these relate to harbour and ocean engineering. Think of vessels, reservoirs and platforms subject to wave motion captured by SPH simulations.