A first step in modelling of contact has been added to DAVE and the equilibrium core. As of this moment it is possible to model elastic contact using “Contact-Balls” and “Contact-Meshes”. This makes it possible to model vessel moored to other vessels or a quay side.

A contact-ball is a sphere which is connected to a point. The sphere has a given radius and stiffness.
A contact-mesh a collection of triangular faces. Very similar to visuals and buoyancy-meshes. Meshes can be read from .obj files and can be scaled, rotated and offset as needed.
Contact balls and contact meshes can be attached to any axis, body or the global environment. The contact force is applied equal and opposite on both the ball and the mesh.
Modelling of contact and contact stiffness poses some challenges on how to define the contact stiffness. For a simple ball to flat-plate this is straight forward, but what if the ball contacts two plates at the same time? Do we get two contacts with identical stiffness? Or should the stiffness be shared? And do we want to model contact-stiffness as a surface contact depending on the contact area? Or are we actually modelling the global stiffness of the object behind the surface?
In case of contact-ball to contact-mesh this is solved as follows:
- There can only be contact if the center of the contact-ball is at a position normal to the face. This means the ball will not contact the edges of a face.
- If the center of the contact ball is normal to more than one face, then it will only contact the nearest one.
- The contact-force is normal to the face.
- It needs to be listed explicitly with which meshes each contact-ball can contact.
For modelling of fenders or balls contacting a flat surface this approach works very well.
For modelling of more complex contact it may be required to use more than one contact ball at the same position. For example for a docking-cone one could use one contact-ball for the vertical contact and another one for the horizontal contact.