# 2.4. Turbines¶

The turbine module encapsulates the specification of the turbines which are being optimized, how they are controlled and how they are parameterised.

## 2.4.1. Turbines¶

### 2.4.1.1. Bump turbine¶

class opentidalfarm.turbines.bump_turbine.BumpTurbine(friction=12.0, diameter=20.0, minimum_distance=None, controls=<opentidalfarm.turbines.controls.Controls object>)[source]

Bases: BaseTurbine

Create a turbine that is modelled as a bump of bottom friction

### 2.4.1.2. Thrust turbine¶

class opentidalfarm.turbines.thrust_turbine.ThrustTurbine(friction=1.0, diameter=20.0, swept_diameter=20.0, c_t_design=0.6, cut_in_speed=1, cut_out_speed=2.5, water_depth=None, upwind_correction=True, minimum_distance=None, controls=<opentidalfarm.turbines.controls.Controls object>)[source]

Bases: BaseTurbine

Create a turbine that is modelled as a bump of bottom friction. In addition this turbine implements cut in and out speeds for the power production.

This turbine introduces a non-linearity, which is handled explicitly.

compute_C_t(u_mag)[source]

Return C_t as a function of u_mag

greater_than_cut_out(u_mag)[source]

The function describing the thrust coefficient for velocities > cut_out_speed

less_than_cut_out(u_mag)[source]

The function describing the thrust coefficient for velocities < cut_out_speed

class opentidalfarm.turbines.implicit_thrust_turbine.ImplicitThrustTurbine(friction=12.0, diameter=20.0, minimum_distance=None, controls=<opentidalfarm.turbines.controls.Controls object>)[source]

Bases: BaseTurbine

### 2.4.1.3. The base turbine¶

class opentidalfarm.turbines.base_turbine.BaseTurbine(friction=None, diameter=None, minimum_distance=None, controls=None, bump=False, smeared=False, thrust=False, implicit_thrust=False)[source]

A base turbine class from which others are derived.

property diameter

The diameter of a turbine. :returns: The diameter of a turbine. :rtype: float

property friction

The maximum friction coefficient of a turbine. :returns: The maximum friction coefficient of the turbine. :rtype: float

property integral

The integral of the turbine bump function. :returns: The integral of the turbine bump function. :rtype: float

property minimum_distance

The minimum distance allowed between turbines. :returns: The minimum distance allowed between turbines. :rtype: float

The radius of a turbine. :returns: The radius of a turbine. :rtype: float

### 2.4.1.4. Controls¶

class opentidalfarm.turbines.controls.Controls(position=False, friction=False, dynamic_friction=False)[source]

Specifies the controls for optimisation.

This class holds the controls for optimisation, such as the position and the friction of the turbines. The user initializes this class with their desired control parameters.

property dynamic_friction

Whether dynamic friction is enabled as a control parameter.

Returns:

True if dynamic friction is enabled as a control parameter.

Return type:

bool

property friction

Whether friction is enabled as a control parameter.

Returns:

True if friction is enabled as a control parameter.

Return type:

bool

property position

Whether position is enabled as a control parameter.

Returns:

True if position is enabled as a control parameter.

Return type:

bool