HAWC2#
HAWC2 (Horizontal Axis Wind turbine simulation Code 2nd generation) is an aeroelastic code intended for calculating wind turbine response in time domain.
The core of the code was developed mainly within the years 2003-2007, by the Aeroelastic Design Research Program at DTU Wind Energy, DTU Risø Campus in Denmark. HAWC2 is developed and distributed by DTU Wind Energy and has been used in numerous research projects and industrial applications.
HAWC2 has a large number of users and is used both for design and verification purposes.
Download the latest version#
Archive of historical HAWC2 releases: HAWC2 Archive
Release notes
HAWC2 13.2.0 (June 2025)
Updates since version 13.1.0
New Features
The aerodynamic Actuator Cylinder (AC) model for VAWTs now has a Near Wake component to model the impact of finite number of blades (“tip-loss”). The method is only applicable for H-rotor VAWTs, and it is enabled by using induction_method 4. An earlier, less mature implementation of this feature was used and briefly described in the Torque 2020 article Comparison of 3D aerodynamic models for vertical-axis wind turbines: H-rotor and Φ-rotor.
Now it is possible to provide an induction-thrust coefficient table (with the command a_ct_table) that includes the region of both negative and positive CT. However, if only the positive region is provided (characterized by the first data point being [0, 0]), it will be mirrored for the region of negative Ct (assuring backward compatibility). For details, see the section “12.18 Data format for the user defined a-ct table” of the User Manual.
A new command hub_type for the aerodynamic input. It should be set to 2 when modelling VAWTs. The default is 1 for HAWTs.
Introduce the uniform aerodynamic section distribution, in addition to the default cosine distribution. For example, if the user want to specify 50 aerodynamic sections that are uniform distributed:
aero_distribution linear 50
A new command disable_att_flow_mem_effect to disable the attached flow memory effects in the unified dynamic stall model.
New aerodynamic sensors totmom and totfrc: allows the user to calculate the integrated aerodynamic moment or forces along one or all blades. The sensor returns forces or moments in three dimensions in the global coordinate system.
The aero sensor secmoment now has two additional optional parameters that define the coordinate system (default is aero coordinate system) as well as the location of the moment output (default is the 3/4 chord). Without the optional parameters, the sensor behaves as in previous releases.
New hydrodynamic sensors totmom and totfrc, lets the user calculate the integrated hydrodynamic moments and forces for a single or all hydro elements in a model.
Added flag to enable users to input sectional data for hydro_elements in normalized coordinates. If users specify sec_length_normalized 1; in the hydro_element section, HAWC2 will expect the coordinates to be between 0 and 1. By default, HAWC2 still expects coordinates in absolute terms.
Added new tip loss calculation method. The method is only intended to be used when coupled to actuator disc methods, where a total velocity is sampled at the rotor disk and the induced velocity is generally not known. The method is described in more detail by Pirrung 2020 and modifies the angle of attack, alfa, such that the lift is reduced to the size proposed by Shen 2005. In addition to the force reduction proposed by Shen, the change in angle of attack also causes a force rotation. This approach is more consistent and gives better results for torque and power. The method is invoked using the htc/aero command: tiploss_method 2
. tip_loss_shen_c2 is a tuning-parameter constant that defaults to 21.
Major changes
The static solver can now compute an initial static solution for simulations including hydrodynamics and aerodynamics. This includes the mhh/ateflap unified dynamic stall model as well as the BEM, Near Wake and vortex cylinder induction models. This feature is described as part of the Torque 2024 article Incorporation of floater rotation and displacement in a static wind farm simulator.
All hawc_dll and type2_dll are now updated during the initial static solution.
Major updates to the implementation of the VAWT modelling with the Actuator Cylinder (AC) model. The calculation point is now correctly located at the 3/4 chord point, which follows the conventions as used in the unified dynamic stall model. The induction functions from the AC model are now calculated from analytical equations, instead of numerical integration. This will improve both computational efficiency and accuracy. A new flag induc_due_to_qt is introduced to also include inductions due to tangential load Qt. Previously, only the normal load Qn affected the induction. For H-shaped VAWT and when ignoring the impact of finite blade length, the results from the AC model show good agreement with 2D CFD and vortex panel methods.
The hydrodynamic integration scheme has been improved to integrate to the actual waterline, whereas previously the hydrodynamic loads were integrated up to the last submerged hydrodynamic node.
The default gravity acceleration is changed from 9.816 to 9.81, and a gravity command has been added to the simulation block, to set the default gravity for all bodies in a simulation.
Minor changes
ESYSMooring, ESYSTools, ESYSWamit and GearBoxDLL now have symbolic links without the _cluster.so suffix to limit the modifications needed to run the same htc file across platforms.
In HAWC2Visualization the system eigenanalyses are now shown in the state they were calculated in. Previously, the modal amplitudes were displayed on the model at time t=0.0s. This feature will only be available for analyses run with HAWC2 >= 13.1.1 and visualized with HAWC2Visualization >= 0.9.9.
Remove vawt_qr in the output_at_time for VAWT, since it is a duplicate of vawt_qn.
Improve the modelling of tangential induction in the BEM method when CT<0.
Support the only option in the nacelle and hub lidar sensors. I.e. it is possible to reduce the 8 hub lidar output sensors to only the vlos sensor.
The soil added stiffness and damping are updated before the system_eigenanalysis.
Support arbitrary htc path length.
Warning and error messages will now also be written to the terminal which initiated the HAWC2 calculations as well as being written to the log file.
Redundant versioned libraries in the linux redistributable release are now symbolic links, reducing the required disk space from ~730 MB to ~500 MB
The files containing the eigenmode animations now support an arbitrary number of modes and produce files without spaces in their names.
The input file encryption method external_bladedata_dll is now considered deprecated and will be removed from HAWC2 in the next release. Please contact the HAWC2 support (hawc2@windenergy.dtu.dk) in case you don’t have the option to switch to the more secure encrypted binary format alternative (see section 19.2 Encrypted binary format of the manual).
Notify the user if the profile coefficients do not start with -180 deg and end with +180 deg.
Bug fixes
Fixed a major bug related to the calculation of the centre of gravity of bodies with a structural pitch ≠ 0.
System eigenmodes can now be visualized at the state the system was in at the time of calculation.
The HAWC2 online license can now be validated directly through license.windenergy.dtu.dk without the need of the client_license_server.
Fix a bug for the input of number of azimuthal sections for the AC model for VAWTs. Previously, the provided number is not correctly set.
Fix a bug for the azimuthal discretization for the AC model for VAWTs. Now, the calculation point of the first section is at 0.5*dtheta, instead of 0.
Fix a bug for the wind shear conditions when modelling VAWTs using the AC model.
Fix bugs when calculating outputs azimuth and thrust for VAWTs.
Fix small bugs in the unified dynamic stall model, which cause tiny errors when calculating full separation Cl.
Fix a bug in the BEM method when the hub radius is zero, due to the calculation of the ds/dr term.
Fix bug resulting in wrong sensor names for the hub and nacelle lidar sensors
The nacelle and hub lidar beam number is no more limited to 0..255.
Fix occasional bug that happens when reading an aerodynamic AE file with only 4 columns.
Allow to visualize Timoshenko sections with 0 area, which happens for example with the FPM. We now set it to 0.1.
Allow to print the residual in the log file even if they are not finite.
Fixed several memory leaks.
In simulations where the solver crashes, the output files will now be updated before the program shuts down. The outputs should be available up to the timestep before the solver crashes.
Fixed critical regression from version 13.1 where power law water-current profile was implemented in the wrong direction, increasing from the free-surface down to the mudlevel. The water-current power-law profile now adheres to the description in the manual.
Fixed issue where scaling Mann turbulence boxes with scaling_method 2 caused segmentation faults.
Fixed issue where scaling Mann-turbulence boxes with the option box_front last_plane (the default option), would return incorrectly scaled turbulence if the entire box was not used in the simulation.
Global time stamps in the logfile are now dynamically formatted. The timestamp will now support arbitrary simulation lengths, without breaking the format and return ******.
Fixed issue where not all channels are labelled in the mbdy state_rot sensor, if axisangle or eulerp are used as options.
Fixed issue where HAWC2 would not write all necessary keys to HAWC2Visualization if time_stop in the simulation was not an integer multiple of the time step.
Fixed unnecessary warnings when writing visualization files for bodies with aerolink and only nbodies equal to 1.
Added check that hydro_element definitions do not exceed the length of the main_body that they are attached to.
Known issues
When modelling a rotor that is operating as a propeller (with negative thrust coefficient, CT<0), the default setup assumes a “symmetric” a-CT relationship, which is not correct. This can be mitigated by using a user-defined a-Ct relationship a_ct_table that include both positive and negative CT regions.
Mean wind velocities in the vertical wind profile will be set to the absolute value when using the shear profiles. E.g. if a linear profile is specified with wind speed -1 at the ground and +1 at hub-height, the profile will be +1 at the ground, 0 at the halfway point, and +1 at hub-height. The profile would have this shape (<) rather than this shape (/).
The tower shadow model ‘towershadow_jet’ mirrors the wake effect of the tower/body upstream as well as downstream. The model was developed to characterize the flow downstream and not upstream.
Using the fix4 constraint with options
time
andenable_at
at the same time causes the constraint to be enabled as an impulse rather than a polynomial transition.Although the static solver now includes the aerodynamic forces there are still some issues regarding the robustness and accuracy of the obtained steady state solution. Further, the static solver does not yet handle correctly all the different constraints that one would usually use in combination with for example a pitch and torque controller. We are actively working on addressing these issues and our goal is to allow a generic HAWC2 simulation, with controller, to start from a well-defined steady state loading condition.
HAWC2 User Manual 13.2
Add note that the encrypted DLL format is now deprecated and will raise a warning in the log file.
Add section to offer some guidance regarding the convergence criteria.
Added recommendation to separate the stability analysis from the load simulation (body/system eigenalaysis).
Various clarifications and corrections in the hydro section.
Add description for the new aero sensors totfrc and totmom.
Remove note about default Mann turbulence scaling factors since those are not relevant.
Indicate correct FLEX turbulence default scaling “v” value (0.8 instead of 0.7)
Extend description of user defined a-ct options.
Add description of aero sensors totmom and totfrc.
Add optional chord position and coordinate system for the aero sensor secmoment.
Correctly note that the output block also works within a type2 dll.
Add documentation for the met_mast_wind command.
Add description for induction_method 4 (VAWT AC-NW).
Add description fordisable_att_flow_mem_effect in dynamic stall model.
Add description forinduc_due_to_qt in the VAWT AC model.
Add description of the linear aerodynamic calculation point distribution.
Describe how a_ct_table can also be extended for negative thrust coefficients.
Clarify what the aero azimuthal description means for VAWTs.
Add the description of hub_type and hub_vec and point out when to use what when modelling VAWTs.
Remove vawt_qr in the description of the “encrypted” section.
Add ouptut option description for the aero nacelle_lidar output sensor.
Updated description of the static solver capabilities (corresponding to new features).
Correct microturb_factors.km2 to default=0.35 (was wrongly indicated as 0.25 before)
Documented init_string subroutine of the type2_dll interface.
Add description of the “general variable” output sensor.
The web page version of the manual now correctly includes the Wind and Turbulence section.
ESYSWAMIT 1.9
Fix slow reading of files on HPC systems
ESYSMooring 1.8
Stop the simulation if the initial condition file does not exist
Added pretension, mass scaling, and creep time control features
Added strain sensor
Lines are now drawn without the vertical line component
ESYSTools 1.5
Allow to use multiple forcing files in ESYS_mck