Conventions

Added mass and damping

Added-mass and damping are 6x6 matrices and are a function of frequency.

  • added mass : mT, mT*m

  • damping: kN/(m/s) or kN*m/(rad/s)

  • frequency : rad/s

The matrices are constructed as follows: M(i,j) is the force or moment that results in dof_i as result of a unit acceleration of dof_j i = influenced dof j = exited dof

Wave-Forces

Wave-Forces are a function of heading, mode and frequency. Wave-forces are stored as amplitude and a phase. The phase is stored as a complex number with unit length “complex_unit”. The reason for this complexity is that is makes it easy to interpolate.

  • wave-direction : degrees going to

  • phase-angles : radians

  • frequency : rad/s

Frequency-Grid

The frequency grid for added-mass, damping and wave-forces may be the same, but this is not enforced.

  • frequency : rad/s

Definitions:

Headings Wave headings are in [degrees] counter-clockwise from positive X-axis; going to. For a ship with stern-to-bow aligned with the x-axis this means:

  • 0 deg = stern waves,

  • 180 deg = bow waves,

  • 90 deg = waves from SB

Phase angles

Phase angles for wave-forces are in [radians] and are Lagging relative to wave crest.

pseudo code:

        A = -(omega ** 2) * M_total  \
                + 1j * omega * B  \
                + K )              # mass, damping, stiffness
        re = np.real(Fwave)
        im = np.imag(Fwave)
        excitation = re - 1j * im

        rao = np.linalg.solve(A, excitation )

        # calculate in time-domain:

        time_phasor = np.exp(1j * t)
        motions = np.outer(time_phasor, rao)
        response = np.real(motions)
        wave_elevation = wave_amplitude * np.real(time_phasor)