Skip to content

Commit b110881

Browse files
authored
Merge pull request #3210 from luwang00/f/superelement
Hydroelastic super-element capability for OpenFAST
2 parents 213bb7b + 0669c5f commit b110881

33 files changed

+14720
-2197
lines changed

docs/source/user/extptfm/input_files.rst

Lines changed: 206 additions & 154 deletions
Large diffs are not rendered by default.

docs/source/user/extptfm/usage.rst

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,32 @@ satisfying the following criteria: :math:`\Delta t=\frac{1}{10 f_\text{max}}`, w
7272
for an increasing number of Craig-Bampton modes to get an idea of how many modes are needed to reach convergence
7373
and see which modes contributes the most to the sytem response.
7474

75-
76-
75+
OpenFAST 5.0
76+
~~~~~~~~~~~~
77+
78+
With the release of OpenFAST 5.0, significant changes were made to the input files of ExtPtfm and its internal formulation.
79+
Couplings between ExtPtfm and HydroDyn and between ExtPtfm and the mooring modules have been enabled to more conveniently
80+
simulate a flexible floating structure. Finally, linearization with ExtPtfm is now possible.
81+
82+
When simulating a floating structure in ExtPtfm, HydroDyn can be enabled in the glue-code to compute and provide
83+
potential-flow wave excitation and radiation loads and hydrostatic loads for both rigid-body modes and additional
84+
generalized degrees of freedom through the `NAddDOF` option (see HydroDyn documentation). With this setup, we need
85+
the number of active modes in ExtPtfm to be equal to :math:`6+NAddDOF` in HydroDyn, with the first 6 modes being
86+
rigid-body modes, followed by a number of elastic modes.
87+
88+
Note that if HydroDyn also contains strip-theory members, the resulting strip-theory loads will all be mapped to
89+
the ExtPtfm rigid-body modes only, not the elastic modes. Therefore, users are discouraged from using strip-theory-only
90+
members in HydroDyn. The same applies to marine growth and ballast/flooding in HydroDyn. However, hybrid members
91+
with drag only can still be used in many cases to help obtain more relastic floater motions. The drag force tends
92+
to be small and does not have a strong direct impact on the structural loading. In this case, mapping the drag force
93+
to the rigid-body modes only can be an acceptable simplification. The same consideration also applies to the
94+
second-order potential-flow options in HydroDyn that do no support generalized degrees of freedom, yet.
95+
96+
When coupling to mooring, a set of connection points must be defined in the ExtPtfm module. These connections points
97+
are coupled to the fairleads in the mooring models. Generally, the connection points in ExtPtfm should be the same
98+
set of points used as fairleads in the mooring model; however, they need not be exactly the same as OpenFAST automatically
99+
introduces nearest-neighbor mapping between the two assuming rigid connections.
100+
101+
Note that the above workflow with ExtPtfm coupling to HydroDyn and mooring is still a work-in-progress.
77102

78103

docs/source/user/hydrodyn/input_files.rst

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,18 @@ rotation first, followed by pitch rotation, and roll last. Furthermore,
7070
HydroDyn now expects the first and second time derivatives of the
7171
Tait-Bryan roll, pitch, and yaw angles in place of angular velocity and
7272
acceleration. The standalone HydroDyn driver will convert these inputs
73-
to angular velocity and acceleration internally.
73+
to angular velocity and acceleration internally.
74+
75+
**NAddDOF** indicates the number of additional degrees of freedom included
76+
with a potential-flow body. These additional modes can be used to describe
77+
a flexible or articulated body. **NAddDOF** > 0 is only allowed with a single
78+
potential-flow body, and the value of **NAddDOF** in the driver input file
79+
must match that in the HydroDyn primary input file. If more than one
80+
potential-flow bodies are included, **NAddDOF** should be a single zero in
81+
the driver input file. This is different from the HydroDyn primary input file,
82+
where **NAddDOF** should contain **NBody** zeros. See details below on
83+
the HydroDyn primary input file. Note that the generalized modes with
84+
**NAddDOF** > 0 are still an experimental feature.
7485

7586
Setting **PRPInputsMod** = 0 forces all platform reference point (PRP)
7687
input motions to zero for all time. If you set **PRPInputsMod** = 1,
@@ -115,7 +126,7 @@ to specify different motions for the PRP, which controls the motion of
115126
all strip-theory members based on rigid-body kinematics, and for each
116127
potential-flow bodies separately. With this option, the user only specifies
117128
the translational and rotational displacements. HydroDyn will compute the
118-
velocity and acceleration by numerically differentiating the displacement
129+
velocity and acceleration by numerically differentiating the displacements
119130
with respect to time.
120131

121132
.. _hd-prp_input_table_2:
@@ -136,6 +147,26 @@ with respect to time.
136147
... ... ...
137148
============= =================================================================================== ========================
138149

150+
Finally, when a single potential-flow body with additional generalized degrees
151+
of freedom is modeled, motions of the generalized modes can be prescribed by
152+
setting **PRPInputsMod** = -1 (only one body allowed). HydroDyn will compute the
153+
velocity and acceleration of the generalized modes by numerically differentiating
154+
the displacements with respect to time.
155+
156+
.. _hd-prp_input_table_3:
157+
158+
.. table:: PRP Inputs Time-Series Data File Contents (**PRPInputsMod** = -1 with **NAddDOF** > 0)
159+
:widths: auto
160+
161+
============= =================================================================================== ========================
162+
Column Number Input Units
163+
============= =================================================================================== ========================
164+
1 Time step value .. math:: s
165+
2-4 Translational displacements of the PRP along *X*, *Y*, and *Z* .. math:: m
166+
5-7 Tait-Bryan roll, pitch, and yaw angles of the PRP .. math:: \text{radians}
167+
8-(NAddDOF+7) Displacements of the **NAddDOF** generalized modes .. math:: -
168+
============= =================================================================================== ========================
169+
139170
.. _hd-primary-input:
140171

