# 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 stud-less chains. These, the standard acknowledges, are courtesy of Vicinay Cadenas, the world-renowned chain maker from Spain.

Studless chains: Effective elastic modulus, E (MPa)
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 stud-less chain as it falls free from its previous value. It’s good to remember that the R3 has been with us longer than the newer grades, which are essentially out of the demand from larger vessels in harsher environments like the FLNG. Seriously, what just happened there?

Code: ea.py for plotting chain diameter v. axial stiffness:

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

# ea.py -- 2018 ckunte

import numpy as np
import matplotlib.pyplot as plt

def main():
d = np.linspace(60, 200) # Chain diameter (mm)
E = [
(5.6 - 0.0 * d) * 1E10, # R3/R4/R5 Gr stud (2018)
(5.4 - 0.004 * d) * 1E10, # R3 Gr. studless (2018)
(5.45 - 0.0025 * d) * 1E10, # R4 Gr. studless (2018)
(6.0 - 0.0033 * d) * 1E10 # R5 Gr. studless (2018)
] # Elasticities for studless chains
lbl = [
'Stud chain R3/R4/R5 (2018)',
'Studless chain R3 (2018)',
'Studless chain R4 (2018)',
'Studless chain R5 (2018)'
] # labels
for i, j in zip(E, lbl):
# plot: E vs. chain dia.
ax1 = plt.subplot(211)
plt.plot(d, i, label=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=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)')
ax1.grid(True)
ax2.grid(True)
plt.show()
pass

if __name__ == '__main__':
main()