Skip to content

Commit

Permalink
Merge pull request #1295 from andrew-platt/f/ReducedOrdModel
Browse files Browse the repository at this point in the history
Reduced order models: AeroDisk and Simplified-ElastoDyn (SED)
  • Loading branch information
andrew-platt authored Aug 26, 2024
2 parents 4daa9df + 77a7a60 commit 65c21d3
Show file tree
Hide file tree
Showing 62 changed files with 14,205 additions and 763 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ set(OPENFAST_MODULES
inflowwind
extloads
aerodyn
aerodisk
servodyn
elastodyn
beamdyn
Expand All @@ -209,6 +210,7 @@ set(OPENFAST_MODULES
supercontroller
externalinflow
openfast-library
simple-elastodyn
)

set(OPENFAST_REGISTRY_INCLUDES "" CACHE INTERNAL "Registry includes paths")
Expand Down
Binary file not shown.
Binary file modified docs/OtherSupporting/OutListParameters.xlsx
Binary file not shown.
19 changes: 19 additions & 0 deletions docs/source/user/aerodisk/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
.. _ADsk:

AeroDisk
========


This document describes the AeroDisk (ADsk) module.


.. only:: html


.. toctree::
:maxdepth: 2

input_files.rst

..
zrefs.rst
165 changes: 165 additions & 0 deletions docs/source/user/aerodisk/input_files.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
.. _adsk_input-files:

Input and Output Files
======================


Units
-----

AeroDisk uses the SI system (kg, m, s, N).

.. _adsk_input-file:

Input file
----------

The AeroDisk input file defines the general inputs required for the actuator
disk calculations. The following inputs may be changed by the user to achieve
the desired behaviour.

Simulation Control
~~~~~~~~~~~~~~~~~~

**echo** [switch]

Write the input file contents to a file <RootName>.ADsk.ech. This is useful
for diagnosing errors reported about the input file.

**DT** [seconds]

Integration time step for AeroDisk to use, or _"default"_ to use the glue code
time step.

Environmental Conditions
~~~~~~~~~~~~~~~~~~~~~~~~

**AirDens** [kg/m^3]

Air density, or _"default"_ to use the air density from the glue code

Actuator Disk Properties
~~~~~~~~~~~~~~~~~~~~~~~~

**RotorRad** [m]

Radius of the rotor, or _"default"_ to use the value passed from the glue
code

The lookup table for the disk actuator forces and moments follows. The data in
this table is flexible as it allows for a very simple lookup based on a single
variable (**TSR** for example), or up to four variables. The last six columns
of the table must include the six force and moment coefficients that correspond
to a set of conditions given in the first set of columns.

**InColNames** [-]

Comma separated List of column names corresponding to the variable columns in
the input file. See below for options.

**InColDims** [-]

Comma separted list of the number unique entries for each of the named
variable column names. The number of rows in the table must be equal to the
product of all numbers given. Must be the same number of entries as given in
**InColNames**


For the input variable columns in the table, at least one column must be given,
with a maximum of four of the five listed below (**TSR** and **RtSpd** are
mutually exclusive).

**TSR** [-]

Tip Speed Ratio, cannot be used with _RtSpd_

**RtSpd** [rpm]

Rotor speed, cannot be used with _TSR_

**VRel** [m/s]

Relative velocity of wind normal to rotor

**Pitch** [deg]

Collective blade pitch

**Skew** [deg]

Skew angle of inflow. If this is not provided, the affect of skew is modeled
as :math:`(cos(\chi))^2`


The remaining six columns of the table must contain the force and moment
coefficents. See the example table below.



Sample input file
~~~~~~~~~~~~~~~~~

Note that the table given below is for illustration of the format and does not
represent any particular turbine.

.. code::
--- AERO DISK INPUT FILE -------
Sample actuator disk input file
--- SIMULATION CONTROL ---------
FALSE echo - Echo input data to "<RootName>.ADsk.ech" (flag)
"default" DT - Integration time step (s)
--- ENVIRONMENTAL CONDITIONS ---
1.225 AirDens - Air density (kg/m^3) (or "default")
--- ACTUATOR DISK PROPERTIES ---
63.0 RotorRad - Rotor radius (m) (or "default")
"RtSpd,VRel" InColNames - Input column headers (string) {may include a combination of "TSR, RtSpd, VRel, Pitch, Skew"} (up to 4 columns) [choose TSR or RtSpd,VRel; if Skew is absent, Skew is modeled as (COS(Skew))^2]
9,2 InColDims - Number of unique values in each column (-) (must have same number of columns as InColName) [each >=2]
RtSpd VRel C_Fx C_Fy C_Fz C_Mx C_My C_Mz
(rpm) (m/s) (-) (-) (-) (-) (-) (-)
3.0 9.0 0.2347 0.0 0.0 0.0306 0.0 0.0
4.0 9.0 0.2349 0.0 0.0 0.0314 0.0 0.0
5.0 9.0 0.2350 0.0 0.0 0.0322 0.0 0.0
6.0 9.0 0.2351 0.0 0.0 0.0330 0.0 0.0
7.0 9.0 0.2352 0.0 0.0 0.0338 0.0 0.0
8.0 9.0 0.2352 0.0 0.0 0.0346 0.0 0.0
9.0 9.0 0.2351 0.0 0.0 0.0353 0.0 0.0
10.0 9.0 0.2350 0.0 0.0 0.0361 0.0 0.0
11.0 9.0 0.2349 0.0 0.0 0.0368 0.0 0.0
3.0 12.0 0.7837 0.0 0.0 0.0663 0.0 0.0
4.0 12.0 0.7733 0.0 0.0 0.0663 0.0 0.0
5.0 12.0 0.7628 0.0 0.0 0.0663 0.0 0.0
6.0 12.0 0.7520 0.0 0.0 0.0662 0.0 0.0
7.0 12.0 0.7409 0.0 0.0 0.0660 0.0 0.0
8.0 12.0 0.7297 0.0 0.0 0.0658 0.0 0.0
9.0 12.0 0.7182 0.0 0.0 0.0656 0.0 0.0
10.0 12.0 0.7066 0.0 0.0 0.0653 0.0 0.0
11.0 12.0 0.6947 0.0 0.0 0.0649 0.0 0.0
--- OUTPUTS --------------------
OutList - The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)
END of input file (the word "END" must appear in the first 3 columns of this last OutList line)
--------------------------------
.. _adsk_outputs:

