Skip to content

Commit

Permalink
Merge pull request #729 from bjonkman/f/UA
Browse files Browse the repository at this point in the history
New features for unsteady aerodynamics modeling
  • Loading branch information
rafmudaf authored Sep 20, 2021
2 parents 7267cdc + 1b189c4 commit 3256c25
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 7 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ It is compiled into HTML with Sphinx and is tied to a particular version
of OpenFAST. `Readthedocs <http://openfast.readthedocs.io>`_ hosts the following
versions of the documentation:

* ``latest`` - The latest commit on the ``master`` branch
* ``latest`` - The latest commit on the ``main`` branch
* ``stable`` - Corresponds to the last tagged release
* ``dev`` - The latest commit on the ``dev`` branch

Expand Down
2 changes: 2 additions & 0 deletions docs/source/user/aerodyn/input.rst
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,8 @@ or calculating it based on the polar coefficient data in the airfoil table:
well as to the pitch rate and pitch acceleration derived from AoA
within UA; if the keyword ``DEFAULT`` is entered in place of a
numerical value, ``filtCutOff`` is set to 0.5.
This non-dimensional value corresponds to a frequency of
:math:`\frac{U \times \mathrm{filtCutOff}}{\pi \times \mathrm{chord}}` Hz.

``NumAlf`` is the number of distinct AoA entries and determines the
number of rows in the subsequent table of static airfoil coefficients;
Expand Down
16 changes: 13 additions & 3 deletions docs/source/user/api_change.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,19 @@ Thus, be sure to implement each in order so that subsequent line numbers are cor

OpenFAST v3.0.0 to OpenFAST `dev`
---------------------------------
No changes.

============================================= ==== =============== ========================================================================================================================================================================================================
Added in OpenFAST dev
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Module Line Flag Name Example Value
============================================= ==== =============== ========================================================================================================================================================================================================
AeroDyn 15 40 UAStartRad 0.25 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAStartRad=0]
AeroDyn 15 41 UAEndRad 0.95 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAEndRad=1]
AirFoilTables 12\* alphaUpper 5.0 alphaUpper ! Angle of attack at upper boundary of fully-attached region. (deg) [used only when UAMod=5] ! THIS IS AN OPTIONAL LINE; if omitted, it will be calculated from the polar data
AirFoilTables 13\* alphaLower \-3.0 alphaLower ! Angle of attack at lower boundary of fully-attached region. (deg) [used only when UAMod=5] ! THIS IS AN OPTIONAL LINE; if omitted, it will be calculated from the polar data
AirFoilTables 42\* UACutout_delta "DEFAULT" UACutout_delta ! Delta angle of attack below UACutout where unsteady aerodynamics begin to turn off (blend with steady solution) (deg) [Specifying the string "Default" sets UACutout_delta to 5 degrees] ! THIS IS AN OPTIONAL LINE; if omitted, it will be set to its default value
============================================= ==== =============== ========================================================================================================================================================================================================
\*non-comment line count, excluding lines contained if NumCoords is not 0, and including all OPTIONAL lines in the UA coefficients table.



Expand Down Expand Up @@ -57,8 +69,6 @@ Added in OpenFAST v2.6.0
Module Line Flag Name Example Value
============================================= ==== =============== ========================================================================================================================================================================================================
AeroDyn 15 TwrTi 0.0000000E+00 6.0000000E+00 1.0000000E+00 1.0000000E-01 [additional column in *Tower Influence and Aerodynamics* table]
AeroDyn 15 40 UAStartRad 0.25 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAStartRad=0]
AeroDyn 15 41 UAEndRad 0.95 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius) [used only when AFAeroMod=2; if line is missing UAEndRad=1]
SubDyn 8 GuyanLoadCorr. False GuyanLoadCorection - Include extra moment from lever arm at interface and rotate FEM for floating
SubDyn 15 GuyanDampMod 0 GuyanDampMod - Guyan damping {0=none, 1=Rayleigh Damping, 2=user specified 6x6 matrix}
SubDyn 16 RayleighDamp 0.001, 0.003 RayleighDamp - Mass and stiffness proportional damping coefficients (Rayleigh Damping) [only if GuyanDampMod=1]
Expand Down
5 changes: 4 additions & 1 deletion modules/aerodyn/src/AeroDyn.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2181,11 +2181,14 @@ subroutine SetOutputsFromFVW(t, u, p, OtherState, x, xd, m, y, ErrStat, ErrMsg)
! ....... compute inputs to UA ...........
u_UA%alpha = alpha
u_UA%U = Vrel
u_UA%Re = Re
! calculated in m%FVW%u_UA??? :u_UA%UserProp = 0.0_ReKi ! FIX ME

u_UA%v_ac(1) = sin(u_UA%alpha)*u_UA%U
u_UA%v_ac(2) = cos(u_UA%alpha)*u_UA%U
! calculated in m%FVW%u_UA??? : u_UA%omega = dot_product( u%rotors(iR)%BladeMotion(k)%RotationVel( :,j), m%rotors(iR)%WithoutSweepPitchTwist(3,:,j,k) ) ! rotation of no-sweep-pitch coordinate system around z of the jth node in the kth blade
call UA_CalcOutput(j, 1, t, u_UA, m%FVW%W(iW)%p_UA, x%FVW%UA(iW), xd%FVW%UA(iW), OtherState%FVW%UA(iW), p%AFI(p%FVW%W(iW)%AFindx(j,1)), m%FVW%W(iW)%y_UA, m%FVW%W(iW)%m_UA, errStat2, errMsg2 )
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'SetOutputsFromFVW')
call SetErrStat(ErrStat2, ErrMsg2, ErrStat, ErrMsg, 'SetOutputsFromFVW')
Cl_dyn = m%FVW%W(iW)%y_UA%Cl
Cd_dyn = m%FVW%W(iW)%y_UA%Cd
Cm_dyn = m%FVW%W(iW)%y_UA%Cm
Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AirfoilInfo.f90
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ SUBROUTINE ReadAFfile ( InitInp, NumCoefsIn, p, ErrStat, ErrMsg, UnEc )
sLine = FileInfo%Lines(CurLine)
call Conv2UC(sLine) ! to uppercase
if (index(sLine, 'RELTHICKNESS')>1) then
CALL ParseVarWDefault ( FileInfo, CurLine, 'RelThickness', p%RelThickness, 0.2, ErrStat2, ErrMsg2, UnEc )
CALL ParseVarWDefault ( FileInfo, CurLine, 'RelThickness', p%RelThickness, 0.2_ReKi, ErrStat2, ErrMsg2, UnEc )
CALL SetErrStat( ErrStat2, ErrMsg2, ErrStat, ErrMsg, RoutineName )
else
p%RelThickness=-1 ! To trigger an error
Expand Down
2 changes: 1 addition & 1 deletion reg_tests/r-test
Submodule r-test updated 0 files

0 comments on commit 3256c25

Please sign in to comment.