Description
Bug description
Difficult to debug errors in OpenFAST when there are a large number of warnings within a timestep/initialization. This causes users to miss the main error message since its not written to screen.
Example:
**************************************************************************************************
OpenFAST
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.
**************************************************************************************************
OpenFAST-v4.0.2-372-g058c6030
Compile Info:
- Compiler: GCC version 13.2.0
- Architecture: 64 bit
- Precision: double
- OpenMP: No
- Date: Mar 21 2025
- Time: 10:26:05
Execution Info:
- Date: 03/27/2025
- Time: 13:26:03-0600
OpenFAST input file heading:
Turbine Main Input File
Running ElastoDyn.
Nodal outputs section of ElastoDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running InflowWind.
Running AeroDyn.
AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted.
Skipping nodal outputs.
AeroDyn: projMod: 2
Projection: Polar, BEM: polar (3D), MomentumCorrection, Sector Average
Running ServoDyn.
Running ServoDyn Interface for Bladed Controllers (using GNU Fortran for Linux).
FAST_InitializeAll:AD_Init:ReadInputFiles:Blade1:ReadBladeInputs:BlCrvAng will be calculated and
overwrite the values specified in blade file "./Turbine_AeroDyn15_blade_BDnodes.dat".
ReadInputFiles:Blade2:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file "./Turbine_AeroDyn15_blade_BDnodes.dat".
ReadInputFiles:Blade3:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file "./Turbine_AeroDyn15_blade_BDnodes.dat".
AD_Init:Init_BEMTmodule:BEMT_Init:UA_Init:UA_SetParameters:UA_ValidateAFI:File
"./Airfoils/Turbine_AeroDyn15_Polar_07.dat":UA cutout parameter should be at a value where the
separation function is 0; separation function is 0.22985.
UA_SetParameters:UA_ValidateAFI:File "./Airfoils/Turbine_AeroDyn15_Polar_08.dat":UA cutout parameter
should be at a value where the separation function is 0; separation function is 9.70288E-03.
UA_SetParameters:UA_ValidateAFI:File "./Airfoils/Turbine_AeroDyn15_Polar_09.dat":UA cutout parameter
should be at a val
OpenFAST encountered an error during module initialization.
Simulation error level: FATAL ERROR
Aborting OpenFAST.
Temporary workaround is to turn off the module with the warnings, in this case its AeroDyn
, hence we set CompAero = 0
. Re-running OpenFAST we can see the actual error is from the missing DISCON path.
**************************************************************************************************
OpenFAST
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.
**************************************************************************************************
OpenFAST-v4.0.2-372-g058c6030
Compile Info:
- Compiler: GCC version 13.2.0
- Architecture: 64 bit
- Precision: double
- OpenMP: No
- Date: Mar 21 2025
- Time: 10:26:05
Execution Info:
- Date: 03/27/2025
- Time: 13:34:41-0600
OpenFAST input file heading:
Turbine Main Input File
Running ElastoDyn.
Nodal outputs section of ElastoDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running BeamDyn.
Nodal outputs section of BeamDyn input file not found or improperly formatted.
Running InflowWind.
Running ServoDyn.
Running ServoDyn Interface for Bladed Controllers (using GNU Fortran for Linux).
FAST_InitializeAll:SrvD_Init:BladedInterface_Init:The dynamic library
./../../ROSCO/ROSCO/build/libdiscon.so could not be loaded. Check that the file exists in the
specified location and that it is compiled for 64-bit applications.
OpenFAST encountered an error during module initialization.
Simulation error level: FATAL ERROR
Aborting OpenFAST.
To Reproduce
Steps to reproduce the behavior:
- This is a custom case, can be reproduced by creating inputs that have large number of warnings.
Expected behavior
All warnings and errors generated by OpenFAST are printed to screen/file.
Short term Solution
The charecter limit of the error message can be increase from 1024
possibly to 2048
?
ref: https://github.com/OpenFAST/openfast/blob/main/modules/nwtc-library/src/NWTC_Base.f90#L36
Long term Solution
Have an additional output file <basename.error>
that logs all the info, warnings, severe and fatal errors in OpenFAST. This can help avoid clutter and also make it possible to better analyze warnings and errors.
Example use case: When running a semi-sub optimization in WEIS using OpenFAST, we can programmatically identify when the semi-sub breaches the water line (currently only a warning in OpenFAST).
Ideally, this could look like:
[INFO][ElastoDyn] Nodal outputs section of ElastoDyn input file not found or improperly formatted.
[INFO][BeamDyn] Nodal outputs section of BeamDyn input file not found or improperly formatted.
[INFO][BeamDyn] Nodal outputs section of BeamDyn input file not found or improperly formatted.
[INFO][BeamDyn] Nodal outputs section of BeamDyn input file not found or improperly formatted.
[INFO][AeroDyn] AD15 Nodal Outputs: Nodal output section of AeroDyn input file not found or improperly formatted.
Skipping nodal outputs.
AeroDyn: projMod: 2
Projection: Polar, BEM: polar (3D), MomentumCorrection, Sector Average
[INFO][AeroDyn] FAST_InitializeAll:AD_Init:ReadInputFiles:Blade1:ReadBladeInputs:BlCrvAng will be calculated and
overwrite the values specified in blade file "./Turbine_AeroDyn15_blade_BDnodes.dat".
[INFO][AeroDyn] ReadInputFiles:Blade2:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file "./Turbine_AeroDyn15_blade_BDnodes.dat".
[INFO][AeroDyn] ReadInputFiles:Blade3:ReadBladeInputs:BlCrvAng will be calculated and overwrite the values
specified in blade file "./Turbine_AeroDyn15_blade_BDnodes.dat".
[WARN][AeroDyn] AD_Init:Init_BEMTmodule:BEMT_Init:UA_Init:UA_SetParameters:UA_ValidateAFI:File
"./Airfoils/Turbine_AeroDyn15_Polar_07.dat":UA cutout parameter should be at a value where the
separation function is 0; separation function is 0.22985.
[WARN][AeroDyn] UA_SetParameters:UA_ValidateAFI:File "./Airfoils/Turbine_AeroDyn15_Polar_08.dat":UA cutout parameter
should be at a value where the separation function is 0; separation function is 9.70288E-03.
[FATAL][ServoDyn] FAST_InitializeAll:SrvD_Init:BladedInterface_Init:The dynamic library
./../../ROSCO/ROSCO/build/libdiscon.so could not be loaded. Check that the file exists in the
specified location and that it is compiled for 64-bit applications.
Screenshots, if applicable
OpenFAST Version
**************************************************************************************************
OpenFAST
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.
**************************************************************************************************
OpenFAST-v4.0.2-372-g058c6030
Compile Info:
- Compiler: GCC version 13.2.0
- Architecture: 64 bit
- Precision: double
- OpenMP: No
- Date: Mar 21 2025
- Time: 10:26:05
Execution Info:
- Date: 03/27/2025
- Time: 13:26:03-0600
System Information (please complete the following information):
- OS: 13.7.4 (22H420)
- Compiler: GCC version 13.2.0
- Compiler settings: None
Additional context