ckunte.net

Chain stiffness

Position Mooring (DnV-OS-E301), DnV’s Offshore Standard, has undergone three revisions in six years — a sign of how busy things are w.r.t. mooring systems, and the urgent need for updates as the industry rapidly learns from experience and innovates on demand. The one of interest to me is the recipe it offers to calculate elasticity for studless chains. These, the standard acknowledges, are courtesy of Vicinay Cadenas, the world-renowned chain maker from Spain.

Studless chains: Effective elastic modulus, E ($N/m^2$)
2000–8 2010–15
R3 (8.37 - 0.0305⋅d)⋅1010 (5.40 - 0.0040⋅d)⋅1010
R4 (7.776 - 0.01549⋅d)⋅1010 (5.45 - 0.0025⋅d)⋅1010
R5 – do – (6.00 - 0.0033⋅d)⋅1010

where, chain link diameter, d, is in mm, and A would be the combined cross sectional area of two legs of a (common) chain link. So, here’s the story of change in one graph that you do not get to see in standards or when comparing between revisions.

A graph of chain diameter plotted against its corresponding axial stiffness is always handy for a mooring engineer, because anyone with an elementary understanding of structural mechanics would know that stiffness is essential in controlling displacements (vessel excursions or offsets).

The one that jumps right out is, of course, the R3 grade studless chain as it falls free from its previous value. It’s good remember that the R3 has been with us longer than the newer grades, which are essentially out of the demand from vessels like the FLNG. Seriously, what just happened there?

Plot code is as follows:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# ea.py -- 2015 ckunte

import numpy as np
import matplotlib.pyplot as plt

def main():
d = np.linspace(60, 200) # Chain diameter (mm)
E = [
(5.4 - 0.004 * d) * 1E10, # R3 Gr. (2010)
(8.37 - 0.00305 * d) * 1E10, # R3 Gr. (2000-8)
(5.45 - 0.0025 * d) * 1E10, # R4 Gr. (2010)
(7.776 - 0.01549 * d) * 1E10, # R4 Gr. (2000-8)
(6.0 - 0.0033 * d) * 1E10 # R5 Gr. (2010)
] # Elasticities for studless chains
lbl = [
'R3 (2010)', 'R3 (2000-8)',
'R4 (2010)', 'R4 (2000-8)',
'R5 (2010)'
] # labels
for i, j in zip(E, lbl):
# plot: E vs. chain dia.
ax1 = plt.subplot(211)
plt.plot(d, i, label='Studless ' + j, linewidth=2)
plt.setp(ax1.get_xticklabels(), visible=False)
# plot: EA vs. chain dia.
EA = i * 2 * np.pi * (d / 1E3)**2 / (4 * 1E6) # (MN)
ax2 = plt.subplot(212)
plt.plot(d, EA, label='Studless ' + j, linewidth=2)
plt.setp(ax2.get_xticklabels(), fontsize=12)
ax1.legend(loc=0)
ax2.legend(loc=0)
ax1.set_ylabel('Effective elastic modulus, E (N/m$^2$)')
plt.ylabel('Axial stiffness, EA (MN)')
plt.xlabel('Chain diameter, d (mm)')
plt.show()
pass

if __name__ == '__main__':
main()