Outputs
-------

The write outputs are:
- "ADSpeed": Actuator disk rotational speed (rpm)
- "ADTSR": Actuator disk tip-speed ratio (-)
- "ADPitch": Actuator-disk collective blade-pitch angle (deg)
- "ADVWindx, ADVWindy, ADVWindz": Actuator-disk-averaged wind velocity in the local coordinate system (m/s)
- "ADSTVx, ADSTVy, ADSTVz": Actuator-disk structural translational velocity in the local coordinate system (m/s)
- "ADVRel": Actuator-disk-averaged relative wind speed (m/s)
- "ADSkew": Actuator-disk inflow-skew angle (deg)
- "ADCp, ADCt, ADCq": Actuator-disk power, thrust, and torque coefficients (-)
- "ADFx, ADFy, ADFz": Actuator disk aerodynamic force loads in the local coordinate system (N)
- "ADMx, ADMy, ADMz": Actuator disk aerodynamic moment loads in the local coordinate system (N-m)
- "ADPower": Actuator disk power (W)

4 changes: 2 additions & 2 deletions docs/source/user/aerodyn/examples/ad_primary_example.dat
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ True AoA34 - Sample the angle of attack (AoA) at the 3/4 c
3 UA_Mod - Unsteady Aero Model Switch (switch) {0=Quasi-steady (no UA), 2=B-L Gonzalez, 3=B-L Minnema/Pierce, 4=B-L HGM 4-states, 5=B-L HGM+vortex 5 states, 6=Oye, 7=Boeing-Vertol}
True FLookup - Flag to indicate whether a lookup for f' will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when UA_Mod=2 or UA_Mod=3]
3 IntegrationMethod - Switch to indicate which integration method UA uses (1=RK4, 2=AB4, 3=ABM4, 4=BDF2)
0 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod=2; if line is missing UAStartRad=0]
1 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod=2; if line is missing UAEndRad=1]
0 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod>0; if line is missing UAStartRad=0]
1 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod>0; if line is missing UAEndRad=1]
====== Airfoil Information =========================================================================
1 AFTabMod - Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-)
1 InCol_Alfa - The column in the airfoil tables that contains the angle of attack (-)
Expand Down
15 changes: 13 additions & 2 deletions docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,23 @@ The line number corresponds to the resulting line number after all changes are i
Thus, be sure to implement each in order so that subsequent line numbers are correct.



OpenFAST v3.5.3 to OpenFAST dev
----------------------------------

The HydroDyn module was split into HydroDyn and SeaState. This results in a
completely new input file for SeaState, and complete revision of the HydroDyn
input file. See examples in the regression tests for the new formats.

New modules AeroDisk (see :numref:`ADsk`) and Simplified-ElastoDyn (see :numref:`SED`).

============================================= ======= ==================== ========================================================================================================================================================================================================
Modified in OpenFAST `dev`
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Module Line Flag Name Example Value
============================================= ======= ==================== ========================================================================================================================================================================================================
OpenFAST 15 CompAero\** 2 CompAero - Compute aerodynamic loads (switch) {0=None; 2=AeroDyn v15}
OpenFAST 15 CompAero\** 2 CompAero - Compute aerodynamic loads (switch) {0=None; 1=AeroDisk; 2=AeroDyn; 3=ExtLoads}
OpenFAST 13 CompElast 3 CompElast - Compute structural dynamics (switch) {1=ElastoDyn; 2=ElastoDyn + BeamDyn for blades; 3=Simplified ElastoDyn}
AeroDyn 40 IntegrationMethod 3 IntegrationMethod - Switch to indicate which integration method UA uses (1=RK4, 2=AB4, 3=ABM4, 4=BDF2)
AeroDyn 140\* BldNd_BlOutNd "All" BldNd_BlOutNd - Specify a portion of the nodes to output. {"ALL", "Tip", "Root", or a list of node numbers} (-)
ElastoDyn blade file 15 Removal of the `PitchAxis` input column
Expand Down Expand Up @@ -51,7 +55,14 @@ AeroDyn 82\* NacDragAC 0, 0,

\*Exact line number depends on number of entries in various preceeding tables.

\*\* The AeroDyn 14 module has been removed. AeroDyn15 renamed to AeroDyn
\*\* The AeroDyn 14 module has been removed and replaced with AeroDisk. AeroDyn15 renamed to AeroDyn

New Modules
~~~~~~~~~~~

- AeroDisk -- reduced order actuator disk model (see :numref:`ADsk`)
- Simplified ElastoDyn -- a reduced order structural model with only yaw and rotor speed degrees of freedom (see :numref:`SED`)
- SeaState -- wave dynamics calculations (previously part of HydroDyn)


.. _api_change_ad4x:
Expand Down
2 changes: 2 additions & 0 deletions docs/source/user/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ This section contains documentation for the OpenFAST module-coupling environment
AeroDyn <aerodyn/index.rst>
OLAF <aerodyn-olaf/index.rst>
Aeroacoustics <aerodyn-aeroacoustics/index.rst>
AeroDisk <aerodisk/index.rst>
BeamDyn <beamdyn/index.rst>
SubDyn <subdyn/index.rst>
ExtPtfm <extptfm//index.rst>
Expand All @@ -26,6 +27,7 @@ This section contains documentation for the OpenFAST module-coupling environment
InflowWind <inflowwind/index.rst>
MoorDyn <moordyn/index.rst>
ServoDyn <servodyn/index.rst>
Simplified ElastoDyn <simplified_elastodyn/index.rst>
Structural Control <servodyn-stc/StC_index.rst>
TurbSim <turbsim/index.rst>
FAST.Farm <fast.farm/index.rst>
Expand Down
Loading

0 comments on commit 65c21d3

Please sign in to comment.