Skip to content

Commit

Permalink
AD: adding PsiBwd/Fwd with doc changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Emmanuel Branlard committed May 6, 2024
1 parent c23aea4 commit be84c59
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 11 deletions.
6 changes: 4 additions & 2 deletions docs/source/user/aerodyn/examples/ad_primary_example.dat
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,10 @@ True TIDrag - Include the drag term in the tangential-induc
100 MaxIter - Maximum number of iteration steps (-) [unused when WakeMod=0]
--- Shear correction
False SectAvg - Use sector averaging (flag)
1 SectAvgWeighting - Weighting function for sector average {1=Uniform} within a sector centered on the blade (switch) [used only when SectAvg=True]
5 SectAvgNPoints - Number of points per sectors (-) [used only when SectAvg=True]
1 SectAvgWeighting - Weighting function for sector average {1=Uniform, default=1} within a sector centered on the blade (switch) [used only when SectAvg=True]
5 SectAvgNPoints - Number of points per sectors (-) {default=5} [used only when SectAvg=True]
-60 SectAvgPsiBwd - Backward azimuth relative to blade where the sector starts (<=0) {default=-60} (deg) [used only when SectAvg=True]
60 SectAvgPsiFwd - Forward azimuth relative to blade where the sector ends (>=0) {default=60} (deg) [used only when SectAvg=True]
--- Dynamic wake/inflow
2 DBEMT_Mod - Type of dynamic BEMT (DBEMT) model {0=No Dynamic Wake, -1=Frozen Wake for linearization, 1:constant tau1, 2=time-dependent tau1, 3=constant tau1 with continuous formulation} (-)
20 tau1_const - Time constant for DBEMT (s) [used only when DBEMT_Mod=1 or 3]
Expand Down
18 changes: 13 additions & 5 deletions docs/source/user/aerodyn/input.rst
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,8 @@ The following inputs in this section are only used when ``WakeMod = 1``.
- ``Skew_Mod=0`` means no skew model at all (not recommended)
- ``Skew_Mod=-1`` throws away non-normal component (for linearization). This setting makes sure the wind speed is always normal to the rotor to limit periodic variation of the wind speed if the rotor is not perpendicular to the wind (e.g. tower top tilting or tilt). This is mostly needed for linearization.

Currently (``Skew_Mod=0``) or (``Skew_Mod=1`` and ``SkewModCorr=False`` and ``SkewRedistr_Mod = 0``) are the same, both set of inputs turn off the skew correction entirely.

.. note::
Link to old inputs: Previous implementations always had the skew model on. `Skew_Mod=-1` replaces the old `SkewMod=0` (an option that few users were using).

Expand Down Expand Up @@ -253,16 +255,22 @@ Shear corrections
~~~~~~~~~~~~~~~~~

The BEM algorithm may need to be corrected to account for shear.
Currently, a sector average correction is implemented, as a beta feature, to limit fluctuations associtated with variations of wind speed as the blade rotates.
Currently, a sector average correction is implemented, as a beta feature, to limit fluctuations associated with variations of wind speed as the blade rotates.

The feature will be documented at a later time.
The feature will be documented at a later time and is still at an experimental stage.

**SectAvg** Use Sector Averaging (flag)
**SectAvg** Use Sector Averaging (flag).
The method uses sectors expanding forward and backward relative to the current azimuth of the blade (see ``SectAvgPsiBwd`` and ``SectAvgPsiFwd``).
The velocity is averaged within this sector by attributing different weighting at different points in the sector (see ``SectAvgWeighting``).

**SectAvgWeighting** Weighting function for sector average.
1=Uniform within a sector centered on the blade (switch) [used only when ``SectAvg=True``]
1=Uniform (switch) [used only when ``SectAvg=True``]. Default is 1.

**SectAvgNPoints** Number of points per sectors (-) [used only when ``SectAvg=True``]. Default is 5.

**SectAvgPsiBwd** Backward azimuth (in degrees) relative to the blade azimuth where the sector starts. Must be negative. [used only when SectAvg=True]. Default is -60 deg.

**SectAvgNPoints** Number of points per sectors (-) [used only when ``SectAvg=True``]
**SectAvgPsiFwd** Forward azimuth (in degrees) relative to the blade azimuth where the sector ends. Must be positive. [used only when SectAvg=True]. Default is 60 deg.



