HAWC2 Release Notes

HAWC2 12.8

Major features:

  • New system for encrypted data files. The system uses an executable (available for windows and linux) to encrypt standard HAWC2 datafiles, e.g. blade data, such that only HAWC2 can read the file.
  • The BEM induction for blades with prebend / out-of-plane deflection and sweep is improved:
    • The local thrust and torque coefficients, which are used in the induction computation, are now multiplied by the derivative of the blade curve length with respect to the radius as described in Section 2.7 of [1].
    • A radial induction model (command 'radial_induc', see manual) is now available as described in Section 2.8 of [1].
  • In previous versions, the elastic center of node 1 was handled as if it was at origo. I.e. if “body A last” was “oriented relative to” or ”constrained to” “body B 1”, and “body B 1” was not at origo, then “body A last” was in fact “oriented relative to” or ”constrained to” the origo of “body B”. Therefore, a warning was printed to the log if node 1 was not at origo.
    In the current version, this behavior has been changed. An offset of the elastic center of node 1 is now allowed and a warning is no longer logged.
    NOTE!!! This essentially may change the behavior of all existing models where the elastic center of node 1 is not at origo.
    It is still possible to “orient relative to” or ”constrain to” origo (keep the old behavior) by setting node number of mbdy2 to 0.

Minor features:

  • Optional reduced logfile size by only writing out time step iteration statistics (of every xx seconds of simulation) instead of every time step. See “log_deltat” in manual.
  • The dynamic inflow time constants in the BEM model are updated as described in Section 2.6 of [1].
  • Custom tip/root-loss factor along the blades. See section 12.6 in the manual
  • Ainslie k2 parameter was by mistake set to 0.003 in the integrated ainslie module in version 12.7. The value has been reverted to 0.008 as it was in the previously used external ainslie.dll, see [2] for details on the calibration of this parameter.
  • Increased accuracy for large rotations in some constraints
  • Increased accuracy for large rotations in some sensors (statevec_new, pitch sensor etc.)
  • If a dll is not found or cannot be loaded, HAWC2 will now stop with an error message
  • Multiple “dll” and “base” sections now allowed in one “force” section
  • Strings passed to init_string of hawc_dll and type2_dll are now null terminated
  • Argument 3 of “mbdy forcevec” and “mbdy momentvec” must be 1 or 2. If other values are specified the sensor will now be empty
  • It is now possible to set “orientation/relative/mbdy2” to "last". In previous versions an error occurred
  • Filtering of rigid body modes in superelements using svd (htc/superelement/esys_iface_nodes/nof_rigid_modes)
  • With the new 'only_update_r_mono_incr 1' command, the computed induction will be frozen and a warning will be written to the log file whenever the radius is not monotonically increasing towards the tip due to extreme deflections. In this condition, some assumptions in both the BEM and the near wake model break down and the results become unreliable. See the manual for details.
  • Add extern_get_simtime interface for external modules (ESYS)


  • Fix DWM issue occurring in simulations with downstream wake sources. This bug was introduced in 12.7 and resulted in random wake deficits being added at the turbine from downstream wake sources. Downstream wake sources are now ignored (not calculated) as they should be.
  • Fix of the statevec_new sensor:
    • The elastic rotation computation has been fixed. See Figure 1 (below text).
    • The three last arguments (sign, x and y) is now read and used in the computation
    • Improved accuracy for large rotations, same as above.
    • Did not work for the outermost position of a beam
  • Fix issue in input reader related to spaces before labels.
  • Fix issue occurring when adding more than 10 force.dll or force.base (no hardcoded limit)
  • The visualization diameter of cylinders corrected. Before the diameter was sqrt(2) too big.
  • Fix issue with concentrated mass. Before, a part of the centrifugal force and moment due to a concentrated mass was added twice if the concentrated mass was attached to the first node on a body
  • Moment caused by external force on first node with offset from origo added
  • Fix DWM deficit interpolation issue. Before the deficit points were extrapolated from the adjacent radial segment
  • Airfoil polars are now handled with double precision, and the precision in the MHH dynamic stall model is increased to consistent double precision
  • Remove unnecessary array allocations, which previously could cause index errors

Figure 1 - Torsion of a blade under flapwise gravity loading, the case is described on slide 5 in Hach, O. et al, Comparison of State-of-the-art Aeroelastic Simulation Tools for Wind Turbines, Wind Energy Science Conference, Cork, 2019. When using the statevec_new sensor to get the torsional deflection around the pitch axis, the result in HAWC2 ≤12.7 was erroneously about the local element axis instead of the pitch axis. In 12.8 this bug is fixed, leading to a smooth torsion output in this testcase.


  1. Madsen, H. Aa., Larsen, T. J., Pirrung, G. R., Li, A., and Zahle, F.: Implementation of the blade element momentum model on a polar grid and its aeroelastic load impact, Wind Energ. Sci., 5, 1–27, https://doi.org/10.5194/wes-5-1-2020, 2020.
  2. Madsen, H. Aa., Larsen G. C., Larsen, T.J., Troldborg, N. and Mikkelsen, R.F. Calibration and validation of the dynamic wake meandering model for implementation in an aeroelastic code. Journal of Solar Energy Engineering, 132(4):041014 (14 pages), 2010.

