You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bug description
When running AeroDyn using driver.dvr with AnalysisType=3 with multiple analyses, the firstHWindSpeed value in the Combined-Case Analysis table is used for every case.
To Reproduce
Below is the driver.dvr and AeroDyn.dat file used. Too many Airfoil files to provide, but it won't matter what Airfoils and AeroDyn_blade.dat is used.
driver.dvr
----- AeroDyn Driver Input File ---------------------------------------------------------
Time-series input - to test extreme event + shutdown
----- Input Configuration ---------------------------------------------------------------
False Echo - Echo input parameters to "<rootname>.ech"?
0 MHK - MHK turbine type (switch) {0: not an MHK turbine, 1: fixed MHK turbine, 2: floating MHK turbine}
3 AnalysisType - {1: multiple turbines, one simulation, 2: one turbine, one time-dependent simulation, 3: one turbine, combined cases}
180 TMax - Total run time [used only when AnalysisType=/3] (s)
0.02 DT - Simulation time step [used only when AnalysisType=/3] (s)
"AeroDyn.dat" AeroFile - Name of the primary AeroDyn input file
----- Environmental Conditions ----------------------------------------------------------
1.225 FldDens - Density of working fluid (kg/m^3)
1.464e-05 KinVisc - Kinematic viscosity of working fluid (m^2/s)
335 SpdSound - Speed of sound in working fluid (m/s)
103500 Patm - Atmospheric pressure (Pa) [used only for an MHK turbine cavitation check]
1700 Pvap - Vapour pressure of working fluid (Pa) [used only for an MHK turbine cavitation check]
0 WtrDpth - Water depth (m)
----- Inflow Data -----------------------------------------------------------------------
0 CompInflow - Compute inflow wind velocities (switch) {0=Steady Wind; 1=InflowWind}
"unused" InflowFile - Name of the InflowWind input file [used only when CompInflow=1]
1.0 HWindSpeed - Horizontal wind speed [used only when CompInflow=0 and AnalysisType=1] (m/s)
78.99996112558114 RefHt - Reference height for horizontal wind speed [used only when CompInflow=0] (m)
0.6 PLExp - Power law exponent [used only when CompInflow=0 and AnalysisType=1] (-)
----- Turbine Data ----------------------------------------------------------------------
1 NumTurbines - Number of turbines
----- Turbine(1) Geometry----------------------------------------------------------------
True BasicHAWTFormat(1) - Flag to switch between basic or generic input format {True: next 7 lines are basic inputs, False: Base/Twr/Nac/Hub/Bld geometry and motion must follow}
0, 0, 0 BaseOriginInit(1) - Coordinate of tower base in base coordinates (m)
3 NumBlades(1) - Number of blades (-)
2.0 HubRad(1) - Hub radius (m)
78.99996112558114 HubHt(1) - Hub height (m)
-9.5 Overhang(1) - Overhang (m)
-3.5 ShftTilt(1) - Shaft tilt (deg)
-3.0 Precone(1) - Blade precone (deg)
2.37 Twr2Shft(1) - Vertical distance from the tower-top to the rotor shaft (m)
----- Turbine(1) Motion [used only when AnalysisType=1] ---------------------------------
0 BaseMotionType(1) - Type of motion prescribed for this base {0: fixed, 1: Sinusoidal motion, 2: arbitrary motion} (flag)
0 DegreeOfFreedom(1) - {1:xt, 2:yt, 3:zt, 4:theta_xt, 5:theta_yt, 6:theta_zt} [used only when BaseMotionType=1] (flag)
0.0 Amplitude(1) - Amplitude of sinusoidal motion [used only when BaseMotionType=1] (m or rad)
0.0 Frequency(1) - Frequency of sinusoidal motion [used only when BaseMotionType=1] (Hz)
"" BaseMotionFileName(1) - Filename containing arbitrary base motion (19 columns: Time, x, y, z, theta_x, ..., alpha_z) [used only when BaseMotionType=2]
0.0 NacYaw(1) - Yaw angle (about z_t) of the nacelle (deg)
0.0 RotSpeed(1) - Rotational speed of rotor in rotor coordinates (rpm)
0.0 BldPitch(1) - Blade 1 pitch (deg)
----- Time-dependent Analysis [used only when AnalysisType=2, numTurbines=1] ------------
"ad_TimeseriesInput.csv" TimeAnalysisFileName - Filename containing time series (6 column: Time, HWndSpeed, PLExp, RotSpd, Pitch, Yaw).
----- Combined-Case Analysis [used only when AnalysisType=3, numTurbines=1] -------------
4 NumCases - Number of cases to run
HWindSpeed PLExp RotSpd Pitch Yaw dT Tmax DOF Amplitude Frequency
(m/s) (-) (rpm) (deg) (deg) (s) (s) (-) (m or rad) (Hz)
8 1.10000000e-01 1.2000000e+01 0 0 0.1 3.5 0 0 0
1.65000000e+01 1.40000000e-01 13 0 0 0.1 2.5 0 0 0
1.90000000e+01 1.50000000e-01 13 0 0 0.1 4.5 0 0 0
2.65000000e+01 1.60000000e-01 13 0 0 0.1 5.5 0 0 0
----- Output Settings -------------------------------------------------------------------
"ES15.8E2" OutFmt - Format used for text tabular output, excluding the time channel. Resulting field should be 10 characters. (quoted string)
1 OutFileFmt - Format for tabular (time-marching) output file (switch) {1: text file [<RootName>.out], 2: binary file [<RootName>.outb], 3: both}
0 WrVTK - VTK visualization data output: (switch) {0=none; 1=init; 2=animation}
1 WrVTK_Type - VTK visualization data type: (switch) {1=surfaces; 2=lines; 3=both}
2 VTKHubRad - HubRadius for VTK visualization (m)
-1, -1, -1, 2, 2, 2 VTKNacDim - Nacelle Dimension for VTK visualization x0,y0,z0,Lx,Ly,Lz (m)
AeroDyn.dat
------- AERODYN INPUT FILE --------------------------------------------------------------------------
NREL MW - offshore baseline aerodynamic input properties, with OC3 Monopile tower
====== General Options ============================================================================
False Echo - Echo the input to "<rootname>.AD.ech"? (flag)
"default" DTAero - Time interval for aerodynamic calculations {or "default"} (s)
1 Wake_Mod - Wake/induction model (switch) {0=none, 1=BEMT, 3=OLAF} [Wake_Mod cannot be 2 or 3 when linearizing]
1 TwrPotent - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction}
1 TwrShadow - Calculate tower influence on wind based on downstream tower shadow (switch) {0=none, 1=Powles model, 2=Eames model}
False TwrAero - Calculate tower aerodynamic loads? (flag)
False CavitCheck - Perform cavitation check? (flag) [UA_Mod must be 0 when CavitCheck=true]
False Buoyancy - Include buoyancy effects? (flag)
False NacelleDrag - Include Nacelle Drag effects? (flag)
False CompAA - Flag to compute AeroAcoustics calculation [used only when Wake_Mod = 1 or 2]
"unused" AA_InputFile - AeroAcoustics input file [used only when CompAA=true]
====== Environmental Conditions ===================================================================
1.225 AirDens - Air density (kg/m^3)
1.47755e-05 KinVisc - Kinematic viscosity of working fluid (m^2/s)
340.0 SpdSound - Speed of sound in working fluid (m/s)
103500.0 Patm - Atmospheric pressure (Pa) [used only when CavitCheck=True]
1700.0 Pvap - Vapour pressure of working fluid (Pa) [used only when CavitCheck=True]
====== Blade-Element/Momentum Theory Options ====================================================== [unused when Wake_Mod=0 or 3, except for BEM_Mod]
1 BEM_Mod - BEM model {1=legacy NoSweepPitchTwist, 2=polar} (switch) [used for all Wake_Mod to determine output coordinate system]
--- Skew correction
1 Skew_Mod - Skew model {0=No skew model, -1=Remove non-normal component for linearization, 1=skew model active}
False SkewMomCorr - Turn the skew momentum correction on or off [used only when Skew_Mod=1]
default SkewRedistr_Mod - Type of skewed-wake correction model (switch) {0=no redistribution, 1=Glauert/Pitt/Peters, default=1} [used only when Skew_Mod=1]
"default" SkewRedistrFactor - Constant used in Pitt/Peters skewed wake model {or "default" is 15/32*pi} (-) [used only when Skew_Mod=1 and SkewRedistr_Mod=1]
--- BEM algorithm
True TipLoss - Use the Prandtl tip-loss model? (flag) [unused when Wake_Mod=0 or 3]
True HubLoss - Use the Prandtl hub-loss model? (flag) [unused when Wake_Mod=0 or 3]
True TanInd - Include tangential induction in BEMT calculations? (flag) [unused when Wake_Mod=0 or 3]
True AIDrag - Include the drag term in the axial-induction calculation? (flag) [unused when Wake_Mod=0 or 3]
True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [unused when Wake_Mod=0,3 or TanInd=FALSE]
Default IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or "default"} (-) [unused when Wake_Mod=0 or 3]
500 MaxIter - Maximum number of iteration steps (-) [unused when Wake_Mod=0]
--- Shear correction
False SectAvg - Use sector averaging (flag)
1 SectAvgWeighting - Weighting function for sector average {1=Uniform, default=1} within a sector centered on the blade (switch) [used only when SectAvg=True]
default SectAvgNPoints - Number of points per sectors (-) {default=5} [used only when SectAvg=True]
default SectAvgPsiBwd - Backward azimuth relative to blade where the sector starts (<=0) {default=-60} (deg) [used only when SectAvg=True]
default 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} (-)
15.578 tau1_const - Time constant for DBEMT (s) [used only when DBEMT_Mod=1 or 3]
====== OLAF -- cOnvecting LAgrangian Filaments (Free Vortex Wake) Theory Options ================== [used only when Wake_Mod=3]
"unused" OLAFInputFileName - Input file for OLAF [used only when Wake_Mod=3]
====== Unsteady Airfoil Aerodynamics Options ====================================================
True AoA34 - Sample the angle of attack (AoA) at the 3/4 chord or the AC point {default=True} [always used]
3 UA_Mod - Unsteady Aero Model Switch (switch) {0=Quasi-steady (no UA), 2=B-L Gonzalez, 3=B-L Minnema/Pierce, 4=B-L HGM 4-states, 5=B-L HGM+vortex 5 states, 6=Oye, 7=Boeing-Vertol}
True 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 (flag) [used only when UA_Mod>0]
3 IntegrationMethod - Switch to indicate which integration method UA uses (1=RK4, 2=AB4, 3=ABM4, 4=BDF2)
0.15 UAStartRad - Starting radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod>0; if line is missing UAStartRad=0]
1 UAEndRad - Ending radius for dynamic stall (fraction of rotor radius [0.0,1.0]) [used only when UA_Mod>0; if line is missing UAEndRad=1]
====== Airfoil Information =========================================================================
1 AFTabMod - Interpolation method for multiple airfoil tables {1=1D interpolation on AoA (first table only); 2=2D interpolation on AoA and Re; 3=2D interpolation on AoA and UserProp} (-)
1 InCol_Alfa - The column in the airfoil tables that contains the angle of attack (-)
2 InCol_Cl - The column in the airfoil tables that contains the lift coefficient (-)
3 InCol_Cd - The column in the airfoil tables that contains the drag coefficient (-)
4 InCol_Cm - The column in the airfoil tables that contains the pitching-moment coefficient; use zero if there is no Cm column (-)
0 InCol_Cpmin - The column in the airfoil tables that contains the Cpmin coefficient; use zero if there is no Cpmin column (-)
30 NumAFfiles - Number of airfoil files used (-)
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_00.dat" AFNames - Airfoil file names (NumAFfiles lines) (quoted strings)
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_01.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_02.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_03.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_04.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_05.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_06.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_07.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_08.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_09.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_10.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_11.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_12.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_13.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_14.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_15.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_16.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_17.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_18.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_19.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_20.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_21.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_22.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_23.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_24.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_25.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_26.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_27.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_28.dat"
"Airfoils/IEA-3.4-130-RWT_AeroDyn15_Polar_29.dat"
====== Rotor/Blade Properties =====================================================================
True UseBlCm - Include aerodynamic pitching moment in calculations? (flag)
"AeroDyn_blade.dat" ADBlFile(1) - Name of file containing distributed aerodynamic properties for Blade #1 (-)
"AeroDyn_blade.dat" ADBlFile(2) - Name of file containing distributed aerodynamic properties for Blade #2 (-) [unused if NumBl < 2]
"AeroDyn_blade.dat" ADBlFile(3) - Name of file containing distributed aerodynamic properties for Blade #3 (-) [unused if NumBl < 3]
====== Hub Properties ============================================================================== [used only when Buoyancy=True]
0 VolHub - Hub volume (m^3)
0 HubCenBx - Hub center of buoyancy x direction offset (m)
====== Nacelle Properties ========================================================================== [used only when Buoyancy=True or NacelleDrag=True]
0 VolNac - Nacelle volume (m^3)
0.0, 0.0, 0.0 NacCenB - Position of nacelle center of buoyancy from yaw bearing in nacelle coordinates (m)
0, 0, 0 NacArea - Projected area of the nacelle in X, Y, Z in the nacelle coordinate system (m^2)
0, 0, 0 NacCd - Drag coefficient for the nacelle areas defined above (-)
0, 0, 0 NacDragAC - Position of aerodynamic center of nacelle drag in nacelle coordinates (m)
====== Tail Fin Aerodynamics =======================================================================
False TFinAero - Calculate tail fin aerodynamics model (flag)
"unused" TFinFile - Input file for tail fin aerodynamics [used only when TFinAero=True]
====== Tower Influence and Aerodynamics ============================================================ [used only when TwrPotent/=0, TwrShadow/=0, TwrAero=True, or Buoyancy=True]
25 NumTwrNds - Number of tower nodes used in the analysis (-) [used only when TwrPotent/=0, TwrShadow/=0, TwrAero=True, or Buoyancy=True]
TwrElev TwrDiam TwrCd TwrTI TwrCb
(m) (m) (-) (-) (-)
10 5 7.00000000e-01 1.00000000e-01 0
1.30750000e+01 5 7.00000000e-01 1.00000000e-01 0
1.49800000e+01 5.02300000e+00 7.00000000e-01 1.00000000e-01 0
1.78850000e+01 5.00800000e+00 7.00000000e-01 1.00000000e-01 0
2.08550000e+01 5.00300000e+00 7.00000000e-01 1.00000000e-01 0
2.26900000e+01 5 7.00000000e-01 1.00000000e-01 0
2.55950000e+01 5 7.00000000e-01 1.00000000e-01 0
2.85650000e+01 5.00900000e+00 7.00000000e-01 1.00000000e-01 0
3.15350000e+01 5.00600000e+00 7.00000000e-01 1.00000000e-01 0
3.45050000e+01 5.00400000e+00 7.00000000e-01 1.00000000e-01 0
3.74750000e+01 5.00200000e+00 7.00000000e-01 1.00000000e-01 0
4.01850000e+01 5 7.00000000e-01 1.00000000e-01 0
4.28250000e+01 5 7.00000000e-01 1.00000000e-01 0
4.54750000e+01 4.84900000e+00 7.00000000e-01 1.00000000e-01 0
4.81350000e+01 4.70400000e+00 7.00000000e-01 1.00000000e-01 0
5.08050000e+01 4.55800000e+00 7.00000000e-01 1.00000000e-01 0
5.34850000e+01 4.41100000e+00 7.00000000e-01 1.00000000e-01 0
5.61750000e+01 4.26400000e+00 7.00000000e-01 1.00000000e-01 0
5.88750000e+01 4.11600000e+00 7.00000000e-01 1.00000000e-01 0
6.15850000e+01 3.96800000e+00 7.00000000e-01 1.00000000e-01 0
6.43050000e+01 3.82000000e+00 7.00000000e-01 1.00000000e-01 0
6.70350000e+01 3.67000000e+00 7.00000000e-01 1.00000000e-01 0
6.97750000e+01 3.52000000e+00 7.00000000e-01 1.00000000e-01 0
7.25250000e+01 3.37000000e+00 7.00000000e-01 1.00000000e-01 0
7.60500000e+01 3.22600000e+00 7.00000000e-01 1.00000000e-01 0
====== Outputs ====================================================================================
False SumPrint - Generate a summary file listing input options and interpolated properties to "<rootname>.AD.sum"? (flag)
0 NBlOuts - Number of blade node outputs [0 - 9] (-)
2, 9, 16, 4, 5, 7, 11, 13, 14 BlOutNd - Blade nodes whose values will be output (-)
0 NTwOuts - Number of tower node outputs [0 - 9] (-)
1, 2, 3, 4, 5 TwOutNd - Tower nodes whose values will be output (-)
OutList The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)
"RtAeroCp, RtAeroCq, RtAeroCt"
END
---------------------- NODE OUTPUTS --------------------------------------------
1 BldNd_BladesOut - Number of blades to output all node information at. Up to number of blades on turbine. (-)
ALL BldNd_BlOutNd - Specify a portion of the nodes to output. {"ALL", "Tip", "Root", or a list of node numbers} (-)
OutList_Nodal The next line(s) contains a list of output parameters. See OutListParameters.xlsx for a listing of available output channels, (-)
END
---------------------------------------------------------------------------------------
Steps to reproduce the behavior:
Run the above files with AeroDyn_Driver_x64.exe from the OpenFAST 4.0.0 build.
Look at the HWindSpeedX output, which is the same for all 4 cases and matches the wind speed of the first case.
Screenshots, if applicable
I am not familiar with fortran or the OpenFAST src code, but maybe it is due to the CurLine not being iterated on in the below snip?
OpenFAST Version
OpenFAST 4.0.0 release
**************************************************************************************************
AeroDyn_driver
Copyright (C) 2025 National Renewable Energy Laboratory
Copyright (C) 2025 Envision Energy USA LTD
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.
**************************************************************************************************
AeroDyn_driver-v4.0.0
Compile Info:
- Compiler: Intel(R) Fortran Compiler 2021
- Architecture: 64 bit
- Precision: single
- OpenMP: No
- Date: Jan 03 2025
- Time: 18:16:06
Execution Info:
- Date: 01/16/2025
- Time: 12:02:51-0000
The text was updated successfully, but these errors were encountered:
Thanks @BenClaytonARUP for your very detailed report! I will take a look at this. With your documentation, this should be relatively easy to find.
I suspect the issue is someplace where the dvr%Cases(iCase)%HWindSpeed is used. Most likely the wind is not getting reinitialized correctly for each run.
Bug description
When running AeroDyn using
driver.dvr
withAnalysisType=3
with multiple analyses, the firstHWindSpeed
value in the Combined-Case Analysis table is used for every case.To Reproduce
Below is the
driver.dvr
andAeroDyn.dat
file used. Too many Airfoil files to provide, but it won't matter what Airfoils andAeroDyn_blade.dat
is used.driver.dvr
AeroDyn.dat
Steps to reproduce the behavior:
Run the above files with AeroDyn_Driver_x64.exe from the OpenFAST 4.0.0 build.
Look at the
HWindSpeedX
output, which is the same for all 4 cases and matches the wind speed of the first case.Screenshots, if applicable
I am not familiar with fortran or the OpenFAST src code, but maybe it is due to the CurLine not being iterated on in the below snip?
OpenFAST Version
OpenFAST 4.0.0 release
The text was updated successfully, but these errors were encountered: