Wind and Turbulence#

Main command block - wind#

Obl.

Command name

Explanation

*

wsp

1. Mean wind speed in center [m/s]

*

density

1. Density of the wind [kg/m3]

*

tint

Turbulence intensity [-].

*

horizontal_input

This command determines whether the commands above should be understood as defined in the global coordinate system (with horizontal axes) or the meteorological coordinates system (u,v,w) which can be tilted etc.

1. (0=meteorological, 1=horizontal)

*

center_pos0

Global coordinates for the center start point of the turbulence box, meteorological coordinate system etc. (default should the hub center)

1. \(x_{G}\) [m]

2. \(y_{G}\) [m]

3. \(z_{G}\) [m]

*

windfield_rotations

Orientation of the wind field. The rotations of the field are performed as a series of 3 rotations in the order yaw, tilt and roll. When all angles are zero the flow direction is identical to the global y direction.

1. Wind yaw angle [deg], positive if the wind comes from the right side when sitting in the nacelle and looking upwind (i.e. in the -\(y_{G}\) direction).

2. Terrain slope angle [deg], positive when the wind comes from below.

3. Roll of wind field [deg], positive when the wind field is rotated according to the turbulence u-component.

*

shear_format

Definition of the mean wind shear

1. Shear type

0=none. !This option sets the mean wind speed to zero ! \(\bar{u}\left( z \right)=0\)

1=constant \(\bar{u}\left( z \right)=\mathrm{wsp}\). The value is taken from the wsp parameter.

2=logarithmic \( \bar{u}(z) = {{u}_{0}} \frac{\log \frac{-z_{0}^{G}+{{z}^{M}}}{{{r}_{0}}}} {\log \frac{-z_{0}^{G}}{{{r}_{0}}}}\)

3=power law \( \bar{u}(z) = u_0 {\left( \frac{-z_{0}^G+{z^M}}{-z_0^G} \right)}^{\alpha}\)

4=linear \( \bar{u}(z) = u_0 \frac{\partial u}{\partial z}\)

2. Parameter used together with shear type (case of shear type: 0=dummy, 1=dummy, 2=\(r_{0}\), 3= a, 4=\(d_{u}\)/\(d_{z}\) at center)

*

turb_format

1. Turbulence format (0=none, 1=mann, 2=flex)

*

tower_shadow_method

