Skip to content

Commit 47f153c

Browse files
authored
Merge pull request #2937 from andrew-platt/b/FF_docs_issue1822
Docs update recomendations from issue #1822
2 parents d722005 + db6e2bf commit 47f153c

File tree

3 files changed

+41
-20
lines changed

3 files changed

+41
-20
lines changed

docs/source/user/fast.farm/InputFiles.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,12 @@ low-resolution ambient wind data files must be named
167167
*Amb.t<n*\ :sub:`low`\ *>.vtk* and stored in a subdirectory named
168168
*Low*. In the file names, *<n*\ :sub:`low`\ *>* is an integer
169169
(without leading zeros) between *0* (at :math:`t=0`) and *N-1*, where
170-
:math:`N=FLOOR\left( \frac{TMax}{DT_\text{Low}} \right)+1` is the number
170+
:math:`N=FLOOR\left( \frac{\textbf{TMax}}{\textbf{DT_Low}} \right)+1` is the number
171171
of low-resolution time steps. The high-resolution ambient wind data
172172
files must be named *Amb.t<n*\ :sub:`high`\ *>.vtk*, where
173173
*<n*\ :sub:`high`\ *>* is an integer (without leading zeros)
174174
between 0 (at :math:`t=0`) and
175-
:math:`\frac{DT_\text{Low}}{DT\_High}\left( N-1 \right)`. The files must
175+
:math:`\frac{\textbf{DT_Low}}{\textbf{DT_High}}\left( N-1 \right)`. The files must
176176
be stored in a subdirectory named *HighT<n*\ :sub:`t`\ *>*, where
177177
*<n*\ :sub:`t`\ *>* is an integer (without leading zeros) between 1 and
178178
the total number of wind turbines (**NumTurbines**). Subdirectory
@@ -199,7 +199,7 @@ a prior simulation. If set to TRUE, FAST.Farm will check to ensure that:
199199
wind turbines. If there are more subdirectories, only the first
200200
**NumTurbines** will be used. If more files are in each subdirectory,
201201
only the first
202-
:math:`\frac{DT_\text{Low}}{DT\_High}\left( N-1 \right)+1` will be
202+
:math:`\frac{\textbf{DT_Low}}{\textbf{DT_High}}\left( N-1 \right)+1` will be
203203
used.
204204

