Error: FF wind array was exhausted

With FAST version 8, usin the turbine model (test_22) “NREL 5.0 MW Baseline Wind Turbine with ITI Barge” when i run the simulation i have this error message:

Error using Run_Baseline (line 35)
Error reported by S-function ‘FAST_SFunc’ in ‘Sta_saludable/FAST Nonlinear Wind Turbine/S-Function’:
FAST_Solution:CalcOutputs_And_SolveForInputs:SolveOption2:AD_CalcOutput:IfW_CalcOutput:CalculateOutput:IfW_FFWind:CalcOutput [position=(0, 0, 90)]:
Error: FF wind array was exhausted at 66.062 seconds (trying to access data at 72.104 seconds).

Which can be the reason of this error? Im using the same wind that i use with the test_21 and i never had problems.

Regards,
Christian Tutivèn

Dear Christian,

It looks like you’ve extended the length of the Test 22 simulation. The FAST CertTest only provides sample input; the wind files in particularly were purposely made very short to reduce the size of the FAST archive. You should run TurbSim to generate the turbulent wind data that you need for your own use: nwtc.nrel.gov/TurbSim.

Best regards,

Hi Jason,

I am trying to run FAST for 700 sec and it keeps giving me this error.

FWind_CalcOutput [position=<NaN, NaN, NaN> in wind-file coordinate]:
Error: FF wind array was exhausted at 508.85 seconds (trying to access data at NaN seconds).

I generated wind file with Turbsim for 700 sec (AnalysisTime and UsableTime both 700 sec) and used it in my FAST input but I dont know why it still gives me error?

It is interesting that for PropogationDir =120 degrees it gives error, while for other values of PropogationDir (0 , 30 , 60, 90, 150) it runs without errors.

I am trying to run FAST for different wind directions.

Thank you very much for your invaluable support.

Best Regards,

Arash Hemmati,
Error.jpg

Dear Arash,

My guess is that the problem is not with the wind file, but that your model is going numerically unstable for some reason. Are you getting a warning about a “small angle approximation violation” before this error?

Without knowing more about your simulation settings, it’s hard to know that what the problem is. Please use “Search…” in the upper right of the forum to search for “unstable” to see how others have solved similar problems in the past.

Best regards,

Hi, All -

I wanted to post a similar issue I am having with FF wind array exhausted at a seemingly random time in the simulation. I have triple-checked the grid, and I cannot see how the turbine could violate the grid boundaries. I have also checked several of the output parameters to identify if I’m getting resonance or if the model appears to be going unstable. Unless the instability occurs instantaneously at the time this error is generated, I am not seeing it. I am running FAST8 ElastoDyn only (no BeamDyn). Any insight as to what other things I should be checking to identify the cause of this error? It’s occuring about 300s into a 620s sim.

Thanks in advance for your help.

Ryan

Edit: I should also clarify that I am running this using a very basic Simulink model for pitch control/variable speed. This is a parked load case, so pitch is fixed at 90deg and the machine is idling as expected (<1rpm). I also have the following details from the error message that were not given in the above forum post:

SolveOption2:AD14_CalcOutput/Inflow:Inflow:infdist:MATINV:gaussj: Singular matrix encountered

Dear Ryan,

If you are confident that the grid is large enough to encompass the rotor under deflection, than the only problem I can think of is numerical instability leading to large deflection. Are you getting the “small angle approximation violation” warning?

You mention that you are modeling an idling rotor, but are receiving an error from AeroDyn v14 subroutine infdist(). However, this subroutine is only used by the generalized-dynamic wake (GDW) model of AeroDyn v14 (DYNIN option). For an idling rotor, it is normally recommend to disable all wake calculations, i.e. set IndModel = NONE, which will disable GDW. Perhaps GDW is driving the model unstable for your case.

Best regards,

Dear Jason

I want to generate a wind field from TurbSim and put it in FAST.Farm, but it keeps giving me this error: “Error: FF wind array was exhausted at 2 seconds (trying to access data at -0.22222 seconds)”.

The steps I followed are :
(1) I Create a .bts file of wind field 1700m wide, 160m high, without turbulence and 18m/s at hub-height (90m), using TurbSim as following:

(2) I Put the file (Sample5MWTurbSim.bts in my case) in a folder named “Wind” and refer to it in the InflowWind.dat file of FAST.Farm:

