openfast icon indicating copy to clipboard operation
openfast copied to clipboard

SubDyn vs MoorPy: Differences in the linearized stiffness matrix for horizontal pretensioned lines

Open RBergua opened this issue 11 months ago • 2 comments

As part of the OC7 Phase II project, we are modeling a system with three -nearly horizontal- mooring lines. See below for reference: Image

The properties of these mooring lines are as follows: Image

Image

The lines are quite straight-forward to model since they are fishing lines that can be modeled as linear springs with a pretension.

One model was built up in MoorPy (quasi-static approach equivalent to MAP++). The latest MoorPy release (v1.1.0) has been used for this. The input file used is attached here: MoorPy_OC7_PhaseII.txt

By linearizing the system around the (0,0,0) location (KsystemA = ms.getCoupledStiffness()), the stiffness matrix obtained is: Image

As it can be observed, the stiffness matrix obtained is not symmetric in some locations (e.g., K45 != K54).

For verification purposes, another model has been built in SubDyn by means of rigid links and pretensioned cables. The SubDyn version used corresponds to the latest OpenFAST v 4.0.0 and the input file is as follows: SubDyn_OC7_PhaseII.txt

The graphical representation of the SubDyn model is also attached below for completeness: Image

The equivalent stiffness matrix at the interface point (located at the origin), can be checked from the summary file: Image

As it can be observed, this matrix is symmetric.

When comparing the stiffness matrices from MoorPy and SubDyn, significant differences can be observed. For reference, there is perfect agreement in the diagonal and off-diagonal coefficients when comparing the SubDyn outputs against an in-house finite element model that uses ground springs (without pretension) at the fairlead locations instead of cable elements.

It is known that SubDyn does not account for the geometric stiffness coming from the cable pretension due to issues with the Guyan reduction. This is documented here: https://github.com/OpenFAST/openfast/pull/2363 This explains why SubDyn and the in-house finite element model (both without initial pretension in the cables) show perfect agreement between them.

I have modified the SubDyn source code (FEM.f90) to account for the influence of the geometric stiffness due to the cable pretension. The new results are as follows: Image

This stiffness matrix, accounting for geometric stiffness in SubDyn, is still symmetric and shows better agreement against the output from MoorPy in surge (K11), sway (K22) and heave (K33). However, there are still significant differences in roll (K44), pitch (K55) and yaw (K66).

RBergua avatar Feb 14 '25 21:02 RBergua

For reference, the results from pyMAP (MAP++ in Python) are: Image

These results are quite aligned with the ones from MoorPy. But some significant differences can also be observed in heave (one order of magnitude difference) and roll (pyMAP: 2.78E8 Nm/rad vs MoorPy: 3.99E8 Nm/rad).

In addition, the visualization from pyMAP doesn't seem to be consistent. pyMAP shows the fairlead locations above the anchor locations for the three lines. However, this shouldn't be the case for the lines 1 and 2. Image

Proper visualization from MoorPy: Image

RBergua avatar Feb 15 '25 03:02 RBergua

After having a very interesting and useful conversation with @luwang00 about the analytical derivation of the cable elements considering geometrical stiffness, we can confirm that the stiffness matrix from MoorPy seems to be right. The stiffness matrix derived analytically is: Image The exact same stiffness matrix is obtained in MoorPy by using: KsystemA = ms.getSystemStiffnessA(DOFtype='coupled')

One interesting key finding based on the analytical derivation and some tests performed with a 3rd code: the stiffness matrix becomes non-symmetric when there is an initial cable pretension and also an asymmetry in the mooring lines (both conditions must be true).

This means that the geometric stiffness for the cable elements with initial pretension in SubDyn (currently disabled in OpenFAST v 4.0.2) is not properly accounted for.

RBergua avatar Feb 17 '25 18:02 RBergua