Expand Down
6 changes: 4 additions & 2 deletions modules/aerodyn/src/AeroDyn_IO.f90
Original file line number Diff line number Diff line change
Expand Up @@ -852,8 +852,10 @@ SUBROUTINE ParsePrimaryFileInfo( PriPath, InitInp, InputFile, RootName, NumBlade
call WrScr(' Setting SectAvg to False as the input is Missing (legacy behavior).')
InputFileData%SectAvg = .false.
else
call ParseVar( FileInfo_In, CurLine, "SectAvgWeighting", InputFileData%SA_Weighting, ErrStat2, ErrMsg2, UnEc ); if (Failed()) return
call ParseVar( FileInfo_In, CurLine, "SectAvgNPoints" , InputFileData%SA_nPerSec, ErrStat2, ErrMsg2, UnEc ); if (Failed()) return
call ParseVarWDefault( FileInfo_In, CurLine, "SectAvgWeighting", InputFileData%SA_Weighting, 1 , ErrStat2, ErrMsg2, UnEc ); if (Failed()) return
call ParseVarWDefault( FileInfo_In, CurLine, "SectAvgNPoints" , InputFileData%SA_nPerSec, 5 , ErrStat2, ErrMsg2, UnEc ); if (Failed()) return
call ParseVarWDefault( FileInfo_In, CurLine, "SectAvgPsiBwd" , InputFileData%SA_PsiBwd, -60._ReKi, ErrStat2, ErrMsg2, UnEc ); if (Failed()) return
call ParseVarWDefault( FileInfo_In, CurLine, "SectAvgPsiFwd" , InputFileData%SA_PsiFwd, 60._ReKi, ErrStat2, ErrMsg2, UnEc ); if (Failed()) return
call ParseCom (FileInfo_in, CurLine, sDummy, errStat2, errMsg2, UnEc, isLegalComment); if (Failed()) return
endif

Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn_Registry.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ typedef ^ AD_InputFile Logical SectAvg - - False "Use Sector average for BEM inf
typedef ^ ^ IntKi SA_Weighting - - 1 "Sector Average - Weighting function for sector average {1=Uniform, 2=Impulse, } within a 360/nB sector centered on the blade (switch) [used only when SectAvg=True]" -
typedef ^ ^ ReKi SA_PsiBwd - -60 - "Sector Average - Backard Azimuth (<0)" deg
typedef ^ ^ ReKi SA_PsiFwd - 60 - "Sector Average - Forward Azimuth (>0)" deg
typedef ^ ^ IntKi SA_nPerSec - 11 - "Sector average - Number of points per sectors (-) [used only when SectAvg=True]" -
typedef ^ ^ IntKi SA_nPerSec - 5 - "Sector average - Number of points per sectors (-) [used only when SectAvg=True]" -
typedef ^ ^ LOGICAL AoA34 - - - "Sample the angle of attack (AoA) at the 3/4 chord or the AC point {default=True} [always used]" -
typedef ^ ^ IntKi UAMod - - - "Unsteady Aero Model Switch (switch) {0=Quasi-steady (no UA), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minnema/Pierce variant (changes in Cc and Cm)}" -
typedef ^ AD_InputFile LOGICAL 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 [used only when AFAeroMod=2]" flag
Expand Down
2 changes: 1 addition & 1 deletion modules/aerodyn/src/AeroDyn_Types.f90
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ MODULE AeroDyn_Types
INTEGER(IntKi) :: SA_Weighting = 0_IntKi !< Sector Average - Weighting function for sector average {1=Uniform, 2=Impulse, } within a 360/nB sector centered on the blade (switch) [used only when SectAvg=True] [-]
REAL(ReKi) :: SA_PsiBwd = -60 !< Sector Average - Backard Azimuth (<0) [deg]
REAL(ReKi) :: SA_PsiFwd = 60 !< Sector Average - Forward Azimuth (>0) [deg]
INTEGER(IntKi) :: SA_nPerSec = 11 !< Sector average - Number of points per sectors (-) [used only when SectAvg=True] [-]
INTEGER(IntKi) :: SA_nPerSec = 5 !< Sector average - Number of points per sectors (-) [used only when SectAvg=True] [-]
LOGICAL :: AoA34 = .false. !< Sample the angle of attack (AoA) at the 3/4 chord or the AC point {default=True} [always used] [-]
INTEGER(IntKi) :: UAMod = 0_IntKi !< Unsteady Aero Model Switch (switch) {0=Quasi-steady (no UA), 2=Gonzalez's variant (changes in Cn,Cc,Cm), 3=Minnema/Pierce variant (changes in Cc and Cm)} [-]
LOGICAL :: FLookup = .false. !< 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 [used only when AFAeroMod=2] [flag]
Expand Down

0 comments on commit be84c59

Please sign in to comment.