(3) I Put the same grid size and points in FAST.Farm input file (.fstf) as the ones generated by TurbSim, and refer to InflowWind.dat in “InflowFile”:

(4) Finally, I run FAST.Farm, and it gives me the following error:

[code]


FAST.Farm

Copyright (C) 2017 National Renewable Energy Laboratory

This program is licensed under Apache License Version 2.0 and comes with ABSOLUTELY NO WARRANTY.
See the “LICENSE” file distributed with this software for details.


FAST.Farm-v1.0.0-144-g254fc1a0-dirty
Compile Info:

  • Architecture: 64 bit
  • Precision: single
    Execution Info:
  • Date: 01/21/2021
  • Time: 13:35:33+0100

Heading of the FAST.Farm input file:
Sample FAST.Farm input file
Running AWAE.
Running InflowWind.

Reading a 171x17 grid (1700 m wide, 10 m to 170 m above ground) with a characteristic wind
speed of 18 m/s. This full-field file was generated by TurbSim (v1.50, 25-Sep-2009) on
21-Jan-2021 at 12:52:42.

Processed 1945 time steps of 10-Hz full-field data (194.4 seconds).

Farm_Initialize:Farm_ValidateInput:OutFmt produces a column width of 10 instead of 14 characters.
Farm_Initialize:For efficiency, NumPlanes has been reduced to the number of time steps (51).
Farm_Initialize:InflowWind_CalcOutput:CalcOutput:IfW_TSFFWind_CalcOutput [position=(890, 0, 10)
in wind-file coordinates]: Error: FF wind array was exhausted at 2 seconds (trying to access data
at -0.22222 seconds).

a

Aborting FAST.Farm.[/code]

Can you help me with the issue ? Is it the right way to include a TurbSim file in FAST.Farm?

Kindest regards

Younes

Dear Younes,

Just a few comments:

  • The wind data is shifted when read by InflowWind. As such the FAST.Farm documentation recommends generating the full-field wind data files periodically so that the wind domain in InflowWind effectively extends forever along the wind propagation direction. This can be achieved by setting UsableTime = “ALL” in TurbSim.
  • The wind data generated by TurbSim is centered around Y=0. So, you should set Y0_Low in FAST.Farm equal to -GridWidth/2 from TurbSim and locate the turbines appropriately (likely with WT_Y near zero).
  • I would only use the TurbModel = NONE option for debugging purposes. You can define wind without turbulence more simply through WindType = 1 or 2 in InflowWind (without the need to use TurbSim).

I hope that helps.

Best regards,

Dear Jason,

I noticed that I was using old versions of TurbSim and its input files. I took the last versions by building the TurbSim.sln in the OpenFAST directory, and it works now. Thank you so much for the comments, it helped a lot and worked well also.

Kindest regards

Younes

Dear Jason,

When I used TurbSim to generate turbulent wind and used it, I encountered the following error, which I had not enc ountered before, and I also enabled
UsableTime = 'all

    Reading a 601x36 grid (3000 m wide, 2.5 m to 177.5 m above ground) with a characteristic wind
    speed of 10 m/s. This full-field file was generated by TurbSim on 20-Sep-2023 at 14:57:33.

    Processed 36608 time steps of 20-Hz grid-field data (period of 1830.4 seconds).

 Farm_Initialize:Farm_ValidateInput:OutFmt produces a column width of 10 instead of 20 characters.
 Farm_Initialize:AWAE_Init:AWAE_UpdateStates:InflowWind_CalcOutput:CalculateOutput:IfW_FlowField_Ge
 tVelAcc:Grid3DField_GetCell: Error: GF wind array was exhausted at 2 seconds (trying to access
 data at -4.44089E-16 seconds)

I have also checked my simulation area and it is within the range. It should be noted that my wind direction has been adjusted by 90 °, but there were no errors in the previous simulation. I would like to know the reason. Thank you. Here are some settings:

------- InflowWind INPUT FILE -------------------------------------------------------------------------
12 m/s turbulent winds on 31x31 FF grid and tower for FAST CertTests #18, #19, #21, #22, #23, and #24
---------------------------------------------------------------------------------------------------------------
False         Echo           - Echo input data to <RootName>.ech (flag)
          3   WindType       - switch for wind file type (1=steady; 2=uniform; 3=binary TurbSim FF; 4=binary Bladed-style FF; 5=HAWC format; 6=User defined; 7=native Bladed FF)
          90   PropagationDir - Direction of wind propagation (meteorological rotation from aligned with X (positive rotates towards -Y) -- degrees) (not used for native Bladed format WindType=7)
          0   VFlowAng       - Upflow angle (degrees) (not used for native Bladed format WindType=7)
