Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
8516a85
Optimize GridInterp tensor-product cubic interpolation
luwang00 Jul 31, 2026
02d9321
AeroDyn/OLAF Registry: add xPts/yPts/zPts and list-file fields to Gri…
RBergua Jul 31, 2026
1463748
AeroDyn/OLAF: parse a number or quoted filename in ReadGridOut
RBergua Jul 31, 2026
1ae7890
AeroDyn/OLAF: call ResolveGridAxis in FVW_ReadInputFile and require G…
RBergua Jul 31, 2026
aa525a0
AeroDyn/OLAF: New ResolveGridAxis for list-based or range
RBergua Jul 31, 2026
9b7ff6d
GridInterp.f90: removed now unused iteration counter i in some subrou…
luwang00 Jul 31, 2026
11a7162
AeroDyn/OLAF: export grid velocity as RectilinearGrid (list-based) or…
RBergua Jul 31, 2026
231c6ea
FVW_IO.f90: trim trailing whitespace
RBergua Jul 31, 2026
b204b29
AeroDyn/OLAF: use resolved xPts/yPts/zPts in SetRequestedWindPoints
RBergua Jul 31, 2026
ea53472
AeroDyn/OLAF: use resolved xPts/yPts/zPts in InducedVelocitiesAll_OnGrid
RBergua Jul 31, 2026
edb2fc0
FVW_Subs.f90: trim trailing whitespace
RBergua Jul 31, 2026
fd51a0b
Merge pull request #3413 from luwang00/GridInterpOpt
andrew-platt Jul 31, 2026
fdab91b
FVW_Types.f90: updated FVW registry outputs
RBergua Jul 31, 2026
242241e
AeroDyn/OLAF: fix ResolveGridAxis call (5 arguments)
RBergua Jul 31, 2026
7244c06
AeroDyn/OLAF docs: document non-equidistant grid output (list-file)
RBergua Jul 31, 2026
4fcd5a1
AeroDyn/OLAF: make error reporting explicit in ResolveGridAxis and gu…
RBergua Aug 1, 2026
37ea967
Increased length for console output
RBergua Aug 3, 2026
16a5cd4
Delete trailing whitespaces
RBergua Aug 3, 2026
1a2c30f
Refactor console output length limits
RBergua Aug 4, 2026
0718c22
Updated the .gitignore for vscode containers / workspaces
andrew-platt Jul 31, 2026
096e5c8
Merge pull request #3420 from andrew-platt/f/update_gitignore_vscode
andrew-platt Aug 5, 2026
1db891b
typo in description
andrew-platt Aug 5, 2026
588a023
Missing files for console output length limits
RBergua Aug 5, 2026
603af2b
Merge pull request #3419 from RBergua/console_print
andrew-platt Aug 5, 2026
454f94e
Merge pull request #3414 from RBergua/OLAF_nGridOut
andrew-platt Aug 5, 2026
00d4699
Fix #3421: Guard DT_mooring validation with mooring enabled check
andrew-platt Aug 6, 2026
92c1ac3
fix bug in bldprcnt following issue #3416
ptrbortolotti Aug 10, 2026
970d5c5
missed a parenthesis
ptrbortolotti Aug 10, 2026
37dcc8a
Potential fix for pull request finding
ptrbortolotti Aug 11, 2026
6ac408c
Merge pull request #3424 from ptrbortolotti/bldprcnt
andrew-platt Aug 11, 2026
7ecaa0e
Merge pull request #3422 from andrew-platt/b/FF_DT_mooring_check
andrew-platt Aug 11, 2026
add13f5
Update r-test pointer after merge there
andrew-platt Aug 12, 2026
2942295
Fix InflowWind Grid3D cubic velocity interpolation NaN bug
andrew-platt Aug 12, 2026
c49fdbf
Update ifw_boxexceed results for acceleration
andrew-platt Aug 12, 2026
cada939
Merge remote-tracking branch 'OpenFAST/rc-5.0.1' into bugfix/ifw-grid…
andrew-platt Aug 12, 2026
4567015
Fix InflowWind Grid3D cubic velocity interpolation NaN bug
andrew-platt Aug 12, 2026
ec7f4c4
Merge remote-tracking branch 'origin/bugfix/ifw-grid3d-cubic-interp-n…
andrew-platt Aug 12, 2026
56bd27b
Fix Grid3D tower acceleration guard using wrong variable (NTGrids vs …
andrew-platt Aug 13, 2026
7f2d1ea
Update several MHK regression tests that had incorrect accelerations …
andrew-platt Aug 13, 2026
679c834
Merge pull request #3428 from andrew-platt/bugfix/ifw-grid3d-cubic-in…
andrew-platt Aug 13, 2026
53f11d8
Found and fixed a type cast missing in FAST_writer.py
jcvem Aug 17, 2026
aa45fd8
Merge remote-tracking branch 'OpenFAST/rc-5.0.1' into m/rc501_dev
andrew-platt Aug 17, 2026
36e6115
Fix GitHub Copilot identified issues in rc-5.0.1 cross-merge
andrew-platt Aug 17, 2026
fedc284
Fix GitHub Copilot identified issues in rc-5.0.1 cross-merge
andrew-platt Aug 17, 2026
fb960d8
Apply GitHub Copilot PR review suggestions
andrew-platt Aug 17, 2026
74b2e4d
Merge pull request #3435 from jcvem/jcvem-PR
andrew-platt Aug 18, 2026
d7efb44
Merge pull request #3433 from andrew-platt/b/MiscBugsFromCrossMerge
andrew-platt Aug 18, 2026
dda62d2
Merge remote-tracking branch 'OpenFAST/rc-5.0.1' into m/rc501_dev
andrew-platt Aug 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,8 @@ varcache
# Python cache files
openfast_io/dist/
openfast_io/openfast_io/_version.py

# docker with VScode config
*.code-workspace
docker-compose.yml
.devcontainer/
53 changes: 53 additions & 0 deletions docs/source/user/aerodyn-olaf/InputFiles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,59 @@ of a box of shape 5x20x30 and dimension 1200x300x295. The grid contains both th
The two other grids are vertical and horizontal planes containing only the velocity.


Non-equidistant grid points
~~~~~~~~~~~~~~~~~~~~~~~~~~~

By default, grid points along each axis (X, Y, Z) are equidistant, defined by
the ``Start``, ``End``, and ``n`` columns of the grid output table.

Alternatively, a ``Start`` cell can be given as a quoted filename instead of a
number. In that case, the corresponding axis uses an explicit, user-defined
list of coordinates read from that file, and the ``End``/``n`` columns for
that axis are ignored.

This choice is made independently for each axis, so a single grid can mix
equidistant and list-defined axes (e.g., equidistant in X and Z, list-defined
in Y), and a filename can be given for ``XStart``, ``YStart``, ``ZStart``, or
any combination of the three.

The referenced file must:

- contain exactly one coordinate value per line,
- list values in strictly ascending order (no duplicates),
- contain no comments or blank lines,
- be located in the same directory as the main OLAF input file.

Example, requesting a non-equidistant Y-axis::

GridName GridType TStart TEnd DTOut XStart XEnd nX YStart YEnd nY ZStart ZEnd nZ
(-) (-) (s) (s) (s) (m) (m) (-) (m) (m) (-) (m) (m) (-)
"Yline" 1 default default default 90 90 1 "Ypoints.dat" - - 100 100 1

with ``Ypoints.dat`` (located next to the OLAF input file) containing::

-125
-100
-75
-50
-37.5
-25
-12.5
0
12.5
25
37.5
50
75
100
125

.. note::
Vorticity output (``GridType=2``) requires equidistant spacing
and is not available for a grid that uses a list-defined axis.
Use ``GridType=1`` (velocity only) for such grids.


Advanced Options
~~~~~~~~~~~~~~~~

Expand Down
8 changes: 6 additions & 2 deletions glue-codes/fast-farm/src/FAST_Farm_IO.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1047,6 +1047,7 @@ SUBROUTINE Farm_ValidateInput( p, WD_InitInp, AWAE_InitInp, ErrStat, ErrMsg )
CHARACTER(*), PARAMETER :: RoutineName = 'Farm_ValidateInput'
INTEGER(IntKi) :: n_disDT_dt
character(60) :: tmpStr
logical :: file_exists ! Flag for file existence check

ErrStat = ErrID_None
ErrMsg = ""
Expand All @@ -1066,8 +1067,11 @@ SUBROUTINE Farm_ValidateInput( p, WD_InitInp, AWAE_InitInp, ErrStat, ErrMsg )
! TODO : Verify that the DLL file exists

! --- SHARED MOORING SYSTEM ---
! TODO : Verify that p%MD_FileName file exists
if ((p%DT_mooring <= 0.0_ReKi) .or. (p%DT_mooring > p%DT_high)) CALL SetErrStat(ErrID_Fatal,'DT_mooring must be greater than zero and no greater than dt_high.',ErrStat,ErrMsg,RoutineName)
if (p%MooringMod == 3) then
inquire(file=trim(p%MD_FileName), exist=file_exists)
if (.not. file_exists) call SetErrStat(ErrID_Fatal,'Cannot find MoorDyn input file '//trim(p%MD_FileName),ErrStat,ErrMsg,RoutineName)
if ((p%DT_mooring <= 0.0_ReKi) .or. (p%DT_mooring > p%DT_high)) CALL SetErrStat(ErrID_Fatal,'DT_mooring must be greater than zero and no greater than dt_high.',ErrStat,ErrMsg,RoutineName)
end if

! --- AMBIENT WIND: INFLOWWIND MODULE --- [used only for Mod_AmbWind=2 or 3] ---
! FIXME: this really should be checked with the turbine specific size diameter -- maybe relocate this check to AWAE or in FF after initializing all turbines?
Expand Down
20 changes: 18 additions & 2 deletions modules/aerodyn/src/AeroAcoustics.f90
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ subroutine SetParameters( InitInp, InputFileData, p, AFInfo, ErrStat, ErrMsg )
character(*), parameter :: RoutineName = 'SetParameters'
REAL(ReKi) :: val1,val10,f2,f4, dist1, dist10
REAL(ReKi) :: BladeSpanUsedForNoise
REAL(ReKi) :: LastElemPct

! Initialize variables for this routine
ErrStat = ErrID_None
Expand Down Expand Up @@ -271,15 +272,30 @@ subroutine SetParameters( InitInp, InputFileData, p, AFInfo, ErrStat, ErrMsg )
p%BlSpn = InitInp%BlSpn
p%BlChord = InitInp%BlChord

p%startnode = max(1, p%NumBlNds - 1)
! Calculate last element size as percentage of blade span
IF (p%NumBlNds > 1) THEN
LastElemPct = 100.0 * (p%BlSpn(p%NumBlNds,1) - p%BlSpn(p%NumBlNds-1,1)) / p%BlSpn(p%NumBlNds,1)
ELSE
LastElemPct = 100.0 ! Single node means element spans entire blade
ENDIF

IF (InputFileData%AA_Bl_Prcntge .lt. LastElemPct) THEN
CALL SetErrStat(ErrID_Warn, 'BldPrcnt is smaller than the last blade element size. '// &
'OpenFAST will move on assuming the last blade element, which is the minimum blade span used for noise calculations. '// &
'Either increase BldPrcnt in your aeroacoustic input file '// &
'or refine the aerodynamic mesh in your blade AeroDyn input file.', ErrStat2, ErrMsg2, RoutineName )
if(Failed()) return
endif

p%startnode = min(p%NumBlNds, 2)
BladeSpanUsedForNoise = p%BlSpn(p%NumBlNds,1)*(1.0 - InputFileData%AA_Bl_Prcntge/100.0)
do j=p%NumBlNds-1,2,-1
IF ( p%BlSpn(j,1) .lt. BladeSpanUsedForNoise )THEN
p%startnode=j
exit ! exit the loop
endif
enddo
p%startnode = max(min(p%NumBlNds,2),p%startnode)


p%BlElemSpn = 0;
DO I = 1,p%numBlades
Expand Down
Loading
Loading