Skip to content

Commit f7ca8a9

Browse files
committed
Convert example PDF's to markdown, additional docs cleanup
1 parent 23e2679 commit f7ca8a9

8 files changed

+99
-6
lines changed

docs/drivers.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ MoorDyn-F contains a driver script that has a :ref:`separate input file <MDF_dri
88
and MoorDyn-F compiles in OpenFAST as moordyn_driver. The MoorDyn-F driver follows all
99
the same principles as the examples below. See :ref:`compiling <compiling>` and
1010
:ref:`inputs <inputs>` sections for instructions on how to use the MoorDyn-F driver.
11+
Additionally, MoorDyn-F has a c-bindings interface, which allows it (along with the rest
12+
of OpenFAST) to be coupled with other languages. The MoorDyn-F C interface is set up using
13+
the MoorDyn V1 approach (single 6 DOF coupling), thus it requires a single coupled body to
14+
be used in the MoorDyn input file.
1115

1216
Currently MoorDyn-C v2 can be used in Python, C/C++, Fortran, and Matlab. You can
1317
read more on how to install MoorDyn for each different language in
@@ -129,11 +133,9 @@ control:
129133
for node_id in range(n_segs+1):
130134
print(" node {}:".format(node_id))
131135
pos = moordyn.GetLineNodePos(line, node_id)
132-
printf(" pos = {}".format(pos))
136+
print(" pos = {}".format(pos))
133137
ten = moordyn.GetLineNodeTen(line, node_id)
134-
printf(" ten = {}".format(ten))
135-
}
136-
}
138+
print(" ten = {}".format(ten))
137139
138140
# Alright, time to finish!
139141
moordyn.Close(system)

docs/inputs.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1004,8 +1004,8 @@ data.
10041004
0.0 0.9 0.0
10051005
150 0.5 0.0
10061006
1000 0.25 0.0
1007-
1500 0.2 0.0
1008-
5000 0.15 0.0
1007+
1500 0.2 0.0
1008+
5000 0.15 0.0
10091009
--------------------- need this line ------------------
10101010
10111011
MoorDyn-F with FAST.Farm - Inputs

docs/integration_moordyn.png

98.6 KB
Loading

docs/troubleshooting.rst

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,26 @@ However, in contrast to the damping, which can be selected line by line, the
6969
time step is a constant of the whole system, and thus should be selected
7070
considering the minimum natural period of all lines.
7171

72+
Catenary Solve Unsuccessful
73+
^^^^^^^^^^^^^^^^^^^^^^^^^^^
74+
75+
One of the most common issues encountered when using MoorDyn is the failure of the
76+
catenary solver to converge. The catenary solver is the first step in solving the
77+
initial conditions of the system. This approach tries to use the properties and geometry
78+
of the mooring lines to solve for a catenary shape.
79+
80+
If this routine fails, you will see a "Catenary solve unsuccessful" message in the
81+
the console and the log file. This means that MoorDyn will initialize the lines
82+
as linear between the two defined end locations. After this, the ICgen process begins,
83+
which runs a simulation with no external forcing, allowing the lines to 'fall' into
84+
place. If the lines initialize as linear, then the initialization process will just take
85+
longer, requiring a larger `TmaxIC` value. Explanations about the different initial
86+
condition generating methods can be found in the :ref:`initialization section <initialization>`.
87+
88+
The "Catenary Solve Unsuccessful" message does not impact the performance of MoorDyn or
89+
the results it produces, provided the initialization process converges before the simulation
90+
begins.
91+
7292
Python errors
7393
^^^^^^^^^^^^^
7494

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!-- Copilot generated markdown files from hmtl exports of the instructions word docs -->
2+
3+
# OpenFAST and MoorDyn-F
4+
5+
MoorDyn-F is the core mooring dynamics module in OpenFAST. It is structured to seamlessly fit into the OpenFAST code structure, and thus is less suitable for external couplings than MoorDyn-C. The steps for running MoorDyn with OpenFAST and FAST.Farm are very similar to running any of the other OpenFAST modules. First, enable the module in the main input file, then provide the path to the module input file, and then configure the module input file for your simulation. Finally, run your simulation.
6+
7+
## Running OpenFAST with MoorDyn-F
8+
9+
See the instructions in the `Running OpenFAST.pdf` from the OpenFAST co-calc demonstration for details on setting up OpenFAST more broadly. Additional OpenFAST information can be found in the [OpenFAST documentation](https://openfast.readthedocs.io/en/main/). The general steps for running OpenFAST with MoorDyn-F are as follows:
10+
11+
- Obtain the OpenFAST executables
12+
- Compile from source code
13+
- Download executables from [GitHub releases](https://github.com/OpenFAST/openfast/releases)
14+
- Configure the OpenFAST input files for your system
15+
- Set `CompMooring = 3` in the main OpenFAST `.fst` input file
16+
- Set the `MooringFile` variable in the main OpenFAST `.fst` input file to the MoorDyn input file path
17+
- Configure the MoorDyn input file for your system
18+
- Note that coupled MoorDyn objects (bodies, rods, and points) are rigidly attached to the ElastoDyn object instance
19+
- Execute `openfast <input_file>.fst`
20+
21+
## Running MoorDyn-F with the MoorDyn Driver
22+
23+
The MoorDyn driver allows for MoorDyn-F to be run as a stand-alone module, enabling debugging of OpenFAST simulations and MoorDyn-only simulations. To run the driver, an additional input file is required that fills in the information normally provided to MoorDyn by the OpenFAST input file. Information on this file can be found in the [MoorDyn documentation](https://moordyn.readthedocs.io/en/latest/inputs.html#moordyn-f-driver-input-file). The general steps for running MoorDyn-F with the MoorDyn driver are as follows:
24+
25+
- Obtain the driver executable
26+
- Compile from source code
27+
- Download executable from [GitHub releases](https://github.com/OpenFAST/openfast/releases)
28+
- Configure the MoorDyn driver input file `.dvr` following the formatting described in the [MoorDyn documentation](https://moordyn.readthedocs.io/en/latest/inputs.html#moordyn-f-driver-input-file).
29+
- A time series input file is needed for providing motion to coupled MoorDyn objects. The path to this input file is set as the `InputsFile` variable in the MoorDyn driver input file (note that if `InputsMode = 0` all coupled objects positions will be fixed at 0 and the time series file will be ignored)
30+
- Configure the MoorDyn input file
31+
- Coupled objects will be driven by a time series file provided in the driver input file
32+
- Execute `moordyn_driver <input_file>.dvr`
33+
34+
## Running FAST.Farm with MoorDyn-F
35+
36+
FAST.Farm, the wind farm simulation tool built on OpenFAST, can also be run with MoorDyn. More information on FAST.Farm can be found in the [OpenFAST documentation](https://openfast.readthedocs.io/en/main/source/user/fast.farm/index.html#fast-farm-user-s-guide-and-theory-manual). FAST.Farm runs an OpenFAST instance for each turbine in the farm and thus can have a MoorDyn instance for each turbine. Additionally, there can be a farm level MoorDyn instance, which allows for the simulation of shared mooring lines. Instructions for using MoorDyn with FAST.Farm can be found in the [MoorDyn documentation](https://moordyn.readthedocs.io/en/latest/inputs.html#moordyn-f-with-fast-farm-inputs). The general steps for running FAST.Farm with MoorDyn-F are as follows:
37+
38+
- Obtain the FAST.Farm executables
39+
- Compile from source code
40+
- Download executable from [GitHub releases](https://github.com/OpenFAST/openfast/releases)
41+
- Configure the FAST.Farm input files for your system
42+
- `Mod_SharedMooring = 3` in the main FAST.Farm `.fstf` input file
43+
- Set the `SharedMoorFile` variable in the main FAST.Farm `.fstf` input file to the MoorDyn input file path
44+
- For each turbine in your system, configure the OpenFAST input files for your system
45+
- If using MoorDyn at the turbine scale as well, set `CompMooring = 3` in the main OpenFAST `.fst` input file for each turbine. Otherwise set `CompMooring = 0`
46+
- Set the `MooringFile` variable in the main OpenFAST `.fst` input file to the MoorDyn input file path if using the turbine level MoorDyn instance
47+
- Configure the MoorDyn input files
48+
- At the turbine level, coupled MoorDyn objects (bodies, rods, and points) are rigidly attached to the ElastoDyn object instance
49+
- At the farm level MoorDyn instance, the object attachment `Turbine#` is rigidly coupled to the ElastoDyn instance of the given turbine. Coupled objects are not allowed in the farm level MoorDyn input file.
50+
- Execute `fast.farm <input_file>.fstf`
-99.1 KB
Binary file not shown.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!-- Copilot generated markdown files from hmtl exports of the instructions word docs -->
2+
3+
# Running WEC-Sim with MoorDyn
4+
5+
Instructions for running WEC-Sim with MoorDyn can be found in the README for the [WEC-Sim/MoorDyn repository](https://github.com/WEC-Sim/MoorDyn/blob/main/README.md). A short summary of those steps is detailed here:
6+
7+
1. Obtain the MoorDyn libraries, header files, and the MoorDyn caller
8+
- Download from the [WEC-Sim/MoorDyn repository](https://github.com/WEC-Sim/MoorDyn/blob/main/README.md)
9+
- Compile MoorDyn-C from source following the [instructions in the documentation](https://moordyn.readthedocs.io/en/latest/compiling.html)
10+
- This is only needed if libraries from the [WEC-Sim/MoorDyn repository](https://github.com/WEC-Sim/MoorDyn/blob/main/README.md) do not work
11+
2. Move the MoorDyn libraries, `.h` header files, and MoorDyn caller (all the files in the [WEC-Sim/MoorDyn repository](https://github.com/WEC-Sim/MoorDyn/blob/main/README.md)) from step 1 to the `WEC-Sim/source/functions/moorDyn` directory.
12+
- To test the WEC-Sim MoorDyn setup, run the [WEC-Sim_Application/Mooring/MoorDyn example case](https://github.com/WEC-Sim/WEC-Sim_Applications/tree/main/Mooring/MoorDyn).
13+
3. Configure the MoorDyn input file for your system.
14+
- Note that WEC-Sim requires a rigid 6 DOF body coupling for each mooring connection (a coupled MoorDyn body). Multiple bodies can be coupled to the WEC-Sim system, allowing the simulation of shared moorings for hydrokinetic devices.
15+
4. Configure the WEC-Sim Simulink model
16+
- For each MoorDyn connection (a connection can consist of multiple lines and nodes but is between two distinct objects such as a floating body and the seafloor), there should be a MoorDyn Connection block in the Simulink model defining the relative motion between the objects.
17+
- When using MoorDyn, there should always be exactly one MoorDyn Caller block in the Simulink model. See [WEC-Sim MoorDyn docs](https://wec-sim.github.io/WEC-Sim/dev/user/advanced_features.html#moordyn) for more details.
18+
5. Configure the WEC-Sim input file
19+
- For each MoorDyn block in your system, you need to have a corresponding `mooring(i)` object, where `i` is the ID number of the body in the MoorDyn input file. Instructions for how to set up the mooring object are in the [WEC-Sim MoorDyn docs](https://wec-sim.github.io/WEC-Sim/dev/user/advanced_features.html#moordyn).
20+
- The MoorDyn input file needs to be defined as `mooring(1).moorDynInputFile`, as WEC-Sim uses the file path defined in the first Mooring block to load the MoorDyn input file.
21+
6. Run the simulation by executing `wecSim` from the command window.
-80.3 KB
Binary file not shown.

0 commit comments

Comments
 (0)