False   	VelInterpCubic - Use cubic interpolation for velocity in time (false=linear, true=cubic) [Used with WindType=2,3,4,5,7]
          1   NWindVel       - Number of points to output the wind velocity    (0 to 9)
          0   WindVxiList    - List of coordinates in the inertial X direction (m)
          0   WindVyiList    - List of coordinates in the inertial Y direction (m)
         90   WindVziList    - List of coordinates in the inertial Z direction (m)
------- FAST.Farm for OpenFAST INPUT FILE -------------------------------------------------
Simulation with one turbine using precursor VTK
--- SIMULATION CONTROL ---
True               Echo               - Echo input data to <RootName>.ech? (flag)
FATAL              AbortLevel         - Error level when simulation should abort (string) {"WARNING", "SEVERE", "FATAL"}
1800.0               TMax               - Total run time (s) [>=0.0]
False              UseSC              - Use a super controller? (flag)
2                  Mod_AmbWind        - Ambient wind model (-) (switch) {1: high-fidelity precursor in VTK format, 2: one InflowWind module, 3: multiple instances of InflowWind module}
2                  Mod_WaveField      - Wave field handling (-) (switch) {1: use individual HydroDyn inputs without adjustment, 2: adjust wave phases based on turbine offsets from farm origin}
0                  Mod_SharedMooring  - Shared mooring system model (switch) {0: None, 3=MoorDyn}}
--- SUPER CONTROLLER --- [used only for UseSC=True]
"unused"           SC_FileName        - Name/location of the dynamic library {.dll [Windows] or .so [Linux]} containing the Super Controller algorithms (quoated string)
--- SHARED MOORING SYSTEM --- [used only for Mod_SharedMoor>0]
""                 SharedMoorFile     - Name of file containing shared mooring system input parameters (quoted string) [used only when Mod_SharedMooring > 0]
0.04	           DT_Mooring         - Time step for farm-level mooring coupling with each turbine (s) [used only when Mod_SharedMooring > 0]
--- AMBIENT WIND: PRECURSOR IN VTK FORMAT --- [used only for Mod_AmbWind=1]
3.0                DT_Low-VTK         - Time step for low -resolution wind data input files; will be used as the global FAST.Farm time step (s) [>0.0]
0.1                DT_High-VTK        - Time step for high-resolution wind data input files (s) [>0.0]
"./Inflow"         WindFilePath       - Path name to VTK wind data files from precursor (string)
False              ChkWndFiles        - Check all the ambient wind files for data consistency? (flag)
--- AMBIENT WIND: INFLOWWIND MODULE --- [used only for Mod_AmbWind=2]
2.0                DT_Low                 Time step for low -resolution wind data interpolation; will be used as the global FAST.Farm time step (s) [>0.0]
0.1                DT_High            Time step for high-resolution wind data interpolation (s) [>0.0]
301	!Orig is:  600                NX_Low             Number  of low -resolution spatial nodes in X direction for wind data interpolation (-) [>=2]
381	!!Orig is:  90                 NY_Low             Number  of low -resolution spatial nodes in Y direction for wind data interpolation (-) [>=2]
18	!!Orig is:  17                 NZ_Low             Number  of low -resolution spatial nodes in Z direction for wind data interpolation (-) [>=2]
-1500	!!Orig is:  0.0                X0_Low             Origin  of low -resolution spatial nodes in X direction for wind data interpolation (m)
-3000	!!Orig is:  -450.0             Y0_Low             Origin  of low -resolution spatial nodes in Y direction for wind data interpolation (m)
2.5	!!Orig is:  0.0                Z0_Low             Origin  of low -resolution spatial nodes in Z direction for wind data interpolation (m)
10	!!Orig is:  10.0               dX_Low             Spacing of low -resolution spatial nodes in X direction for wind data interpolation (m) [>0.0]
10	!!Orig is:  10.0               dY_Low             Spacing of low -resolution spatial nodes in Y direction for wind data interpolation (m) [>0.0]
10	!!Orig is:  10.0               dZ_Low             Spacing of low -resolution spatial nodes in Z direction for wind data interpolation (m) [>0.0]
31	!!Orig is:  100                NX_High            Number  of high-resolution spatial nodes in X direction for wind data interpolation (-) [>=2]
31	!!Orig is:  75                 NY_High            Number  of high-resolution spatial nodes in Y direction for wind data interpolation (-) [>=2]
33	!!Orig is:  80                 NZ_High            Number  of high-resolution spatial nodes in Z direction for wind data interpolation (-) [>=2]
"../offshore/AmbWind/inflow37.dat"   InflowFile         Name of file containing InflowWind module input parameters (quoted string)
--- WIND TURBINES ---
7                  NumTurbines        Number of wind turbines (-) [>=1]   [last 6 columns used only for Mod_AmbWind=2]
WT_X   WT_Y   WT_Z   WT_FASTInFile                                           X0_High    Y0_High  Z0_High  dX_High  dY_High  dZ_High
(m)    (m)    (m)    (string)                                                (m)        (m)      (m)      (m)      (m)      (m)
-444.6	393.1	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T1.fst"	-519.6	318.1	2.5	5	5	5
-86.7	130.0	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T2.fst"	-161.7	55.0	2.5	5	5	5
271.3	-133.0	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T3.fst"	196.3	-208.0	2.5	5	5	5
629.2	-396.1	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T4.fst"	554.2	-471.1	2.5	5	5	5
-658.3	-658.8	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T5.fst"	-733.3	-733.8	2.5	5	5	5
-71.9	-924.6	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T6.fst"	-146.9	-999.6	2.5	5	5	5
514.4	-1190.5	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T7.fst"	439.4	-1265.5	2.5	5	5	5

