Skip to content

Commit b7d49e0

Browse files
v2.4.0
Release 2.4.0
2 parents 4828499 + 2e7bf97 commit b7d49e0

File tree

124 files changed

+226138
-4900
lines changed

Some content is hidden

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

124 files changed

+226138
-4900
lines changed

.clang-format-ignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
source/Eigen/*

.github/workflows/build-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ jobs:
125125
mkdir -p ${{github.workspace}}/install
126126
127127
- name: Configure CMake (Linux)
128-
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DEXTERNAL_EIGEN:BOOL=OFF -DPYTHON_WRAPPER:BOOL=OFF -DFORTRAN_WRAPPER:BOOL=ON -DRUST_WRAPPER:BOOL=OFF -DUSE_VTK=ON -DBUILD_TESTING=ON
128+
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DEXTERNAL_EIGEN:BOOL=OFF -DPYTHON_WRAPPER:BOOL=OFF -DFORTRAN_WRAPPER:BOOL=ON -DRUST_WRAPPER:BOOL=ON -DUSE_VTK=ON -DBUILD_TESTING=ON
129129
if: runner.os == 'Linux'
130130

131131
- name: Configure CMake (MacOS)

.github/workflows/matlab.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ jobs:
2020
fail-fast: false
2121
matrix:
2222
# MATLAB requires an old version of Windows
23-
os: [ubuntu-latest, macos-latest]
23+
# Ubuntu dropped because of libcstd++ incompatibilities
24+
os: [macos-latest]
2425

2526
steps:
2627
- name: Check out repository

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ jobs:
142142
if: runner.os == 'Linux'
143143

144144
- name: Build wheels
145-
uses: pypa/cibuildwheel@v2.22.0
145+
uses: pypa/cibuildwheel@v2.23.1
146146
with:
147147
output-dir: dist
148148

CHANGELOG.md

Lines changed: 173 additions & 41 deletions
Large diffs are not rendered by default.

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 3)
4-
set(MOORDYN_PATCH_VERSION 8)
3+
set(MOORDYN_MINOR_VERSION 4)
4+
set(MOORDYN_PATCH_VERSION 0)
55
set(MOORDYN_VERSION ${MOORDYN_MAJOR_VERSION}.${MOORDYN_MINOR_VERSION})
66
project(Moordyn VERSION ${MOORDYN_VERSION})
77

cmake/FindRust.cmake

Lines changed: 433 additions & 43 deletions
Large diffs are not rendered by default.

docs/drivers.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ this time developed in C:
297297
298298
#include <stdio.h>
299299
#include <stdlib.h>
300+
#include <string.h>
300301
#include <moordyn/MoorDyn2.h>
301302
302303
int main(int, char**)

docs/inputs.rst

Lines changed: 58 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,8 @@ two fixed points located far from where your system is located.
247247
Most of the sections are set up to contain a table of input information. These
248248
tables begin with two preset lines that contain the column names and the
249249
corresponding units. These lines are followed by any number of lines containing
250-
the entries in that section's table of inputs.
250+
the entries in that section's table of inputs. # is the general comment chacater. If you are adding notes
251+
to self after any of the lines, # will prevent MoorDyn from reading them.
251252

252253
Examples of input files for MoorDyn-C can be found in the `test directory <https://github.com/FloatingArrayDesign/MoorDyn/tree/master/tests/Mooring>`_ (note that these do not include outputs becasue they are for tests).
253254

@@ -273,10 +274,10 @@ that will be used in the simulation
273274

274275
.. code-block:: none
275276
276-
---------------------- LINE TYPES -----------------------------------
277-
TypeName Diam Mass/m EA BA/-zeta EI Cd Ca CdAx CaAx
278-
(name) (m) (kg/m) (N) (N-s/-) (N-m^2) (-) (-) (-) (-)
279-
Chain 0.1 150.0 1e8 -1 0 2.3 1 1.0 0.5
277+
---------------------- LINE TYPES ----------------------------------------------------------------------
278+
TypeName Diam Mass/m EA BA/-zeta EI Cd Ca CdAx CaAx Cl dF cF
279+
(name) (m) (kg/m) (N) (N-s/-) (N-m^2) (-) (-) (-) (-) (-) (-) (-)
280+
Chain 0.1 150.0 1e8 -1 0 2.3 1 1.0 0.5 0.8 0.08 0.18
280281
281282
The columns in order are as follows:
282283

@@ -294,6 +295,16 @@ The columns in order are as follows:
294295
- Ca – transverse added mass coefficient (with respect to line displacement)
295296
- CdAx – tangential drag coefficient (with respect to surface area, π*d*l)
296297
- CaAx – tangential added mass coefficient (with respect to line displacement)
298+
- Cl – OPTIONAL - the crossflow VIV lift coefficient. If set to 0, then VIV calculations are disabled for the
299+
line. This coefficient has been made backwards compatible. If it is not provided, then it is
300+
assumed to be 0.0. The theory of vortex induced vibrations can be found :ref:`here <version2>`. Note that VIV is disabled
301+
for end nodes (and thus end half-segments), so if simulating VIV users should ensure to include a higher number of segments.
302+
Also note that VIV has only been tested with explicit time schemes (specifically rk2 and rk4). There may be unexpected behavior
303+
if used with an implicit time scheme.
304+
- dF - OPTIONAL - the cF +- range of non-dimensional frequnecies for the CF VIV synchronization model. If it is not
305+
provided and VIV is enabled (Cl > 0) then it is default to 0.08 to align with the the theory found :ref:`here <version2>`
306+
- cF - OPTIONAL - the center of the range of non-dimensional frequnecies for the CF VIV synchronization model. If it is not
307+
provided and VIV is enabled (Cl > 0) then it is default to 0.18 to align with the the theory found :ref:`here <version2>`
297308

298309
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
299310
must be located in the same folder as the main MoorDyn input file for MoorDyn-C or for MoorDyn-F
@@ -308,17 +319,19 @@ tabulated file with 3 header lines and then a strain column and a tension column
308319
0.0 0.0
309320
... ...
310321
311-
Note: MoorDyn-F has the ability to model the viscoelastic properties of synthetic lines in two ways. The first method, from work linked in the
322+
Note: MoorDyn has the ability to model the viscoelastic properties of synthetic lines in two ways. The first method, from work linked in the
312323
:ref:`theory section <theory>`, allows a user to specify a bar-seperated constant dynamic and static stiffness. The second method allows the user
313324
to provide a constant static stiffness and two terms to determine the dynamic stiffness as a linear function of mean load. The equation is:
314-
`EA_d = EA_Dc + EA_D_Lm * mean_load` where `EA_D_Lm` is the slope of the load-stiffness curve. Example inputs are below:
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 seperated by |. While the static damping can be described as a fraction of cricial, the dyanamic damping
327+
needs to be input as a value. Example inputs are below:
315328
316329
.. code-block:: none
317330
318-
TypeName Diam Mass/m EA
319-
(name) (m) (kg/m) (N)
320-
Polyester ... ... EA_s|EA_d <-- Constant dynamic stiffness method
321-
Polyester ... ... EA_s|EA_Dc|EA_D_Lm <-- Load dependent dynamic stiffness method
331+
TypeName Diam Mass/m EA BA
332+
(name) (m) (kg/m) (N) (N-s)
333+
Polyester ... ... EA_s|EA_d BA_s|BA_d <-- Constant dynamic stiffness method with static and dynamic damping
334+
Polyester ... ... EA_s|EA_Dc|EA_D_Lm BA_s|BA_d <-- Load dependent dynamic stiffness method with static and dynamic damping
322335
323336
Rod Types
324337
^^^^^^^^^
@@ -406,7 +419,7 @@ The columns are as follows:
406419

407420
This last entry expects a string of one or more characters without spaces, each character
408421
activating a given output property. A placeholder character such as “-” should be used if no
409-
outputs are wanted. Eight output properties are currently possible:
422+
outputs are wanted. Eight output properties are currently possible:
410423

411424
- p – node positions
412425
- v – node velocities
@@ -480,14 +493,16 @@ The columns are as follows:
480493

481494
This last entry expects a string of one or more characters without spaces, each character
482495
activating a given output property. A placeholder character such as “-” should be used if no
483-
outputs are wanted. Eight output properties are currently possible:
496+
outputs are wanted. Ten output properties are currently possible:
484497

485498
- p – node positions
486499
- v – node velocities
487500
- U – wave/current velocities at each node
488501
- D – hydrodynamic drag force at each node
489502
- t – tension force at each segment
490503
- c – internal damping force at each segment
504+
- V - the cross-flow VIV lift force at each node
505+
- K - the curvature at each node
491506
- s – strain of each segment
492507
- d – rate of strain of each segment
493508

@@ -569,6 +584,31 @@ to run the .mdl file are available in the OpenFAST GitHub repo under `glue-codes
569584
to show how to pass in values. A .dll OpenFAST shared library file and .mex OpenFAST S function file need to be in
570585
the same directory the controller is being run from.
571586

587+
External Loads (MoorDyn-F only)
588+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
589+
590+
This section (optional) allows users to specify external forces (constant) and translational linear and quadratic
591+
damping coefficients to MoorDyn point, rod, and body objects.
592+
593+
.. code-block:: none
594+
595+
---------------------- EXTERNAL LOADS --------------------------------
596+
ID Object Fext Blin Bquad CSys
597+
(#) (name) (N) (Ns/m) (Ns^2/m^2) (-)
598+
1 Body1 0.0|0.0|0.0 0.0|0.0|0.0 0.0|0.0|0.0 G
599+
2 Body1 0.0|0.0|0.0 0.0|0.0|0.0 0.0|0.0|0.0 L
600+
3 Point1 0.0|0.0|0.0 0.0|0.0|0.0 0.0|0.0|0.0 -
601+
4 Rod1 0.0|0.0|0.0 0.0|0.0 0.0|0.0 -
602+
603+
For bodies, the force and damping are applied at the
604+
body reference point in the global earth-fixed coordinate system if CSys is G for global or in the local body-fixed
605+
coordinate system if CSys is L for local. CSys can only be G or L for bodies. For points, the force and damping are
606+
applied at the point location in the global earth-fixed coordinate system always. CSys should be -. Otherwise, a
607+
warning message with explanation will be shown. For rods, the force is applied at the rod end A in the earth-fixed
608+
coordinate system always. Only two linear and two quadratic damping coefficients can be specified for rods. The first
609+
one is for the transverse direction, and the second one is for the axial/tangential direction. The damping force is
610+
always evaluated in the body-fixed system. CSys should be -. Otherwise, a warning message with explanation will be shown.
611+
572612
Options
573613
^^^^^^^
574614

@@ -635,8 +675,8 @@ The list of possible options is:
635675
- FricDamp (200.0): The seabed friction damping, to scale from no friction at null velocity to
636676
full friction when the velocity is large
637677
- StatDynFricScale (1.0): Ratio between Static and Dynamic friction coefficients
638-
- dtOut (0.0): Time step size to be written to output files. A value of zero will use dtM as a
639-
step size (s)
678+
- dtOut (0.0): Time step size to be written to output files. A value of zero will use the coupling
679+
timestep as a step size (s)
640680
- SeafloorFile: A path to the :ref:`bathymetry file <seafloor_in>`
641681
- ICgenDynamic (0): MoorDyn-C switch for using older dynamic relaxation method (same as MoorDyn-F).
642682
If this is enabled initial conditions are calculated with scaled drag according to CdScaleIC.
@@ -695,6 +735,9 @@ The following options from MoorDyn-F are not supported by MoorDyn-C:
695735
1: yes, 2: yes with ramp to inertialF_rampT]
696736
- inertialF_rampT (30.0): Ramp time for inertial forces to reduce coupled object instability (s).
697737
This is ignored unless inertialF = 2
738+
- OutSwitch (1): Switch to disable outputs when running with full OpenFAST simulations, where the
739+
MoorDyn-F output channels are written to the main FAST output file.
740+
0: no MD main outfile, 1: write MD main outfile
698741

699742
Outputs
700743
^^^^^^^

docs/integration_moordyn.png

226 KB
Loading

0 commit comments

Comments
 (0)