205205
- The spatial resolution (number of grid points, origin, and spacing)
@@ -229,7 +229,7 @@ choose to use a time step that is an integer multiple smaller than or
229229
equal to **DT_Low**.
230230
When **Wake_Mod=2,3**, the stability of the algorithm will depend on the choice
231231
of **dr** and **DT_Low**.
232-
(typically :math:`DT_Low<dr/(2V_\text{Hub})`,
232+
(typically :math:`\textbf{DT_Low}<\textbf{dr}/(2V_\text{Hub})`,
233233
see :numref:`FF:ModGuidance`)
234234

235235

@@ -562,17 +562,17 @@ the wake meandering and must be greater than or equal to one. If the
562562
DEFAULT keyword is specified in place of a numerical value,
563563
**C_Meander** is set to :math:`1.9`.
564564

565-
*----------------Curled wake parameters------------------*
566-
567565

566+
Curled wake parameters
567+
~~~~~~~~~~~~~~~~~~~~~~
568568

569569
**Swirl** [switch]
570570
Include swirl velocities in wake [only used if [**Mod_Wake=2**]
571571
or [**Mod_Wake=3**].
572572

573573
**k_VortexDecay** [-] This constant specifies the decay rate of the
574574
spanwise velocity components from the curled wake model.
575-
DEFAULT is 0.0001.
575+
DEFAULT is 0.0.
576576

577577
**NumVortices** [-] The number of vortices in the curled wake model.
578578
DEFAULT is 100.

docs/source/user/fast.farm/ModelGuidance.rst

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ domain discretization criteria, discussed in :numref:`FF:sec:DiscRecs`.
166166

167167
Additional wake dynamics quantities are needed when specifying the FAST.Farm
168168
input file, as discussed further in :numref:`FF:wake-dynamics-parameters`.
169-
It is recommended to base **dr** on :math:`c_\text{max}`;
169+
It is recommended to set **dr** to :math:`\le D^\text{Rotor} / 15`;
170170
**NumRadii** on wake diameter and **dr**; and **NumPlanes** on **DT_Low**,
171171
inflow hub-height velocity, and the distance between turbine locations.
172172

@@ -515,8 +515,16 @@ time steps. Note that :math:`D^\text{Wake}` can be approximated as
515515

516516
When **Wake_Mod=2,3**, for numerical stability, it is recommended to set the time step with a value that (approximately) satisfies the following guideline (see Equation 20 of the following `paper <https://doi.org/10.5194/wes-6-555-2021>`__):
517517

518+
.. only:: html
519+
520+
.. math::
521+
\textbf{DT_Low} \lessapprox \frac{dr}{2 V_\text{Hub}}
522+
523+
524+
.. only:: not html
525+
518526
.. math::
519-
DT_Low \lessapprox \frac{dr}{2 V_\text{Hub}}
527+
\textbf{DT\_Low} \lessapprox \frac{dr}{2 V_\text{Hub}}
520528
521529
522530
Spatial discretization convergence was assessed in the same manner as
@@ -531,16 +539,27 @@ denominator has the units [m/s]:
531539

532540
.. math::
533541
\textbf{DS_Low} \le
534-
\frac{C_\text{Meander}D^\text{Wake}V_\text{Hub}}{150 m/s}
535-
= \frac{\textbf{DT_Low}V_\text{Hub}^2}{15 m/s}
542+
\frac{C_\text{Meander}D^\text{Wake}V_\text{Hub}}{150~\text{m/s}} =
543+
\begin{cases}
544+
\frac{\textbf{DT_Low}V_\text{Hub}^2}{15~\text{m/s}}
545+
& \qquad \text{for polar wake model} \\[0.5em]
546+
\frac{C_\text{Meander}\textbf{DT_Low}V_\text{Hub}^2}{5~\text{m/s}}
547+
& \qquad \text{for curled wake model}
548+
\end{cases}
549+
536550
537551
538552
.. only:: not html
539553

540554
.. math::
541555
\textbf{DS\_Low} \le
542-
\frac{C_\text{Meander}D^\text{Wake}V_\text{Hub}}{150 m/s}
543-
= \frac{\textbf{DT\_Low}V_\text{Hub}^2}{15 m/s}
556+
\frac{C_\text{Meander}D^\text{Wake}V_\text{Hub}}{150~\text{m/s}} =
557+
\begin{cases}
558+
\frac{\textbf{DT\_Low}V_\text{Hub}^2}{15~\text{m/s}}
559+
& \qquad \text{for polar wake model} \\[0.5em]
560+
\frac{C_\text{Meander}\textbf{DT\_Low}V_\text{Hub}^2}{5~\text{m/s}}
561+
& \qquad \text{for curled wake model}
562+
\end{cases}
544563
545564
546565
For all synthetic turbulence methods, it is recommended that
@@ -816,12 +835,14 @@ parameters:
816835
suggested:
817836

818837
.. math::
819-
\textbf{dr} \le c_\text{max}
838+
\textbf{dr} \le D^\text{Rotor} / 15
820839
821-
When **Wake_Mod=2,3**, for numerical stability, it is recommended to set the spacing with a value that (approximately) satisfies the following guideline (see Equation 20 of the following `paper <https://doi.org/10.5194/wes-6-555-2021>`__):
840+
When **Wake_Mod=2,3**, for numerical stability, it is recommended to set the
841+
spacing with a value that (approximately) satisfies the following guideline (see
842+
Equation 20 of the following `paper <https://doi.org/10.5194/wes-6-555-2021>`__):
822843

823844
.. math::
824-
\textbf{dr} < \frac{D}{10}
845+
\textbf{dr} \le D^\text{Rotor} / 15
825846
826847
827848

glue-codes/fast-farm/src/FAST_Farm_IO.f90

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ SUBROUTINE Farm_ReadPrimaryFile( InputFile, p, WD_InitInp, AWAE_InitInp, OutList
816816
!----------------------- CURL WAKE PARAMETERS ------------------------------------------
817817
CALL ReadCom ( UnIn, InputFile, "Section Header: Curl wake parameters", ErrStat2, ErrMsg2, UnEc ); if(failed()) return
818818
CALL ReadVarWDefault( UnIn, InputFile, WD_InitInp%Swirl , "Swirl", "Swirl switch", .True., ErrStat2, ErrMsg2, UnEc); if(failed()) return
819-
CALL ReadVarWDefault( UnIn, InputFile, WD_InitInp%k_VortexDecay, "k_VortexDecay", "Vortex decay constant", 0.0001, ErrStat2, ErrMsg2, UnEc); if(failed()) return
819+
CALL ReadVarWDefault( UnIn, InputFile, WD_InitInp%k_VortexDecay, "k_VortexDecay", "Vortex decay constant", 0.0, ErrStat2, ErrMsg2, UnEc); if(failed()) return
820820
CALL ReadVarWDefault( UnIn, InputFile, WD_InitInp%NumVortices, "NumVortices", "Number of vortices in the curled wake", 100, ErrStat2, ErrMsg2, UnEc); if(failed()) return
821821
CALL ReadVarWDefault( UnIn, InputFile, WD_InitInp%sigma_D, "sigma_D", "Gaussian vortex width", 0.2, ErrStat2, ErrMsg2, UnEc); if(failed()) return
822822
CALL ReadVarWDefault( UnIn, InputFile, WD_InitInp%FilterInit, "FilterInit", "Filter Init", 1 , ErrStat2, ErrMsg2, UnEc); if(failed()) return
@@ -1026,9 +1026,9 @@ SUBROUTINE Farm_ValidateInput( p, WD_InitInp, AWAE_InitInp, ErrStat, ErrMsg )
10261026
IF (WD_InitInp%NumRadii < 2) CALL SetErrStat(ErrID_Fatal,'NumRadii (number of radii) must be at least 2.',ErrStat,ErrMsg,RoutineName)
10271027
IF (WD_InitInp%NumPlanes < 2) CALL SetErrStat(ErrID_Fatal,'NumPlanes (number of wake planes) must be at least 2.',ErrStat,ErrMsg,RoutineName)
10281028

1029-
IF (WD_InitInp%k_VortexDecay < 0.0_ReKi) CALL SetErrStat(ErrID_Fatal,'k_VortexDecay needs to be postive',ErrStat,ErrMsg,RoutineName)
1030-
IF (WD_InitInp%NumVortices < 2) CALL SetErrStat(ErrID_Fatal,'NumVorticies needs to be greater than 1',ErrStat,ErrMsg,RoutineName)
1031-
IF (WD_InitInp%sigma_D < 0.0_ReKi) CALL SetErrStat(ErrID_Fatal,'sigma_D needs to be postive',ErrStat,ErrMsg,RoutineName)
1029+
IF (WD_InitInp%k_VortexDecay < 0.0_ReKi) CALL SetErrStat(ErrID_Fatal,'k_VortexDecay must be >= 0',ErrStat,ErrMsg,RoutineName)
1030+
IF (WD_InitInp%NumVortices < 2) CALL SetErrStat(ErrID_Fatal,'NumVorticies must be greater than 1',ErrStat,ErrMsg,RoutineName)
1031+
IF (WD_InitInp%sigma_D < 0.0_ReKi) CALL SetErrStat(ErrID_Fatal,'sigma_D must be postive',ErrStat,ErrMsg,RoutineName)
10321032
IF (WD_InitInp%f_c <= 0.0_ReKi) CALL SetErrStat(ErrID_Fatal,'f_c (cut-off [corner] frequency) must be more than 0 Hz.',ErrStat,ErrMsg,RoutineName)
10331033
IF (WD_InitInp%C_NearWake <= 1.0_Reki) CALL SetErrStat(ErrID_Fatal,'C_NearWake parameter must be greater than 1.',ErrStat,ErrMsg,RoutineName)
10341034
IF (WD_InitInp%k_vCurl < 0.0_Reki) CALL SetErrStat(ErrID_Fatal,'k_vCurl parameter must not be negative.',ErrStat,ErrMsg,RoutineName)

0 commit comments

Comments
 (0)