141172
HydroDyn Primary Input File
@@ -389,6 +420,36 @@ to the value computed by WAMIT as output in the WAMIT ``.out`` file.
389420
center of buoyancy of each body from the origin/PRP, NOT from
390421
**PtfmRefxt** and **PtfmRefyt**.
391422

423+
*Experimental feature*
424+
425+
**NAddDOF** is an array of **NBody** numbers indicating the number of
426+
additional generalized degrees of freedom of each potential-flow body. These
427+
additional modes can be used to describe flexible or articulated bodies and
428+
must match the modes in the 1st-order WAMIT-style input files, i.e., the .1,
429+
.3, and .hst files. The convention for the WAMIT-style input files requires
430+
the first 6 modes to be rigid-body modes always, and the additional generalized
431+
modes are numbered from 7 onward. The total number of modes in the 1st-order
432+
WAMIT-style input files should be **6+NAddDOF** for each body. Currently, only
433+
one potential-flow body is allowed when additional degrees of freedom are used,
434+
requiring **NBody = 1**. In this case, the choice of **NBodyMod** does not
435+
matter. If more than one potential-flow bodies are present, **NAddDOF** should
436+
be populated with **NBody** zeros. This because, internally, HydroDyn supports
437+
additional degrees of freedom for an arbitrary number of bodies with any of the
438+
**NBodyMod** options. The limitation of one potential-flow body only is due
439+
to constraints with coupling to ExtPtfm, the only module that can make use of the
440+
additional modes so far and input file limitations. Generalized modes have not
441+
been implemented for 2nd-order loads; therefore, the 2nd-order WAMIT-style input
442+
files, if included, should always contain **6NBody** modes irrespective of
443+
**NAddDOF**. Finally, when **NAddDOF > 0**, **WAMITULEN** must be 1.
444+
445+
Currently, the HydroDyn loads for the additional degrees of freedom can only be
446+
used by the ExtPtfm module of OpenFAST with externally generated structural
447+
mass (M), stiffness (K), and damping (C) matrices. This workflow is intended for
448+
floating structures only with 6DOF rigid-body motions and a user-defined number
449+
of additional elastic modes. The number of modes in HydroDyn and ExtPtfm must match.
450+
More specifically, the number of modes active in ExtPtfm must be equal to
451+
**6+NAddDOF** with the first 6 modes also being rigid-body modes.
452+
392453
.. _hd-2nd_order_floating_platform_forces_input:
393454

394455
2\ :sup:`nd`-Order Floating Platform Forces
@@ -486,20 +547,26 @@ where :math:`\overrightarrow{F}_{0}` corresponds to the **AddF0** static load (p
486547
:math:`\overrightarrow{q}` corresponds to the displacement vector of the potential-flow bodies
487548
(translation and rotation), where the overdot refers to the first time-derivative.
488549

550+
In the absence of additional degrees of freedom, i.e., **NAddDOF** is all zeros,
489551
**AddF0** is either a column vector with 6\ **NBody** entries
490552
if **NBodyMod** = 1 or **NBody** column vectors with six entries each
491553
if **NBodyMod** = 2 or 3. In the former case, **AddF0** will span
492554
6\ **NBody** lines with each line containing a single number in the
493555
input file. In the latter case, **AddF0** will span six lines with each line
494-
containing **NBody** numbers in the input file.
556+
containing **NBody** numbers in the input file. When additional degrees of
557+
freedom are included, only one potential-flow body is allowed, and **AddF0**
558+
should be a column vector spanning 6 + **NAddDOF** rows.
495559

560+
In the absence of additional degrees of freedom,
496561
**AddCLin**, **AddBLin**, and **AddBQuad** are either a single
497562
6\ **NBody**\ -by-6\ **NBody** matrix if **NBodyMod** = 1 or
498563
six 6-by-6 matrices if **NBodyMod** = 2 or 3. In the former case,
499564
each matrix spans 6\ **NBody** lines in the input file with each line
500565
containing 6\ **NBody** numbers. In the latter case, each matrix
501566
spans six lines in the input file, with each line containing 6\ **NBody**
502-
numbers.
567+
numbers. When additional degrees of freedom are included, only one
568+
potential-flow body is allowed, and each of these matrices should span
569+
6 + **NAddDOF** rows, with each row containing 6 + **NAddDOF** numbers.
503570

504571
These terms can be used, e.g., to model a linearized mooring system, to
505572
augment strip-theory members with a linear hydrostatic restoring matrix
@@ -508,7 +575,9 @@ HydroDyn to match damping to experimental results, such as free-decay tests.
508575
While likely most useful for floating systems, these matrices can also be
509576
used for fixed-bottom systems; in both cases, the resulting load is applied
510577
at the reference point of each potential-flow body given by **PtfmRefxt**,
511-
**PtfmRefyt**, and **PtfmRefzt**.
578+
**PtfmRefyt**, and **PtfmRefzt**. When additional generalized degrees of
579+
freedom are included with a potential-flow body, **AddF0** can be used to
580+
apply constant hydrostatic/buoyancy loads to the generalized modes.
512581

513582
Strip theory options
514583
--------------------

0 commit comments

Comments
 (0)