Skip to content

Error/warning messages during initialization is large, resulting in text being cut off from STDOUT #2701

Open
@mayankchetan

Description

@mayankchetan

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:

  1. 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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions