Last updated on Jul 14, 2026.

netsse.model.ship#

Hydrodynamic models for the linear wave-to-motion transfer functions of ship responses.

Copyright (C) 2023-2026 Technical University of Denmark, R.E.G. Mounet

This code is part of the NetSSE software.

NetSSE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

NetSSE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

To credit the author, users are encouraged to use below reference:

Mounet, R. E. G., & Nielsen, U. D. NetSSE: An open-source Python package
for network-based sea state estimation from ships, buoys, and other
observation platforms (version 2.3). Technical University of Denmark,
GitLab. July 2026. https://doi.org/10.11583/DTU.26379811.

Last updated on 05-06-2026 by R.E.G. Mounet

Functions#

Lewis_param(C_B)

Computes the Lewis form parameter for a ship, based on its block coefficient.

format_ANN_input_data(om0, beta_deg, U, L, B0, T, C_B)

Prepares the input data for the ANN models based on the ship parameters and wave conditions.

heaveCF(om0, beta_deg, U, L, B0, T[, C_B, gravity])

Computes the heave transfer function amplitude, using the closed-form

heaveST(om0, beta_deg, U, L, B0, T, C_B)

Computes the heave transfer function amplitude and phase, using an ANN-based surrogate model of a strip theory code.

pitchCF(om0, beta_deg, U, L, B0, T[, C_B, gravity])

Computes the pitch transfer function amplitude, using the closed-form

pitchST(om0, beta_deg, U, L, B0, T, C_B)

Computes the pitch transfer function amplitude and phase, using an ANN-based surrogate model of a strip theory code.

rollCF(om0, beta_deg, U, L, B0, T, C_B, C_WP, GM_T, ...)

Computes the roll transfer function amplitude, using the closed-form

vbmST(om0, beta_deg, U, L, B0, T, C_B[, gravity])

Computes the Vertical Bending Moment (VBM) transfer function amplitude and phase, using an ANN-based surrogate model of a strip theory code.

Module Contents#

netsse.model.ship.Lewis_param(C_B)[source]#

Computes the Lewis form parameter for a ship, based on its block coefficient.

Parameters:

C_B (float) – Block coefficient of the ship [-].

Returns:

gamma – Lewis form parameter for the ship [-].

Return type:

float

See also

format_ANN_input_data

Prepares the input data for the ANN models based on the ship parameters and wave conditions.

References

Takami, T., Nielsen, U. D., Mounet, R. E. G., Jensen, J. J., Mori, R., Komoriyama, Y. (2026). Blind identification of incident waves and response transfer functions of a marine vessel based on measured responses. Expert Systems With Applications, 296, 129236. https://doi.org/10.1016/j.eswa.2025.129236.

Example

>>> gamma = Lewis_param(C_B)
netsse.model.ship.format_ANN_input_data(om0, beta_deg, U, L, B0, T, C_B)[source]#