1. Tower shadow model (0=none, 1=potential flow – default, 2=jet model, 3=potential_2 (flow where shadow source is moved and rotated with tower coordinates system), 4=jet_2 (jet where shadow source is moved and rotated with tower coordinates system). Please see sections Sub command block – tower_shadow_potential to Sub command block – tower_shadow_jet_2 for sub block commands.

scale_time_start

1. Starting time for turbulence scaling [s]. Stop time is determined by simulation length.

wind_ramp_factor

Command that can be repeated as many times as needed.

The wind_ramp_factor is used to calculate a factor that is multiplied to the wind speed vectors. Can be used to make troublefree cut-in situations. Linear interpolation is performed between \(t_{0}\) and \(t_{\mathit{stop}}\).

1. time start, \(t_{0}\)

2. time stop, \(t_{\mathit{stop}}\)

3. factor at \(t_{0}\)

4. factor at \(t_{\mathit{stop}}\)

wind_ramp_abs

Command that can be repeated as many times as needed.

The wind_ramp_abs is used to calculate a wind speed that is added to the wind speed u-component. Can be used to make wind steps etc. Linear interpolation is performed between \(t_{0}\) and \(t_{\mathit{stop}}\).

1. time start, \(t_{0}\)

2. time stop, \(t_{\mathit{stop}}\)

3. wind speed at \(t_{0}\)

4. wind speed at \(t_{\mathit{stop}}\)

user_defined_shear

1. Filename incl. relative path to file containing user defined shear factors (example ./data/shear.dat)

user_defined_- shear_turbulence

1. Filename incl. relative path to file containing user defined shear turbulence factors (example ./data/shearturb.dat)

met_mast_wind

1. Filename incl. relative path to file containing time series of wind components in meteorological coordinates. This command is deprecated see section Sub command block - met_mast_wind

iec_gust

Gust generator according to IEC 61400-1

1. Gust type

’eog’ = extreme operating gust \( u\left( z,t \right)=u\left( z,t \right)-0.37An \left( \tfrac{3\pi (t-{{t}_{0}})}{T} \right)\left( 1-\cos \tfrac{2\pi (t-{{t}_{0}})}{T} \right)\)

’edc’ = extreme direction change \( \theta \left( t \right)=0.5{{\phi }_{0}}\left( 1-\cos \left( \tfrac{\pi \left( t-{{t}_{0}} \right)}{T} \right) \right)\)

’ecg’ = extreme coherent gust \( u\left( z,t \right)=u\left( z,t \right)+0.5A\left( 1-\cos \left( \tfrac{\pi \left( t-{{t}_{0}} \right)}{T} \right) \right)\)

’ecd’ = extreme coherent gust with dir. change \( \begin{aligned} u\left( z,t \right) &= u\left( z,t \right)+0.5A\left( 1-\cos \left( \tfrac{\pi \left( t-{{t}_{0}} \right)}{T} \right) \right) \\ \theta \left( t \right) &= 0.5{{\phi }_{0}}\left( 1-\cos \left( \tfrac{\pi \left( t-{{t}_{0}} \right)}{T} \right) \right) \end{aligned}\)

’ews’ = extreme wind shear \( \begin{gathered} vw_{res} = \sqrt{y_{M}^{2}+z_{M}^{2}} \\ u(z,t) = u(z,t)+vw_{res}\,A\left( 1-\cos \left( \tfrac{2\pi \left( t-{{t}_{0}} \right)}{T} \right) \right) \\ * \cos \left( \arctanTwo\left( {{y}^{M}},-{{z}^{M}} \right)-{{\phi }_{0}} \right) \end{gathered} \)even though the ’ews’ expressions do not match the expressions in the standard completely, it gives identical results provided a mutual power law shear is used and the A parameter is set to \( A = \frac{2.5+0.2\beta {{gma }_{1}}{{\left( \tfrac{D}{{{\Lambda }_{1}}} \right)}^{\tfrac{1}{4}}}}{D}\)

Note that:* \(Y_M\) and \(Z_M\) refer to the horizontal and vertical wind speeds respectively (expressed in meteorological coordinates, or \(V_M\) and \(W_M\) in figure 1).

  • D refers to the rotor diameter. | | | | 2. Amplitude A [m/s]. For the ’eog’, ’edc’, ’ecd’ this corresponds to the parameter ’\(V_{\mathit{gust}}\)’, ’0’, ’\(V_{\mathit{cg}}\)’ respectively, in the IEC61400-1 standard. | | | | 3. Angle \(\varphi_{0}\) [deg] | | | | 4. Time start, \(t_{0}\) [s] | | | | 5. Duration T [s] |

Sub command block - mann#

Block that must be included if the mann turbulence format is chosen. Normal practice is to use all three turbulence components (u,v,w) but only the specified components are used. In 2008 the turbulence generator was linked to the code so mannturbulence can be created without using external software. The command create_turb_parameters will search for turbulence files with names given below, but if these are not found the turbulence will be created.

A short explanation of the parameters L and \(\alpha {{\varepsilon }^{\tfrac{2}{3}}}\)and its relation to the IEC61400-1 ed. 3 standard is given:

The fundamentals of the Mann model is isotropic turbulence in neutral atmospheric conditions. The energy spectrum is given based on the Von Karman spectrum (1). In isotropic turbulence, the properties of turbulence like variance and turbulent length scale is identical for all three direction corresponding to vortex structures being circular.

(1)#\[E(k)=\alpha {{\varepsilon }^{\tfrac{2}{3}}}{{L}^{\tfrac{5}{3}}}\frac{{{\left( Lk \right)}^{4}}}{{{\left( 1+{{\left( Lk \right)}^{2}} \right)}^{\tfrac{17}{6}}}}\]

The relation between wave number k and frequency f is related through the mean wind speed \(\bar{U}\).

(2)#\[k=\frac{2\pi f}{{\bar{U}}}\]

However, atmospheric conditions are not isotropic and the vortex structures become more elliptic in shape with longer length scale and higher variance level in the u direction. In the Mann model, this is accounted for using rapid distortion theory quantified through a shear blocking factor \(\Gamma\). A \(\Gamma\) parameter of 0 corresponds to isotropic turbulence, whereas a higher \(\Gamma\) value is used for non-isotropic turbulence. The relation between non-isotropic and isotropic properties as function of \(\Gamma\) can be seen in Figure 2. For neutral atmospheric conditions (often referred to as “normal” conditions) it is recommended to use \(\Gamma =3.9\) in combination with a length scale of \(L=0.8{{\Lambda }_{1}}\). \({{\Lambda }_{1}}\) is defined as the wavelength where the longitudinal power spectral density is equal to 0.05. According to the IEC61400-1 the wavelength \({{\Lambda }_{1}}\) shall be considered as a constant of 42m above a height of 60m, or \(0.7 z\) otherwise (\(z\) being the height). In the Mann generation of turbulence a length scale L has to be used. This is the length scale of the Von Karman spectrum ((1)) and therefore different than the length scale used in the Kaimal formulation ((3)). The energy spectrum of Kaimal is formulated

(3)#\[E(f)={{gma }^{2}}\frac{4L/\bar{U}}{{{\left( 1+6fL/\bar{U} \right)}^{\tfrac{5}{3}}}}\]

where the input parameters are given based on the table values in

_images/kaimal_length_scales.png

Information about Kaimal length scales and standard deviation ratio from the IEC61400-1#

_images/turbulence_characteristics.png

Turbulence characteristics compared to isotropic conditions as function of gamma parameter, Mann. Left: Relation between variance is changed for higher shear distortions. Right: The relation between length scales are also changed for non-isotropic turbulence. It is recommended to use \(\Gamma =3.9\) for normal atmospheric conditions. This is also the requirement in the IEC61400-1 standard. Isotropic conditions are obtained using \(\Gamma\)=0.#

The result of using \(\Gamma =3.9\) is that the structure of the turbulence corresponds to the normal atmospheric conditions, but the actual level of turbulence is also affected as seen in Figure 1. It is not straight forward to give the exact analytical relationship between the input parameter \(\alpha {{\varepsilon }^{\tfrac{2}{3}}}\)and the final longitudinal variance and it is therefore very practical to introduce a turbulence scaling factor SF. This turbulence scaling factor is calculated based on the actual variance level in the box (normally extracted in the center of the box of longitudinal turbulence) and the target variance \(gma _{\text{target}}^{2}\) based on the requested turbulence intensity \(gma =Ti\ \bar{U}\). In this case of rescaling, which is the normal usage, the input value for \(\alpha {{\varepsilon }^{\tfrac{2}{3}}}\)can be any arbitrary value except for zero.

(4)#\[SF=\sqrt{\frac{gma _{\text{target}}^{2}}{{{gma }^{2}}}}\]

The scale factor is to be multiplied to every values in the turbulence box for all the u,v and w directions. This is done automatically inside HAWC2.

Mann turbulence format#

The mann turbulence binary format consists of one file per turbulence component, u,v,w. Each file contains turbulence values stored as 32-bit floats (little endian). It can be read from python using:



import numpy as np
u = np.fromfile(u_filename, dtype=np.float32).reshape(Nx,Ny,Nz)

Turbulence direction:

  • Wrong direction (default in HAWC2 \(\le\) 13.0): First plane in file, u[0,:,:], is box front.

  • Correct direction (default in HAWC2>13.0): Last plane, u[-1,:,:] is box front.

The turbulence coordinate system and advection direction is detailed and illustrated in the table below, and in figure 3 respectively. The coordinates given here assume indexing starting at 0.

Location in file

Box (x,y,z)

0

(0,0,0)

1

(0,0,1)

Nz-1

(0,0,-1)

Nz

(0,1,0)

Nz+1

(0,1,1)

Ny*Nz-1

(0,-1,-1)

Ny*Nz

(1,0,0)

_images/mann_format.png

Illustration of the Mann turbulence coordinate system and advection direction.#

Obl.

Command name

Explanation

create_turb_parameters

With this command, the code will search for turbulence files with names given below, but if these are not found the turbulence will be created based on the given parameters.

1. Length scale L (L=33.6 according to the IEC standard at 42m and above)

2. \(\alpha\varepsilon^{2/3}\) (when rescaling applied, 1.0 is normal practice)

3. \(\gamma\) (3.9 for neutral atmospheric conditions)

4. Seed number (any integer will do)

5. High frequency compensation (1=point velocity only represent local value which is closest to anemometer measurements, recommended in most cases, 0=point velocity represents average velocity in grid volume)

filename_u

1. Filename incl. relative path to file containing mann turbulence u-component

(example ./turb/mann-u.bin)

filename_v

1. Filename incl. relative path to file containing mann turbulence v-component

(example ./turb/mann-v.bin)

filename_w

1. Filename incl. relative path to file containing mann turbulence w-component

(example ./turb/mann-w.bin)

*

box_dim_u

1. Number of grid points in u-direction

2. Length between grid points in u-direction [m]

*

box_dim_v

1. Number of grid points in v-direction

2. Length between grid points in v-direction [m]

*

box_dim_w

1. Number of grid points in w-direction

2. Length between grid points in w-direction [m]

std_scaling

Ratio between standard deviation for specified component related to turbulence intensity input specified in main wind command block.

If the std_scaling command is omitted, the SF is determined based on the u-variance, the SF for v and w direction are kept equal to u-direction (recommended)

1. Ratio to u-direction

2. Ratio to v-direction

3. Ratio to w-direction

scaling_method

If the std_scaling command is used, this command specifies which method is used to scale the turbulent velocity components.

If one of the dont_scale or factor_scaling command is used, this command is ignored.

1. (1=scaling is based on a standard deviation of the Mann box by convecting a point along the x coordinate at the velocity u_mean at the y-z center of the box – default, 2=scaling is based on a standard deviation calculated using the entire Mann box)

dont_scale

If this command is used the normal scaling to ensure the specified turbulence intensity is bypassed.

1. (0=scaling according to specified inputs – default, 1=raw turbulence field used without any scaling)

factor_scaling

If this command is used constant, scaling factors are applied.

1. Scaling factor in u-direction, \(F_{u}\)

2. Scaling factor in v-direction, \(F_{v}\)

3. Scaling factor in w-direction, \(F_{w}\)

box_front

1. (’last_plane’=Advects turbulence data from end of file to beginning of file - compliant with the Mann turbulence model and generator, ’first_plane’=Advects turbulence from beginning of file to end of file - opposite of the Mann turbulence model and generator)

Accepts one argument, ’first_plane’ or ’last_plane’ (default as of 13.1). Specifies whether the turbulence box front is the first or the last turbulence plane in the turbulence file. Using the argument ’last_plane’ complies with the definition of the advection direction in the Mann turbulence model and built-in turbulence generator. The default was corrected in HAWC2 version 13.1 from ’first_plane’ to ’last_plane’. This command was introduced in HAWC2 13.1.

Sub command block - flex#

Block that must be included if the flex turbulence format is chosen.

Obl.

Command name

Explanation

*

filename_u

1. Filename incl. relative path to file containing flex turbulence u-component

(example ./turb/flex-u.int)

*

filename_v

1. Filename incl. relative path to file containing flex turbulence v-component

(example ./turb/flex-v.int)

*

filename_w

1. Filename incl. relative path to file containing flex turbulence w-component

(example ./turb/flex-w.int)

std_scaling

Ratio between standard deviation for specified component related to turbulence intensity input specified in main wind command block.

1. Ratio to u-direction (default=1.0)

2. Ratio to v-direction (default=0.8)

3. Ratio to w-direction (default=0.5)

File description of a user defined shear#

In this file a user defined shear used instead, or in combination with one of the default shear types (logarithmic, exponential…). When the user defined shear is used the name and location of the datafile must be specified with the wind – user_defined_shear command. This command specifies the location of the file and activates the user defined shear. If this shear is replacing the original default shear the command wind – shear_format must be set to zero!

Only one shear can be present in a single file. The shear describes the mean wind profile of the u, v and w component of a vertical cross section at the rotor. The wind speeds are normalized with the mean wind speed defined with the command wind – wsp.

Line number

Description

1

Headline (not used by HAWC2)

2

Information of shear v-component.

#1 is the number of columns, NC

#2 is the number of rows, NR

3

Headline (not used by HAWC2)

4..+NR

Wind speed in v-direction, normalized with u-mean.

# NC columns

1

Headline (not used by HAWC2)

+1..+NR

Wind speed in u-direction, normalized with u-mean.

# NC columns.

1

Headline (not used by HAWC2)

+1..+NR

Wind speed in w-direction, normalized with u-mean.

# NC columns

1

Headline (not used by HAWC2)

+1..+NC

Horizontal position of grid points (meteorological coo)

1

Headline (not used by HAWC2)

+1..+NR

Vertical position of grid points (meteorological coo)

Example of user defined shear file#


# User defined shear file
3 4 # nr_v, nr_w   array sizes
# shear_v component, normalized with U_mean
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
# shear_u component, normalized with U_mean
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
# shear_w component, normalized with U_mean
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
# v coordinates
-50.0 
0.0 
50.0
# w coordinates (zero is at ground level)
0.0
60.0
100.0
200.0

File description of a user defined shear turbulence#

The same file format is used as for user_defined_shear (see above). Instead of a normalized mean wind speed component, an additional turbulence scale factor is given by the user. The defined scale factors are applied on top of (multiplied with) the normal turbulence scaling coming from the turbulence model/box.

user_defined_shear_turbulence is an ad hoc and inconsistent scaling of a consistent turbulence field to obtain a non-homogeneous turbulence field, with the turbulence intensity varying with height. The HAWC2 developers do not recommend the use of this functionality, and users should be aware that by using the user_defined_shear_turbulence the correlation properties between the various components in space of the generated turbulence box will no longer be valid as originally intended (for example when using the Mann turbulence model). This feature will allow users to easily alter turbulence boxes with the ’cost’ it no longer holds a reasonable physical representation of a turbulent wind field.

Example of user defined shear turbulence file#


# User defined shear turbulence file
3 4 # nr_v, nr_w   array sizes
# std_v component (to be multiplied with turbulence scaling)
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
# std_u component (to be multiplied with turbulence scaling)
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
1.0 1.0 1.0
# std_w component (to be multiplied with turbulence scaling)
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
0.0 0.0 0.0
# v coordinates
-50.0 
0.0 
50.0
# w coordinates (zero is at ground level)
0.0
60.0
100.0
200.0

Sub command block - met_mast_wind#

The met_mast_wind block can be used to specify time- and height-dependent wind speeds (u, uv, or uvw) from a data file.

The met-mast wind speeds are added to the usual wind speed; see Section How the wind speed is constructed. However, it is recommended to set the mean wind speed via the wind.wsp command and only specify fluctuations in the data file, as the turbulence box is only advected by the wind speed defined in wind.wsp.

Interpolation will be applied in time and also in height if nlevels>1. Note that below first level and above last level, the nearest met mast observation is used, i.e. no extrapolation is applied.

Obl.

Command name

Explanation

*

filename

1. Filename incl. relative path to file containing met mast data

(example ./metmastdata.txt)

*

components

1. Number of wind speed components: 1=u, 2=u,v, 3=u,v,w

*

nlevels

1. Number of heights of observation of the masts met

*

levels

This command must be repeated nlevels times.

1. Level number.

2. Global z-coordinate of observation [m], i.e. negative numbers above ground

*

deltat

1. Time step [s] between rows in data file

t0

1. Time of first row in data file

First row in data file will be used from t=0 to t=t0. The default value is 0. For t>t0, time interpolation between the rows in the data file will be applied.

The format of the met_mast_wind data file is shown below. Each data row must contain components x nlevels values.


# Custom number of header lines
# starting with "#"
u1 v1 w1 ... u_nlevels v_nlevels w_nlevels  # t=0 to t=t0
u1 v1 w1 ... u_nlevels v_nlevels w_nlevels  # t=t0+deltat
u1 v1 w1 ... u_nlevels v_nlevels w_nlevels  # t=t0+2*deltat to t=time_stop

Sub command block - wakes#

Block that must be included if the Dynamic Wake Meandering model is used to model the wind flow from one or more upstream turbines. The model is described, calibrated and validated in Larsen et al. [LMLH13], Madsen et al. [MLL+10], where Larsen et al. [LMLH13] contains both a recalibration and a validation against measurements. In order to make the model function, two Mann turbulence boxes must be used. One for the meandering turbulence – which is a box containing atmospheric turbulence, but generated with a course resolution in the v,w plane (grid size of 1 rotor diameter). It is important that the turbulence vectors at the individual grid points represent a mean value covering a grid cube. It is also important that the total size of the box is large enough to cover the different wake sources including their meandering path. The resolution in the u-direction should be as fine a possible. The used length scale should correspond to normal turbulence condition. The other turbulence box that is needed is a box representing the micro scale turbulence from the wake of the upstream turbine itself. The resolution of this box should be fine (e.g. 128x128 points) in the v,w plane which should only cover 1 rotor diameter. The resolution in the u direction should also be fine, but a short length of the box (e.g. 2.5Diameter) is OK, since the turbulence box is reused. The length scale for this turbulence is significantly shorter than for the other boxes since it represents turbulence from tip and root vortices mainly. A length scale of 1/16 rotor diameter seems appropriate.

The two turbulence boxed are included by the following sub commands


begin mann_meanderturb;
  (parameters are identical to the normal Mann turbulence box, see above)
end mann_meanderturb;

begin mann_microturb; 
  (parameters are identical to the normal Mann turbulence box, see above)
end mann_microturb;
  

The rest of the wake commands are given in the following table.

Obl.

Command name

Explanation

*

nsource

1. Number of wake sources. If 0 is used the wake module is by-passed (no source positions can be given in this case).

*

source_pos

Command that must be repeated nsource times. This gives the position of the wake source (hub position) in global coordinates. Wake source position given for down stream turbines are however not used in the simulations since they don’t affect the target turbine.

1. x-pos [m]

2. y-pos [m]

3. z-pos [m]

*

op_data

Operational conditions for the wake sources. This command can be repeated nsource times to independently set the operation data of individual sources. If op_data appears once, the same operation data is used for all sources.

1. Rotational speed [rad/s]

2. Collective pitch angle [deg]. Defined positive according to the blade root coo, with z-axis from root towards tip. Note, this is opposite to the traditional notation for a pitch angle.

ble_parameters

Parameters used for the BLE model used for developing the wake deficit due to turbulent mixing.

1. \(k_{1}\) [-], default=0.10

2. \(k_{2}\) [-], default=0.008

3. clean-up parameter (0=intermediate files are kept, 1=intermediate files are deleted), default=1

microturb_factors

Parameters used for scaling the added wake turbulence according to the deficit depth and depth derivative.

1. \(k_{m1}\) [-], factor on deficit depth, default=0.60

2. \(k_{m2}\) [-], factor on depth derivative, default=0.35

multiple_deficit_method

Command that is used for choosing the best approach for handling multiple deficit

1. method (1=MAX operator (default), 2=Direct summation)

In general it is recommended to use the MAX operator when the ambient free wind speed is below rated and the direct summation approach above rated wind speed.

tint_meander

Turbulence intensity of the meander turbulence box. If this command is not used then the default turbulence intensity from the general wind commands is used (normal use)

1. Turbulence intensity [-]

use_specific_deficit_file

File with the deficits used in the correct downstream distance is used instead of the build in deficit generator. The wind speed deficits are non-dim with the mean wind speed.

1. Filename incl. path (e.g. ./data/deficit.data)

write_ct_cq_file

File including the local axial and tangential forces (non-dim) as function of blade radius is written.

1. Filename incl. path (e.g. ./res/ct_cq.data)

write_final_deficits

File with the deficits used in the correct downstream distance is written. The windspeed deficits are non-dim with the mean wind speed.

1. Filename incl. path (e.g. ./res/ct_cq.data)

File description of a user defined wake deficit file#

When another flow solve has been used to find the non-dim turbulence deficit, eg. using an actuator disc approach, this can replace the deficit otherwise calculated internally. This method cannot be used together with multiple deficits as only one deficit can be read.

Line number

Description

1

#1 Any single character (eg. #)

#2 The number of rows (NR)

#3 (optional) The rotor diameter. If not included, the diameter of the reference turbine is used.

2..+NR

Deficit non-dim with ambient free mean wind speed.

#1 Radius (non-dim with rotor radius)

#2 Deficit (non-dim with free mean wind speed). In the free

Example of user defined wake deficit file#


# 121 178.0
0.000000000E+00  8.276891200E-01
2.500000000E-02  8.486243600E-01
5.000000000E-02  8.809613720E-01
7.500000000E-02  9.007844070E-01
1.000000000E-01  8.957724550E-01
1.250000000E-01  8.660702830E-01
1.500000000E-01  8.303410890E-01
1.750000000E-01  8.044380440E-01
2.000000000E-01  7.895593800E-01
2.250000000E-01  7.786515560E-01
2.500000000E-01  7.691674220E-01
2.750000000E-01  7.618372330E-01
3.000000000E-01  7.572012850E-01
3.250000000E-01  7.550918200E-01
3.500000000E-01  7.542137030E-01
3.750000000E-01  7.518827010E-01
4.000000000E-01  7.456746090E-01
4.250000000E-01  7.357259740E-01
4.500000000E-01  7.250309980E-01
4.750000000E-01  7.168460970E-01
5.000000000E-01  7.119492260E-01
5.250000000E-01  7.088296670E-01
5.500000000E-01  7.057605130E-01
5.750000000E-01  7.021459650E-01
6.000000000E-01  6.983228280E-01
6.250000000E-01  6.947171830E-01
6.500000000E-01  6.913423360E-01
6.750000000E-01  6.879199230E-01
7.000000000E-01  6.842943230E-01
7.250000000E-01  6.806519720E-01
7.500000000E-01  6.773263690E-01
7.750000000E-01  6.744196220E-01
8.000000000E-01  6.716445590E-01
8.250000000E-01  6.684818930E-01
8.500000000E-01  6.644046880E-01
8.750000000E-01  6.592242170E-01
9.000000000E-01  6.529686490E-01
9.250000000E-01  6.445576730E-01
9.500000000E-01  6.324201240E-01
9.750000000E-01  6.173566910E-01
1.000000000E+00  5.982423590E-01
1.028634580E+00  5.679249380E-01
1.058116050E+00  5.982195030E-01
1.088469450E+00  7.292761710E-01
1.119720570E+00  9.095984580E-01
1.151895960E+00  1.014958390E+00
1.185022960E+00  1.022114240E+00
1.219129700E+00  1.017341600E+00
...
8.903031630E+00  1.000285950E+00
9.165402860E+00  1.000213540E+00
9.435533870E+00  1.000143160E+00
9.713654150E+00  1.000066170E+00
1.000000000E+01  1.000018010E+00

Sub command block – tower_shadow_potential#

This method models the tower shadow for an upstream turbine. However, for upstream turbines we recommend instead to always use the tower_shadow_potential_2 model that accounts for movement of the tower, which is especially necessary for floating turbines. The following block must be included if the potential flow tower shadow model is chosen.

Obl.

Command name

Explanation

*

tower_offset

The tower shadow has its source at the global coordinate z axis. The offset is the base point for section 1

1. Offset value (default=0.0)

*

nsec

Command that needs to present before the radius commands.

1. Number of datasets specified by the radius command.

*

radius

Command that needs to be listed nsec times.

1. z coordinate [m]

2. Tower radius at z coordinate [m]

Sub command block – tower_shadow_jet#

This method models the tower shadow for a downstream turbine. However for downstream turbines we recommend instead to always use the tower_shadow_jet_2 model that accounts for movement of the tower, which is especially necessary for floating turbines. The following block must be included if the model based on the boundary layer equations for a jet is chosen.

Obl.

Command name

Explanation

*

tower_offset

The tower shadow has its source at the global coordinate z axis. The offset is the base point for section 1

1. Offset value (default=0.0)

*

nsec

Command that needs to present before the radius commands.

1. Number of datasets specified by the radius command.

*

radius

Command that needs to be listed nsec times.

1. z coordinate [m]

2. Tower radius at z coordinate [m]

3. Cd drag coefficient of tower section (normally 1.0 for circular section, but this depends heavily on the reynold number)

Sub command block – tower_shadow_potential_2#

This method models the tower shadow for an upstream turbine. This potential model is principally similar to the potential flow model described previously but differs in the way that the shadow source is moved and rotated in space as the tower coordinate system is moving and rotating. It is also possible to define several tower sources e.g. if the tower is a kind of tripod or quattropod. Just include more tower_shadow_potential_2 blocks if more sources are required.

The coordinate system that the shadow method is linked to is specified by the user, e.g. the mbdy coordinate from the tower main body. To make sure that the tower source model is always linked in the same way as the tower (could be tricky since the tower is fully free to be specified along the x,y or z axis or a combination) the base coordinate system for the shadow model is identical to the coordinates system obtained by the local element coordinates, where the z axis is always pointing from node 1 towards node 2. This is the reason that the tower radius input has to be specified with positive z-values, see below. The following block must be included if the tower shadow method 3 is chosen.

Obl.

Command name

Explanation

*

tower_mbdy_link

Name of the main body to which the shadow source is linked.

1. mbdy name

*

nsec

Command that needs to present before the radius commands.

1. Number of datasets specified by the radius command.

*

radius

Command that needs to be listed nsec times.

1. z coordinate [m] (always positive!)

2. Tower radius at z coordinate [m]

Sub command block – tower_shadow_jet_2#

This method models the tower shadow for a downstream turbine. This jet model is principally similar to the jet model described previously but differs in the way that the shadow source is moved and rotated in space as the tower coordinate system is moving and rotating. It is also possible to define several tower sources e.g. if the tower is a kind of tripod or quattropod. Just include more tower_shadow_jet_2 blocks if more sources are required.

The coordinate system that the shadow method is linked to is specified by the user, e.g. the mbdy coordinate from the tower main body. To make sure that the tower source model is always linked in the same way as the tower (could be tricky since the tower is fully free to be specified along the x,y or z axis or a combination) the base coordinate system for the shadow model is identical to the coordinates system obtained by the local element coordinates, where the z axis is always pointing from node 1 towards node 2. This is the reason that the tower radius input has to be specified with positive z-values, see below. The following block must be included if the tower shadow method 4 is chosen.

Obl.

Command name

Explanation

*

tower_mbdy_link

Name of the main body to which the shadow source is linked.

1. mbdy name

*

nsec

Command that needs to present before the radius commands.

1. Number of datasets specified by the radius command.

*

radius

Command that needs to be listed nsec times.

1. z coordinate [m]

2. Tower radius at z coordinate [m]

3. \(C_{d}\) drag coefficient of tower section (normally 1.0 for circular section, but this depends heavily on the reynold number)

Sub command block – user_wind_dll#

A user defined DLL can be used to provide additional wind velocity on top of what is already defined by wind input in HAWC2. During simulation, HAWC2 calls the DLL with position as argument, and the DLL must provide the wind velocity in that position on return. Apart from the position, HAWC2 also parses time and user-specified arguments to the DLL - the user-specified arguments are defined in the same output block format as is used for type2_dlls and hawc_dlls and as regular output. See Section User guide for user-wind-dll for further details.

Obl.

Command name

Explanation

*

filename

Path and name of DLL.

dll

deprecated alternative to filename.

*

subroutine

Subroutine name to call in DLL.

refsys

Reference coordinates for position (in) and velocity (in/out).

0. meteorological coordinates (default)

1. global coordinates

begin output;

<output block>

Output block definition which can be used to provide additional user-specified input to the DLL, see example in Section User guide for user-wind-dll . Note that the only output types that can be used are:

- general,

- dll,

- constraint, and

- mbdy.

end output;

Sub command block – turb_export#

With this sub command block, a mann format turbulence box including information from shear, wakes, tower shadow etc. is written. Same data point positions are used as specified in the turbulence module including the parameters specified for the originally used mann turbulence box.

Obl.

Command name

Explanation

*

filename_u

Filename of turbulence box with axial turbulence

1. File name

*

filename_v

Filename of turbulence box with lateral turbulence

1. File name

*

filename_w

Filename of turbulence box with vertical turbulence

1. File name

samplefrq

1. Sample frequency

time_start

1. Time at which the turbulence recording will start

nsteps

1. Number of steps between output

box_dim_v

1. Number of points in v-direction

2. Distance between points in v-direction

box_dim_w

1. Number of points in w-direction

2. Distance between points in w-direction

How the wind speed is constructed#

The wind speed is finally constructed based on the following user inputs (and in the meteorological coordinate system:


wsp = action_windspeed_u + gust
  + (wsp_mean*wind_ramp_factor+wind_ramp_abs)*shear_factor
  + (wsp_mean*wind_ramp_factor+wind_ramp_abs)*user_defined_shear
  + met_mast_wind + dwm_deficit_u*wind_ramp_factor
  + dwm_turb*wind_ramp_factor
  + turb * scaling * user_defined_shear_turbulence * wind_ramp_factor
  + user_wind_dll velocity

The above commands are explained in more detail in the sections above. Some additional clarifications are as follows:

  • action_windspeed_u corresponds to the DLL action command wind windspeed_u.

  • wsp_mean is the mean wind speed as set by the wsp command.

  • shear_factor is the determined by the shear type as set by the shear_format command.

  • scaling is affected by the commands std_scaling, dont_scale, and/or factor_scaling. See also the description in the Mann section above.

  • dwm_deficit_u is the velocity deficit in the wake as given by the Dynamic Wake Meandering model (DWM).

  • dwm_turb is the added turbulence due to the wake as given by the DWM model.

After transforming to the global coordinate system, the tower shadow deficit is added as follows:


wspG = wspG*tower_shadow_factor