Can you help me with the issue ?

Kindest regards
Junius

Dear @Jundong.Wang,

Which version of FAST.Farm (OpenFAST version number) are you using?

Can you clarify why you’ve set Y0_Low = -3000 m when the wind turbines lie between -1190.5 to 393.1 m? Seems like a large buffer.

In general, when generating inflow for use with FAST.Farm, I would recommend using the scripts available through the Python toolbox (https://github.com/OpenFAST/python-toolbox/tree/main/pyFAST/fastfarm); although these scripts do not currently support the use of PropagationDir = 90deg in InflowWind.

Best regards,

Dear Jason,

The FAST.Farm (OpenFAST version number) i am using is FAST.Farm-v3.5.0-59-g900d12b5

The reason why I set it this way is because I need to provide space for the wind turbine wake. As I mentioned earlier, I set the wind direction to 90 ° because the minimum y-component of the position coordinate set in the simulation case is -1190.5m, and the wind blows from the y-axis positive to negative. In my understanding, I should set Y0_ Low should be less than or equal to (the minimum value of the y-component of the wind turbine coordinate+the expected wake evolution region).

Is there a problem with my thinking?
Kindest regards
Junius

Dear @Jundong.Wang,

FAST.Farm does not need a buffer upstream of downstream of the wind farm. Wakes will simply exit the low-resolution domain without impacting the solution if wakes reach a low-resolution boundary.

Best regards,

Dear Jason,

I’m glad to hear this news. I remember before, if the wake reached the boundary, there would be traces of “rebound”.

I modified the range of the low resolution area, but there was also an error.

--- AMBIENT WIND: INFLOWWIND MODULE --- [used only for Mod_AmbWind=2]
2.0                DT_Low                 Time step for low -resolution wind data interpolation; will be used as the global FAST.Farm time step (s) [>0.0]
0.1                DT_High            Time step for high-resolution wind data interpolation (s) [>0.0]
201	!Orig is:  600                NX_Low             Number  of low -resolution spatial nodes in X direction for wind data interpolation (-) [>=2]
301	!!Orig is:  90                 NY_Low             Number  of low -resolution spatial nodes in Y direction for wind data interpolation (-) [>=2]
18	!!Orig is:  17                 NZ_Low             Number  of low -resolution spatial nodes in Z direction for wind data interpolation (-) [>=2]
-1000.00	!!Orig is:  0.0                X0_Low             Origin  of low -resolution spatial nodes in X direction for wind data interpolation (m)
-2300.00	!!Orig is:  -450.0             Y0_Low             Origin  of low -resolution spatial nodes in Y direction for wind data interpolation (m)
2.50	!!Orig is:  0.0                Z0_Low             Origin  of low -resolution spatial nodes in Z direction for wind data interpolation (m)
10.00	!!Orig is:  10.0               dX_Low             Spacing of low -resolution spatial nodes in X direction for wind data interpolation (m) [>0.0]
10.00	!!Orig is:  10.0               dY_Low             Spacing of low -resolution spatial nodes in Y direction for wind data interpolation (m) [>0.0]
10.00	!!Orig is:  10.0               dZ_Low             Spacing of low -resolution spatial nodes in Z direction for wind data interpolation (m) [>0.0]
31	!!Orig is:  100                NX_High            Number  of high-resolution spatial nodes in X direction for wind data interpolation (-) [>=2]
31	!!Orig is:  75                 NY_High            Number  of high-resolution spatial nodes in Y direction for wind data interpolation (-) [>=2]
33	!!Orig is:  80                 NZ_High            Number  of high-resolution spatial nodes in Z direction for wind data interpolation (-) [>=2]
"../offshore/AmbWind/inflow37.dat"   InflowFile         Name of file containing InflowWind module input parameters (quoted string)
--- WIND TURBINES ---
7                  NumTurbines        Number of wind turbines (-) [>=1]   [last 6 columns used only for Mod_AmbWind=2]
WT_X   WT_Y   WT_Z   WT_FASTInFile                                           X0_High    Y0_High  Z0_High  dX_High  dY_High  dZ_High
(m)    (m)    (m)    (string)                                                (m)        (m)      (m)      (m)      (m)      (m)
-444.6	393.1	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T1.fst"	-519.6	318.1	2.5	5	5	5
-86.7	130.0	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T2.fst"	-161.7	55.0	2.5	5	5	5
271.3	-133.0	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T3.fst"	196.3	-208.0	2.5	5	5	5
629.2	-396.1	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T4.fst"	554.2	-471.1	2.5	5	5	5
-658.3	-658.8	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T5.fst"	-733.3	-733.8	2.5	5	5	5
-71.9	-924.6	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T6.fst"	-146.9	-999.6	2.5	5	5	5
514.4	-1190.5	0	"OpenFAST/5MW_OC4Semi_WSt_WavesWN/5MW_OC4Semi_WSt_WavesWN_T7.fst"	439.4	-1265.5	2.5	5	5	5
 FAST.Farm-v3.5.0-59-g900d12b5
 Compile Info:
  - Compiler: GCC version 9.4.0
  - Architecture: 64 bit
  - Precision: double
  - OpenMP: Yes, number of threads: 128/128
  - Date: Sep 11 2023
  - Time: 20:36:39
 Execution Info:
  - Date: 09/29/2023
  - Time: 00:51:12+0800

  Heading of the FAST.Farm input file:
    Simulation with one turbine using precursor VTK
 Running AWAE.
 Running InflowWind.

    Reading a 601x36 grid (3000 m wide, 2.5 m to 177.5 m above ground) with a characteristic wind
    speed of 10 m/s. This full-field file was generated by TurbSim on 20-Sep-2023 at 14:57:33.

    Processed 36608 time steps of 20-Hz grid-field data (period of 1830.4 seconds).

 Farm_Initialize:Farm_ValidateInput:OutFmt produces a column width of 10 instead of 20 characters.
 Farm_Initialize:AWAE_Init:AWAE_UpdateStates:InflowWind_CalcOutput:CalculateOutput:IfW_FlowField_Ge
 tVelAcc:Grid3DField_GetCell: Error: GF wind array was exhausted at 2 seconds (trying to access
 data at -4.44089E-16 seconds).

I have also used the readfile_BTS MATLAB file to view the generated bts wind file, and the scope is correct. I still don’t understand why the above error occurred. Are there any other settings that I need to troubleshoot?

Best regards,

Dear @Jundong.Wang,

The issue with rebounding wakes was a bug that was fixed a while ago.

Regarding the error you are receiving, I suspect this is related to a bug in the v3.5.0 version of FAST.Farm you are using. A similar question was asked on OpenFAST issues, which recommended compiling a more recent version, which should be included in the upcoming release of v3.5.1: https://github.com/OpenFAST/openfast/issues/1688.

Best regards,

Dear Jason,

Thank you for your prompt response. I will review and download the new version in a timely manner.

Best regards,