Prepares the input data for the ANN models based on the ship parameters and wave conditions.

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequencies [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of relative wave heading angles [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float) – Block coefficient of the ship [-].

Returns:

ANN_input_data – Normalized input data for the ANN models, including ship parameters and wave conditions.

Return type:

numpy.ndarray of shape (Nom0*Nbeta*Nkappas, 7)

Raises:

warnings.warn – If any of the input parameters are outside the valid ranges for the ANN model.

See also

Lewis_param

Computes the Lewis form parameter for a ship, based on its block coefficient.

References

Takami, T., Nielsen, U. D., Mounet, R. E. G., Jensen, J. J., Mori, R., Komoriyama, Y. (2026). Blind identification of incident waves and response transfer functions of a marine vessel based on measured responses. Expert Systems With Applications, 296, 129236. https://doi.org/10.1016/j.eswa.2025.129236.

Example

>>> ANN_input_data = format_ANN_input_data(om0, beta_deg, U, L, B0, T, C_B)
netsse.model.ship.heaveCF(om0, beta_deg, U, L, B0, T, C_B=1, gravity=None)[source]#

Computes the heave transfer function amplitude, using the closed-form expressions proposed by Jensen et al. (2004), for a box-shaped uniformly-loaded monohull ship.

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequencies [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of heading angles [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float, default 1) – Block coefficient of the ship [-].

  • gravity (float, optional) – Gravitational acceleration [m/s^2]. If None, the default value from the NetSSE configuration is used.

Returns:

heave – Coefficients of the heave transfer function amplitude [m/m].

Return type:

numpy.ndarray of shape (Nom0,Nbeta)

See also

pitchCF, rollCF

References

Jensen, J. J., Mansour, A. E., & Olsen, A. S. (2004). Estimation of ship motions using closed-form expressions. Ocean Engineering, 31(1), 61–85. https://doi.org/10.1016/S0029-8018(03)00108-2

Example

>>> heave = heaveCF(om0,beta_deg,U,L,B0,T,C_B=1)
netsse.model.ship.heaveST(om0, beta_deg, U, L, B0, T, C_B)[source]#

Computes the heave transfer function amplitude and phase, using an ANN-based surrogate model of a strip theory code.

The ANN was trained on data from a linear strip theory solver, the so-called New Strip Method (Takagi and Ganno, 1967), in which the Lewis form approximation of ship cross-sections is adopted. Further details of the implementation can be found in Takami et al. (2026).

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequencies [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of relative wave heading angles [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float, default 1) – Block coefficient of the ship [-].

Returns:

  • heave_amp (numpy.ndarray of shape (Nom0,Nbeta)) – Coefficients of the heave transfer function amplitude [m/m].

  • heave_phase (numpy.ndarray of shape (Nom0,Nbeta)) – Coefficients of the heave transfer function phase [rad].

Raises:

warnings.warn – If any of the input parameters are outside the valid ranges for the ANN model.

See also

pitchST, vbmST

format_ANN_input_data

Prepares the input data for the ANN models based on the ship parameters and wave conditions.

References

Takagi, M. & Ganno, M. (1967). On the Accuracy of the Strip Theory, Used for a Calculation of Ship Motions in Waves. Journal of Zosen Kiokai, 121, pp. 48–61. https://doi.org/10.2534/jjasnaoe1952.1967.48.

Takami, T., Nielsen, U. D., Mounet, R. E. G., Jensen, J. J., Mori, R., & Komoriyama, Y. (2026). Blind identification of incident waves and response transfer functions of a marine vessel based on measured responses. Expert Systems With Applications, 296, 129236. https://doi.org/10.1016/j.eswa.2025.129236.

Example

>>> heave_amp, heave_phase = heaveST(om0, beta_deg, U, L, B0, T, C_B)
netsse.model.ship.pitchCF(om0, beta_deg, U, L, B0, T, C_B=1, gravity=None)[source]#

Computes the pitch transfer function amplitude, using the closed-form expressions proposed by Jensen et al. (2004), for a box-shaped uniformly-loaded monohull ship.

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequency [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of heading angle [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float, default 1) – Block coefficient of the ship [-].

  • gravity (float, optional) – Gravitational acceleration [m/s^2]. If None, the default value from the NetSSE configuration is used.

Returns:

pitch – Coefficients of the pitch transfer function amplitude [rad/m].

Return type:

numpy.ndarray of shape (Nom0,Nbeta)

See also

heaveCF, rollCF

References

Jensen, J. J., Mansour, A. E., & Olsen, A. S. (2004). Estimation of ship motions using closed-form expressions. Ocean Engineering, 31(1), 61–85. https://doi.org/10.1016/S0029-8018(03)00108-2

Example

>>> pitch = pitchCF(om0,beta_deg,U,L,B0,T,C_B=1)
netsse.model.ship.pitchST(om0, beta_deg, U, L, B0, T, C_B)[source]#

Computes the pitch transfer function amplitude and phase, using an ANN-based surrogate model of a strip theory code.

The ANN was trained on data from a linear strip theory solver, the so-called New Strip Method (Takagi and Ganno, 1967), in which the Lewis form approximation of ship cross-sections is adopted. Further details of the implementation can be found in Takami et al. (2026).

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequencies [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of relative wave heading angles [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float, default 1) – Block coefficient of the ship [-].

Returns:

  • pitch_amp (numpy.ndarray of shape (Nom0,Nbeta)) – Coefficients of the pitch transfer function amplitude [deg/m].

  • pitch_phase (numpy.ndarray of shape (Nom0,Nbeta)) – Coefficients of the pitch transfer function phase [rad].

Raises:

warnings.warn – If any of the input parameters are outside the valid ranges for the ANN model.

See also

heaveST, vbmST

format_ANN_input_data

Prepares the input data for the ANN models based on the ship parameters and wave conditions.

References

Takagi, M. & Ganno, M. (1967). On the Accuracy of the Strip Theory, Used for a Calculation of Ship Motions in Waves. Journal of Zosen Kiokai, 121, pp. 48–61. https://doi.org/10.2534/jjasnaoe1952.1967.48.

Takami, T., Nielsen, U. D., Mounet, R. E. G., Jensen, J. J., Mori, R., & Komoriyama, Y. (2026). Blind identification of incident waves and response transfer functions of a marine vessel based on measured responses. Expert Systems With Applications, 296, 129236. https://doi.org/10.1016/j.eswa.2025.129236.

Example

>>> pitch_amp, pitch_phase = pitchST(om0, beta_deg, U, L, B0, T, C_B)
netsse.model.ship.rollCF(om0, beta_deg, U, L, B0, T, C_B, C_WP, GM_T, kappa, mu, T_N=0, gravity=None, rho=None)[source]#

Computes the roll transfer function amplitude, using the closed-form expressions proposed by Jensen et al. (2004), for a monohull ship.

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequencies [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of heading angles [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float) – Block coefficient of the ship [-].

  • C_WP (float) – Waterplane area coefficient of the ship [-].

  • GM_T (float) – Transverse metacentric height [m].

  • kappa (float) – Custom parameter (chosen between 0 and C_WP) representing the ratio between the length of the aft beam and the whole ship length in the simplified ship model for roll.

  • mu (float, default 0) – Ratio between added viscous damping and critical damping.

  • T_N (float, optional) –

    Roll natural period [s].

    Note

    If not specified as input, T_N is calculated using empirical formulas from ADA147598.

  • gravity (float, optional) – Gravitational acceleration [m/s^2]. If None, the default value from the NetSSE configuration is used.

  • rho (float, optional) – Density of seawater [kg/m^3]. If None, the default value from the NetSSE configuration is used.

Returns:

roll – Coefficients of the roll transfer function amplitude [rad/m].

Return type:

numpy.ndarray of shape (Nom0,Nbeta)

See also

heaveCF, pitchCF

References

  1. Jensen, J. J., Mansour, A. E., & Olsen, A. S. (2004). Estimation of ship motions using closed-form expressions. Ocean Engineering, 31(1), 61–85. https://doi.org/10.1016/S0029-8018(03)00108-2

  2. ADA147598, 1973. Code of Safety for Fishermen and Fishing Vessels. Part B. Safety and Health Requirements for the Construction and Equipment of Fishing Vessels. Inter-Governmental Maritime Consultative Organization, London, England.

Example

>>> roll = rollCF(om0,beta_deg,U,L,B0,T,C_B,C_WP,GM_T,kappa,mu,T_N=0)
netsse.model.ship.vbmST(om0, beta_deg, U, L, B0, T, C_B, gravity=None)[source]#

Computes the Vertical Bending Moment (VBM) transfer function amplitude and phase, using an ANN-based surrogate model of a strip theory code.

The ANN was trained on data from a linear strip theory solver, the so-called New Strip Method (Takagi and Ganno, 1967), in which the Lewis form approximation of ship cross-sections is adopted. Further details of the implementation can be found in Takami et al. (2026).

Parameters:
  • om0 (array_like of shape (Nom0,)) – Vector of absolute wave frequencies [rad/s].

  • beta_deg (array_like of shape (Nbeta,)) – Vector of relative wave heading angles [deg].

  • U (float) – Vessel forward speed [m/s].

  • L (float) – Length of the ship [m].

  • B0 (float) – Breadth of the ship [m].

  • T (float) – Draft of the ship [m].

  • C_B (float, default 1) – Block coefficient of the ship [-].

  • gravity (float, optional) – Gravitational acceleration [m/s^2]. If None, the default value from the NetSSE configuration is used.

Returns:

  • vbm_amp (numpy.ndarray of shape (Nom0,Nbeta)) – Coefficients of the VBM transfer function amplitude [kNm/m].

  • vbm_phase (numpy.ndarray of shape (Nom0,Nbeta)) – Coefficients of the VBM transfer function phase [rad].

Raises:

warnings.warn – If any of the input parameters are outside the valid ranges for the ANN model.

See also

heaveST, pitchST

format_ANN_input_data

Prepares the input data for the ANN models based on the ship parameters and wave conditions.

References

Takagi, M. & Ganno, M. (1967). On the Accuracy of the Strip Theory, Used for a Calculation of Ship Motions in Waves. Journal of Zosen Kiokai, 121, pp. 48–61. https://doi.org/10.2534/jjasnaoe1952.1967.48.

Takami, T., Nielsen, U. D., Mounet, R. E. G., Jensen, J. J., Mori, R., & Komoriyama, Y. (2026). Blind identification of incident waves and response transfer functions of a marine vessel based on measured responses. Expert Systems With Applications, 296, 129236. https://doi.org/10.1016/j.eswa.2025.129236.

Example

>>> vbm_amp, vbm_phase = vbmST(om0, beta_deg, U, L, B0, T, C_B)