Skip to content

Commit 92c1ac4

Browse files
v2.7.0
2 parents 405dd8c + f8f208a commit 92c1ac4

44 files changed

Lines changed: 1835 additions & 107 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/matlab.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ jobs:
4242
run: cmake --install ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
4343

4444
- name: Set up MATLAB
45-
uses: matlab-actions/setup-matlab@v2
45+
uses: matlab-actions/setup-matlab@v3
4646

4747
- name: Compile and run
48-
uses: matlab-actions/run-command@v2
48+
uses: matlab-actions/run-command@v3
4949
with:
5050
command: |
5151
mex('-setup', '-v', 'C');

.github/workflows/memcheck.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ jobs:
3636
- name: Test
3737
working-directory: ${{github.workspace}}/build
3838
# We are just testing in Linux
39-
run: ctest -C ${{env.BUILD_TYPE}} -T memcheck --output-on-failure -j ${{env.PROCESSES}} -E "(seafloor|time_schemes|wavekin|wilson|lowe_and_langley_2006)"
39+
run: ctest -C ${{env.BUILD_TYPE}} -T memcheck --output-on-failure -j ${{env.PROCESSES}} -E "(seafloor|time_schemes|wavekin|wilson|lowe_and_langley_2006|syrope)"

.github/workflows/python-wheels-emulated.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,17 @@ jobs:
6969
mkdir -p ${{github.workspace}}/install
7070
7171
- name: Set up QEMU
72-
uses: docker/setup-qemu-action@v3
72+
uses: docker/setup-qemu-action@v4
7373
with:
7474
platforms: all
7575
if: runner.os == 'Linux'
7676

7777
- name: Build wheels
78-
uses: pypa/cibuildwheel@v3.3.1
78+
uses: pypa/cibuildwheel@v3.4.1
7979
with:
8080
output-dir: dist
8181

82-
- uses: actions/upload-artifact@v6
82+
- uses: actions/upload-artifact@v7
8383
id: build_wheels
8484
with:
8585
name: python-wheels-${{runner.os}}_${{inputs.arch}}

.github/workflows/python-wheels-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
python-version: '3.12'
3232

3333
- name: Download the wheels
34-
uses: actions/download-artifact@v7
34+
uses: actions/download-artifact@v8
3535
with:
3636
path: dist/
3737
pattern: python-wheels-${{runner.os}}_${{inputs.arch}}*

.github/workflows/python-wheels.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
python -m pip install -U pip setuptools
3737
python setup.py sdist
3838
39-
- uses: actions/upload-artifact@v6
39+
- uses: actions/upload-artifact@v7
4040
id: build_wheels
4141
with:
4242
name: python-wheels-sdist
@@ -136,7 +136,7 @@ jobs:
136136
- uses: actions/checkout@v6
137137

