MoorDyn - Lumped-Mass Mooring Dynamics

Welcome to MoorDyn’s online documentation. MoorDyn is a simple, efficient, and versatile mooring system dynamics model designed to work in concert with other simulation tools. It is based on a lumped-mass discretization of a mooring line’s dynamics, and adds point-mass and rigid-body objects to enable simulation of a wide variety of mooring and cabling arrangements. Hydrodynamics are included using a version of the Morison equation, and there is support for wave loads on surface-piercing cylinders.

The pages on this site provide information about compiling, MoorDyn’s input files, how to drive a simulation, how MoorDyn is structured, and its theory. MoorDyn is available in multiple forms, which are outlined below.

Note: This documentation is meant for users, a Doxygen documentation has been deployed for the developers.

About MoorDyn

MoorDyn was originally developed in 2014 as a C++ library that could be easily coupled with other codes (such as WEC-Sim and DualSPHysics). Soon after, a second form was created as a module of the floating wind turbine simulator FAST, which is a FORTRAN code following the FAST Modularization Framework. Both forms of MoorDyn have the same underlying physics modes but are different in how they can be used with other codes. An effort is made to keep the physics modeling in both forms synchronized when new capabilities get added to one of them. To distinguish, the two forms can be referred to as MoorDyn-C and MoorDyn-F.

Beginning in 2019, a set of new features was added to MoorDyn including rigid bodies and support for wave loading at the free surface. This set of new capabilities is referred to as Version 2 (v2). Version 2 has been realized in both C++ and FORTRAN forms of MoorDyn. The MoorDyn source code is available on GitHub. The MoorDyn-C v1 and v2 is here and the MoorDyn-F code is included in the OpenFAST repository.

As of version 2, the input file formats of MoorDyn-C and MoorDyn-F are identical. We recommend using MoorDyn v2 for all applications unless you have a specific reason to use MoorDyn v1.

MoorDyn-C v2 contains wrappers that make it available as a python library and allow it to be easily packaged into other languages. It is released under the 3-clause BSD license.

This website serves as a public-facing guide for MoorDyn in all forms. It focuses on MoorDyn’s principles of operation, setup of the input files, common problems, etc. It will also have guidance for coupling with MoorDyn in standalone form, as well as a guide for the API. For information about use of MoorDyn-F in the larger context of OpenFAST simulations, refer also to the OpenFAST documentation.

In this documentation, when MoorDyn is mentioned without specifying C or F then it is applicable to both. If a version number is not stated, then version 2 is assumed.

Ways of Using MoorDyn:

As a mooring dynamics library, MoorDyn needs some other program to run it. This other “driver” program can be a simple script that moves (or holds still) the ends of the mooring lines, or a full dynamics model for other parts of a floating system.

MoorDyn-F is usually run as part of the full OpenFAST simulation model, driven by the OpenFAST or FAST.Farm “glue code”. It also comes with a dedicated “MoorDyn driver ” code that allows MoorDyn-F to run in isolation with only an input file of floating platform motions. Instructions for the use of the MoorDyn-F driver can be found here.

MoorDyn-C is designed for coupling with a wide number of codes. Some couplings already exist and can be found here (e.g. WEC-Sim and DualSPHysics). For Coupling with other codes or more manual driving of MoorDyn from your own script, several APIs, wrappers, and example driver scripts are available here.