Wkin_dll updated to 2.8.1

New features:

  • User-defined phase shift for regular and irregular wave generation
  • Save and re-use wave fields
  • Change the PM spectra. Before the input period was assumed to be Tz (zero upcrossing wave period). Now the input period is assumed to be Tp (Peak period) as stated in the manual
    Note!!! This changes the spectrum of existing models that uses the PM spectrum
  • McCamy Fuchs correction to the water particle acceleration

Bug fixes:

  • Fix bug in embedded stream function wave
  • Solve a memory issue when pregenerating large wave field
  • fix issue with long filenames (increased max filename length from 64 to 256)

HAWC2 Manual 12.8

  • Updated to match HAWC2 12.8
  • Updated to match wkin_dll 2.8.1
  • Several typos corrected
  • Description of user defined shear turbulence files
  • Description and figure of forcevec and momentvec definitions
  • Example of output_at_time section
  • Description of data file encryption





HAWC2 12.7


Release notes

Major features

  • New sparse matrix solver (solvertype 2). It is highly recommended to use the new and faster sparse solver
  • Input reader now ignores HAWCStab2 section. I.e. the same input file can be used for both HAWC2 and HAWCStab2
  • HAWC2 now writes build info and the version number of used dlls into the logfile


Minor features:

  • Minimum output call interval set to 1 (every time step)
  • In tower shadow the error message changed to "WARNING" when wind speed is requested inside the tower
  • Add label to wind sensors. This was not consistent with the manual for 12.6 and earlier
  • New output options: new_htc_structure/write_body_beam_data and new_htc_structure/write_element_matrices
  • ESYS: warning on duplicate constraints
  • Coordinate system options implemented for the 'aero secforce' sensor. This was not consistent with the manual for 12.6 and earlier
  • Improved error message when creating a superelement with wrong input
  • Increased accuracy of turbulence interpolation (4 to 8 bytes). This may affect the turbulence scaling slightly
  • Implement factor_scaling wrt. v and w. This was not consistent with the manual for 12.6 and earlier
  • For turbulence boxes with uneven no. grid points, scaling is now based on turbulence intensity of the center point
  • add new rotor average wind speed sensor (aero wsp_rotor_avg)
  • Optionally specify diameter of upstream turbine in user defined wake deficit file
  • Ainslie DLL wake model integrated in HAWC2. This integration fixes earlier crashes, data passing via temporary files and gives numerical improvements



  • Fix in transformation matrix for large rotations
  • Shear center is now rotated to elastic axes coordinates, before it was in c2_def coordinates
  • v and w components are corrected for tower shadow model JET2. For HAWC2 12.5 and 12.6 they were set to zero
  • Tower_shadow_pot2 and tower_shadow_jet2 now lookup the correct tower radius (previous only first value was used)
  • Bugfix in nearwake module
  • Minor bugfix in BEM for CT>2.5
  • Bugfix wrt memory consumption specially important for large number of output sensors
  • Output time step deltat was not working in gtsdf output format
  • Label for nacelle_lidar sensor fixed
  • Bugfix in tshadow_pot2_calc occurring when requesting wind speed below the tower
  • Bugfix of memory leak in call to ESYS DLL
  • Fix memory issue in hdf5 module (visualization and gtsdf)
  • Bugfix in call to esys_visual, the structure pointer was not 32/64bit dependent.
  • Bugfix in direction interpolation of Morison drag and current profile
  • Fix reading of turbulence box when number of points in y and z direction differ
  • Starttime in flex format wrong when using output time step deltat
  • Improved convergence of the quasi steady BEM used for the upstream turbine in the DWM model



HAWC2 12.6


  • Constraint enable/disable made active for t>=0 (previous t>0)
  • Azimuthal user dependent rotor induction a-ct enabled. Previous userdefined (radial) a-ct dependent induction limited to linear interpolation
  • Nacelle lidar sensor + effective wind speed sensor. Written by Dominique Philipp Held domhel@dtu.dk
  • New mbdy sensor forcemoment_interp. This gives interpolated forces and moments independent on model discretisation (interpolated between nodal results)
  • Bugfix in type2.dll initstring
  • New sensor id reference option
  • New wind free_wind_center_pos0 and free_wind_hor_center_pos0 option
  • Bugfix in aero induction outputs when induction model not used.
  • New mbdy sensor statevec_new. This gives positions and rotations based on local chord orientation, either absolut of elastic deformation
  • Label option on all outputs enabled
  • Start/stop in visualization
  • Crash prevented when scale_time_start>time_stop for no-turbulent simulation
  • Wind sensors wind_free_center_pos0 and wind_free_hor_center_pos0 added
  • Aerodynamic noise model included
  • Bugfix related to label option and dll sensor linking i version 12.6 rev 7-10, noise module bypassed (aeronoise bypassed)
  • Bugfix in tower pot2 method to avoid strange situations causing crashes. (aeronoise bypassed)
  • Bugfix in flex binary output format using reduced timestep outputs
  • Bugfix in output with dll reference system (affected only versions from 12.6 rev 6). This is now the final version 12.6
22 JANUARY 2022