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.
|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 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?
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()