138138
- name: Download artifacts
139-
uses: actions/download-artifact@v7
139+
uses: actions/download-artifact@v8
140140
with:
141141
path: dist/
142142
pattern: python-wheels-*

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1+
## [2.7.0] - 2026-06-09
2+
3+
### 🚀 Features
4+
5+
- *(core)* Implementation of the Syrope model for polyester ropes
6+
- *(core)* [**breaking**] Line breaking utilities (#379)
7+
8+
### 🐛 Bug Fixes
9+
10+
- *(core)* Memory leak on lean-vtk
11+
- *(core)* Segmentation Fault when trying to print Td output
12+
- *(core)* Return an error code when points below the seabed are detected
13+
- *(core)* Demote points below seabed from error to warning
14+
- *(core)* MATLAB wrappers trying to use the instance as a parameter (fixes #384)
15+
16+
### 💼 Other
17+
18+
- *(deps)* Bump actions/upload-artifact from 6 to 7
19+
- *(deps)* Bump actions/download-artifact from 7 to 8
20+
- *(deps)* Bump docker/setup-qemu-action from 3 to 4
21+
- *(deps)* Bump pypa/cibuildwheel from 3.3.1 to 3.4.0
22+
- *(deps)* Bump pypa/cibuildwheel from 3.4.0 to 3.4.1
23+
- *(deps)* Bump matlab-actions/run-command from 2 to 3
24+
- *(deps)* Bump matlab-actions/setup-matlab from 2 to 3
25+
## [2.6.1] - 2026-02-20
26+
27+
### 🐛 Bug Fixes
28+
29+
- *(core)* Save with VTP extension
30+
- *(core)* Wrong Fortran indexes
31+
32+
### ⚙️ Miscellaneous Tasks
33+
34+
- *(doc)* Moved to git-cliff to produce the CHANGELOG file
135
## [2.6.0] - 2026-02-17
236

337
### 🚀 Features

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.10)
22
set(MOORDYN_MAJOR_VERSION 2)
3-
set(MOORDYN_MINOR_VERSION 6)
4-
set(MOORDYN_PATCH_VERSION 1)
3+
set(MOORDYN_MINOR_VERSION 7)
4+
set(MOORDYN_PATCH_VERSION 0)
55
set(MOORDYN_VERSION ${MOORDYN_MAJOR_VERSION}.${MOORDYN_MINOR_VERSION})
66
project(Moordyn VERSION ${MOORDYN_VERSION})
77

docs/inputs.rst

Lines changed: 82 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ There is not a limit on the number of lines you can write here.
266266
--------------------- MoorDyn Input File ------------------------------------
267267
MoorDyn v2 sample input file
268268
269+
.. _line-types-v2:
269270
Line Types
270271
^^^^^^^^^^
271272

@@ -285,7 +286,7 @@ The columns in order are as follows:
285286
- Diam – the volume-equivalent diameter of the line – the diameter of a cylinder having the same
286287
displacement per unit length (m)
287288
- MassDen – the mass per unit length of the line (kg/m)
288-
- EA – the line stiffness, product of elasticity modulus and cross-sectional area (N)
289+
- EA – the line stiffness, product of elasticity modulus and cross-sectional area (N), or nonlinear parameters (see descriptions below)
289290
- BA/-zeta – the line internal damping (measured in N-s) or, if a negative value is entered, the
290291
desired damping ratio (in fraction of critical) for the line type (and MoorDyn will set the BA
291292
of each line accordingly)
@@ -306,24 +307,13 @@ The columns in order are as follows:
306307
- cF - OPTIONAL - the center of the range of non-dimensional frequencies for the CF VIV synchronization model. If it is not
307308
provided and VIV is enabled (Cl > 0) then it is default to 0.18 to align with the the theory found :ref:`here <version2>`
308309

309-
Note: Non-linear values for the stiffness (EA) are an option in MoorDyn. For this, a file name can be provided instead of a number. This file
310-
must be located in the same folder as the main MoorDyn input file for MoorDyn-C or for MoorDyn-F
311-
in the same folder as the executable calling MoorDyn-F, unless a path is specified. Such file is a
312-
tabulated file with 3 header lines and then a strain column and a tension column separated by a blank space:
313-
314-
.. code-block:: none
315-
316-
----Polyester----
317-
Strain Tension
318-
(-) (N)
319-
0.0 0.0
320-
... ...
321-
322310
Note: MoorDyn has the ability to model the viscoelastic properties of synthetic lines in two ways. The first method, from work linked in the
323311
:ref:`theory section <theory>`, allows a user to specify a bar-separated constant dynamic and static stiffness. The second method allows the user
324312
to provide a constant static stiffness and two terms to determine the dynamic stiffness as a linear function of mean load. The equation is:
325-
`EA_d = EA_Dc + EA_D_Lm * mean_load` where `EA_D_Lm` is the slope of the load-stiffness curve. Both of these methods allow users to provide static
326-
and dynamic damping coefficients as values separated by |. While the static damping can be described as a fraction of critical, the dynamic damping
313+
`EA_d = EA_Dc + EA_D_Lm * mean_load` where `EA_D_Lm` is the slope of the load-stiffness curve. This method can be used standalone,
314+
and is also part of the Syrope model described in :ref:`Syrope Model for Polyester Lines <syrope-model-polyester-lines>`.
315+
Both of these methods allow users to provide static and dynamic damping coefficients as values separated by |.
316+
While the static damping can be described as a fraction of critical, the dynamic damping
327317
needs to be input as a value. Example inputs are below:
328318
329319
.. code-block:: none
@@ -497,9 +487,9 @@ The columns are as follows:
497487
- UnstrLen - the unstretched length of the line
498488
- NumSegs - how many segments the line is discretized into (it will have NumSegs+1 nodes total,
499489
including its two end nodes)
500-
- LineOutputs - any data to be output in a dedicated output file for that line.
490+
- LineOutputs - any data to be output in a dedicated output file for that line.
501491

502-
This last entry expects a string of one or more characters without spaces, each character
492+
This `LineOutputs` entry expects a string of one or more characters without spaces, each character
503493
activating a given output property. A placeholder character such as “-” should be used if no
504494
outputs are wanted. Ten output properties are currently possible:
505495

@@ -1008,6 +998,80 @@ data.
1008998
5000 0.15 0.0
1009999
--------------------- need this line ------------------
10101000
1001+
Nonlinear Stiffness (EA) Inputs
1002+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1003+
Non-linear values for the stiffness (EA) are an option in MoorDyn. For this, a file name can be provided instead of a number. This file
1004+
must be located in the same folder as the main MoorDyn input file for MoorDyn-C or for MoorDyn-F
1005+
in the same folder as the executable calling MoorDyn-F, unless a path is specified. Such file is a
1006+
tabulated file with 3 header lines and then a strain column and a tension column separated by a blank space:
1007+
1008+
.. code-block:: none
1009+
1010+
----Polyester----
1011+
Strain Tension
1012+
(-) (N)
1013+
0.0 0.0
1014+
... ...
1015+
1016+
.. _syrope-model-polyester-lines:
1017+
Syrope Model for Polyester Lines
1018+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1019+
MoorDyn supports the Syrope material model for polyester ropes. In this formulation, the
1020+
tension–strain response is nonlinear and load-path dependent, meaning the unloading and
1021+
reloading curves differ. See additional details in the :ref:`theory section <theory>`
1022+
and the references therein.
1023+
1024+
To enable the Syrope model for a given line type, specify the EA field using three
1025+
bar-separated entries, analogous to the load-dependent dynamic stiffness method described in :ref:`Line Types <line-types-v2>`.
1026+
To indicate Syrope, the first entry must start with ``SYROPE:``, followed by the name (or path)
1027+
of a Syrope config file defining the working curves. The second and third entries are
1028+
``EA_Dc`` and ``EA_D_Lm`` (as in the load-dependent dynamic stiffness method in :ref:`Line Types <line-types-v2>`). Static and dynamic
1029+
damping may be provided in BA as ``BA_s|BA_d`` (same convention as above).
1030+
1031+
Example:
1032+
1033+
.. code-block:: none
1034+
1035+
TypeName Diam Mass/m EA BA
1036+
(name) (m) (kg/m) (N) (N-s)
1037+
poly ... ... SYROPE:syrope.dat|EA_Dc|EA_D_Lm BA_s|BA_d
1038+
1039+
The file ``syrope.dat`` defines
1040+
1041+
- OWC: a tabulated nonlinear original working curve
1042+
- WCType: the working-curve type (options: ``LINEAR``, ``QUADRATIC``, ``EXP``)
1043+
- k1: the first coefficient for the working curve formula (sets the strain offset where mean tension is zero)
1044+
- k2: the second coefficient for the working curve formula (sets the curve shape)
1045+
1046+
One example of such file is shown below.
1047+
1048+
.. code-block:: none
1049+
1050+
../owc.dat OWC Original working curve lookup table path, relative to the MoorDyn input file
1051+
LINEAR WCType Working curve formula: LINEAR, QUADRATIC, or EXP
1052+
0.25 k1 First parameter defining the working curve shape
1053+
1.00 k2 Second parameter defining the working curve shape
1054+
1055+
The ``owc.dat`` file follows the same format as the tabulated non-linear stiffness files described
1056+
above (three header lines, then columns for strain and tension).
1057+
1058+
Initial conditions are specified for the Syrope lines in a separate ``SYROPE IC`` section placed after the ``LINES`` section.
1059+
1060+
- Line(s) - the Syrope line number(s). This may be a single line number or a comma-separated list of line numbers. If non-Syrope lines are included, they are ignored and a warning is raised.
1061+
- Tmax0 – the initial highest mean tension experienced by the line prior to the current time (N)
1062+
- Tmean0 – the initial mean tension (N)
1063+
1064+
One example of the ``SYROPE IC`` section is shown below.
1065+
1066+
.. code-block:: none
1067+
1068+
---------------------- SYROPE IC --------------------------------------
1069+
Line(s) Tmax0 Tmean0
1070+
(-) (N) (N)
1071+
7,8,9 3.53e6 1.18e6
1072+
1073+
In general, ``Tmax0 >= Tmean0``.
1074+
10111075
MoorDyn-F with FAST.Farm - Inputs
10121076
-------------------------------
10131077

docs/references.rst

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,16 @@ Overview of MoorDyn v2 (bodies, rods, and line failures):
8282
`Hall, Matthew, “MoorDyn V2: New Capabilities in Mooring System Components and Load Cases.” In Proceedings of the ASME 2020 39th International
8383
Conference on Ocean, Offshore and Arctic Engineering. virtual conference, 2020. <https://www.nrel.gov/docs/fy20osti/76555.pdf>`_
8484

85-
Seabed friction and bathymetry approach used in v2:
86-
87-
`Housner, Stein, Ericka Lozon, Bruce Martin, Dorian Brefort, and Matthew Hall, “Seabed Bathymetry and Friction Modeling in MoorDyn.” Journal of
88-
Physics: Conference Series 2362, no. 1, Nov 2022: 012018. <https://doi.org/10.1088/1742-6596/2362/1/012018>`_
89-
9085
Implementation of bending stiffness modeling for power cables:
9186

9287
`Hall, Matthew, Senu Sirnivas, and Yi-Hsiang Yu, “Implementation and Verification of Cable Bending Stiffness in MoorDyn.” In ASME 2021 3rd International Offshore Wind
9388
Technical Conference, V001T01A011. Virtual, Online: American Society of Mechanical Engineers, 2021. <https://doi.org/10.1115/IOWTC2021-3565>`_
9489

90+
Seabed friction and bathymetry approach used in v2:
91+
92+
`Housner, Stein, Ericka Lozon, Bruce Martin, Dorian Brefort, and Matthew Hall, “Seabed Bathymetry and Friction Modeling in MoorDyn.” Journal of
93+
Physics: Conference Series 2362, no. 1, Nov 2022: 012018. <https://doi.org/10.1088/1742-6596/2362/1/012018>`_
94+
9595
Non-linear line stiffness:
9696

9797
`Lozon, Ericka, Matthew Hall, Paul McEvoy, Seojin Kim, and Bradley Ling, “Design and Analysis of a Floating-Wind Shallow-Water Mooring System
@@ -122,6 +122,10 @@ Modeling of Bi-stable Nonlinear Energy Sinks in MoorDyn (most recent description
122122
`Anargyros Michaloliakos, Wei-Ying Wong, Ryan Davies, Malakonda Reddy Lekkala, Matthew Hall, Lei Zuo, Alexander F. Vakakis, "Stabilizing dynamic subsea power cables using
123123
Bi-stable nonlinear energy sinks", Ocean Engineering, vol. 334, August 2025. <https://doi.org/10.1016/j.oceaneng.2025.121613>`_
124124

125+
Syrope model for polyester ropes:
126+
127+
`Wei, Zhilong, Harry B. Bingham, and Yanlin Shao. 2026. “ESOMOOR D5.1: Extended Moordyn Solver and Validation Report”. Technical University of Denmark. <https://doi.org/10.11583/DTU.31408806>`_
128+
125129
The Fortran version of MoorDyn is available as a module inside of OpenFAST:
126130

127131
https://openfast.readthedocs.io/en/main/

source/IO.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,6 @@ IO::LoadFile(const std::string filepath) const
278278
uint8_t major, minor;
279279
f.read((char*)&major, sizeof(uint8_t));
280280
f.read((char*)&minor, sizeof(uint8_t));
281-
std::cout << major << std::endl;
282-
std::cout << minor << std::endl;
283-
std::cout << _min_major_version << std::endl;
284-
std::cout << _min_minor_version << std::endl;
285-
std::cout << "number=" << 7 << std::endl;
286281
if ((major < _min_major_version) ||
287282
((major == _min_major_version) && (minor < _min_minor_version))) {
288283
LOGERR << "The file '" << filepath << "' was written by MoorDyn "

0 commit comments

Comments
 (0)