Windfarms consist of a set of specific turbine types at geographic locations. zCFD allows users to specify the turbine characteristics and locations, and will automatically create turbine models within an existing mesh and update the local flow conditions to match the thrust coefficient and tip speed ratio for each turbine.

The ‘thrust coefficient’ is defined as a single value, and if a data point curve is present in the TRBX file this data is also supplied as the tuple array ‘thrust coefficient curve’, where the wind speed in metres per second is the index. If this curve is provided, the utility will interpolate the curve at the reference speed to create the single value. The code will issue a warning if a thrust coefficient greater than 1.0 is specified.

The same approach is taken for the ‘tip speed ratio’ single value and curve - which is automatically calculated from the rotor speed array (revolutions per minute) in the TRBX file - and the turbine power curve (see note below regarding model selection).

The ‘centre’ is the centre of the disc, which is automatically determined from the nominal hub height in the TRBX file as an offset to the ground height at the specified location. The local ground height is automatically determined from the VTK output files from a previous solver run. Note that the VTK ground data can be created with a single cycle of the solver, and does not need to include any turbines.

The vertical orientation is defined by the ‘up’ vector - normally this will be the unit vector in the z-direction. The ‘normal’ defines the vector perpendicular to the disc. The inner and outer radii are based on the TRBX definition of the size of the disc. No account is made of the hub or tower geometry.

The ‘reference point’ defines the location in the flow domain that is used as the reference value of wind velocity for this turbine. This velocity is used in combination with the thrust coefficient and the tip speed ratio for zCFD to calculate the momentum sources associated with the turbine. The user specifies the reference point location upstream of the turbine actuator using the keyword ‘reference_point_offset’ which is applied as a factor to the rotor diameter. Thus an offset of 1.0 places the reference point one turbine diameter upstream of the center of the rotor. Also by default a single value is used, but if the ‘reference plane’ is set to ‘true’ then an averaged value of the turbine zone wind speed in an upstream plane containing the reference point is applied. The flow field is used to update the turbine model every ‘update frequency’ timesteps, with a default to every timestep.

The turbine_vtk/<turbine>.vtp file defining the fluid zone for each turbine is also automatically created. The diameter of the cylindrical zone matches the turbine outer diameter, and the user specifies the length of the cylinder using the ‘turbine_zone_length_factor’. This factor is automatically multiplied by the turbine diameter. A warning will be issued and the cylinder length automatically increased if the zone does not include the reference point. In any case, a warning is issued if the cylinder length is less than one turbine diameter.

The utility also automatically creates a set of monitor points for each turbine, all in a single file (<case_name>_probes.py):

The ‘frequency’ is the number of solver cycles between outputs, and the ‘monitor’ defines the name of the probe using the WindFarmer standard notation.

The ‘model’ choice depends upon how the user wants zCFD to calculate thrust and torque on the actuator disc. The default ‘induction’ model uses linear momentum theory and a specified thrust coefficient based upon the upsteam reference point values (plus an assumption of Betz optimality), whereas ‘simple’ uses the specified thrust and turbine power curves to apply the reference values directly to the actuator. These Python functions are detailed (and can be modified by the user) in:

> /INSTALL_LOCATION/zCFD-version/bin/zutil/__init__.py

Because the zone and probe files are automatically created, the following lines must be added to the end of the standard zCFD parameter definition file <case_name>.py to insert the data:

When run, zCFD will include the probe data in the <case_name>_report.csv file. Note that this utility make take a few seconds to run, especially if there are large numbers of turbines, or points on the mesh boundary.