Skip to content

Hydroelectric Turbine

Represents a Hydroelectric Turbine unit operation that calculates electrical power output from the static and velocity heads, water flow rate, and turbine efficiency.

DWSIM.UnitOperations.UnitOperations.HydroelectricTurbine
Assembly DWSIM.UnitOperations.dll · Object ← BaseClass ← UnitOpBaseClass ← CleanEnergyUnitOpBase ← HydroelectricTurbine

At a glance

Hydroelectric Turbine in the example flowsheet

Port Index Connected in the example
Inlet, material 0 Water-in
Outlet, material 0 Water-out
Outlet, energy 1 HT-1 power

Example

This code runs on every build of this site, and the output below is what it printed.

fs = (Flowsheet.Create("HydroTurbineExample")
      .WithCompound("Water")
      .WithPropertyPackage(PropertyPackages.SteamTables))

water_in = (fs.AddMaterialStream("Water-in")
            .At(Q.Celsius(15.0), Q.Bar(1.0))
            .WithVolumetricFlow(Q.CubicMetersPerSecond(2.0)))
water_out = fs.AddMaterialStream("Water-out")
power = fs.AddEnergyStream("HT-1 power")

ht = (fs.AddHydroelectricTurbine("HT-1")
      .WithStaticHeadM(50.0)
      .WithInletVelocityMPerS(3.0)
      .WithOutletVelocityMPerS(1.0)
      .WithEfficiencyPercent(90.0))
ht.Object.CreateConnectors()                 # the canvas creates the ports on first draw
ht.ConnectFeed(water_in, 0).ConnectProduct(water_out, 0)
# electric power leaves through outlet port 1
ht.ConnectEnergyProduct(power, 1)

fs.AutoLayout()
fs.Solve()

print(f"Mass flow          = {water_in.MassFlowKgPerSecond:.1f} kg/s")
print(f"Velocity head      = {ht.Object.VelocityHead:.3f} m")
print(f"Total head         = {ht.TotalHeadM:.3f} m")
print(f"Generated power    = {ht.GeneratedPowerKW:.1f} kW")
print(f"Outlet T           = {water_out.TemperatureK - 273.15:.3f} C")

Output

Mass flow          = 1998.2 kg/s
Velocity head      = 0.408 m
Total head         = 50.408 m
Generated power    = 889.0 kW
Outlet T           = 15.012 C

DWSIM 10.2.11.0, generated 2026-10-08.

Properties

IDs accepted by GetPropertyValue, SetPropertyValue, the sensitivity analysis, the optimizer, the Adjust block and dynamic events. Units are SI; pass another unit system to GetPropertyValue to get them converted.

ID Name Unit (SI) Input
Efficiency yes
Static Head m yes
Velocity Head m result
Total Head m result
Inlet Velocity m/s yes
Outlet Velocity m/s yes
Generated Power kW result

Learn more

API members

Public members declared by this class. Inherited members are documented on the base classes.

Constructors

HydroelectricTurbine(): Initializes a new default instance of the HydroelectricTurbine class.

Initializes a new default instance of the HydroelectricTurbine class.

public HydroelectricTurbine()
Public Sub New()

Properties

Efficiency: Gets or sets the turbine efficiency (%).

Gets or sets the turbine efficiency (%).

public double Efficiency { get; set; }
Public Property Efficiency As Double

GeneratedPower: Gets or sets the calculated generated electrical power (kW).

Gets or sets the calculated generated electrical power (kW).

public double GeneratedPower { get; set; }
Public Property GeneratedPower As Double

InletVelocity: Gets or sets the inlet water velocity (m/s).

Gets or sets the inlet water velocity (m/s).

public double InletVelocity { get; set; }
Public Property InletVelocity As Double

OutletVelocity: Gets or sets the outlet water velocity (m/s).

Gets or sets the outlet water velocity (m/s).

public double OutletVelocity { get; set; }
Public Property OutletVelocity As Double

Prefix: Gets or sets the default name prefix for this unit operation.

Gets or sets the default name prefix for this unit operation.

public override string Prefix { get; set; }
Public Overrides Property Prefix As String

StaticHead: Gets or sets the static head (m).

Gets or sets the static head (m).

public double StaticHead { get; set; }
Public Property StaticHead As Double

TotalHead: Gets or sets the total head used in the power calculation (m).

Gets or sets the total head used in the power calculation (m).

public double TotalHead { get; set; }
Public Property TotalHead As Double

VelocityHead: Gets or sets the velocity head (m).

Gets or sets the velocity head (m).

public double VelocityHead { get; set; }
Public Property VelocityHead As Double

Methods

Calculate(object): Calculates the generated power from the water flow, head, and turbine efficiency.

Calculates the generated power from the water flow, head, and turbine efficiency.

Parameter Type Description
args Object
public override void Calculate(object args = null)
Public Overrides Sub Calculate(args As Object = Nothing)

CloneXML(): Creates a deep copy via XML serialization.

Creates a deep copy via XML serialization.

public override object CloneXML()
Public Overrides Function CloneXML() As Object

CloseEditForm(): Closes and disposes the editing form.

Closes and disposes the editing form.

public override void CloseEditForm()
Public Overrides Sub CloseEditForm()

CreateConnectors(): Creates the graphic connector definitions on the flowsheet.

Creates the graphic connector definitions on the flowsheet.

public override void CreateConnectors()
Public Overrides Sub CreateConnectors()

DisplayEditForm(): Opens or activates the editing form.

Opens or activates the editing form.

public override void DisplayEditForm()
Public Overrides Sub DisplayEditForm()

Draw(object): Draws the hydroelectric turbine icon on the given SkiaSharp canvas.

Draws the hydroelectric turbine icon on the given SkiaSharp canvas.

Parameter Type Description
g Object
public override void Draw(object g)
Public Overrides Sub Draw(g As Object)

GetDisplayDescription(): Returns the display description for this unit operation.

Returns the display description for this unit operation.

public override string GetDisplayDescription()
Public Overrides Function GetDisplayDescription() As String

GetDisplayName(): Returns the display name for this unit operation.

Returns the display name for this unit operation.

public override string GetDisplayName()
Public Overrides Function GetDisplayName() As String

GetIconBitmapBytes(): Returns the icon bitmap as a byte array.

Returns the icon bitmap as a byte array.

public override byte[] GetIconBitmapBytes()
Public Overrides Function GetIconBitmapBytes() As Byte()

GetProperties(PropertyType): Returns an array of property identifiers for the specified property type.

Returns an array of property identifiers for the specified property type.

Parameter Type Description
proptype PropertyType
public override string[] GetProperties(PropertyType proptype)
Public Overrides Function GetProperties(proptype As PropertyType) As String()

GetPropertyUnit(string, IUnitsOfMeasure): Returns the unit string for the specified property.

Returns the unit string for the specified property.

Parameter Type Description
prop String
su IUnitsOfMeasure
public override string GetPropertyUnit(string prop, IUnitsOfMeasure su = null)
Public Overrides Function GetPropertyUnit(prop As String, su As IUnitsOfMeasure = Nothing) As String

GetPropertyValue(string, IUnitsOfMeasure): Returns the value of the specified property.

Returns the value of the specified property.

Parameter Type Description
prop String
su IUnitsOfMeasure
public override object GetPropertyValue(string prop, IUnitsOfMeasure su = null)
Public Overrides Function GetPropertyValue(prop As String, su As IUnitsOfMeasure = Nothing) As Object

GetReport(IUnitsOfMeasure, CultureInfo, string): Generates a plain-text report of the turbine results.

Generates a plain-text report of the turbine results.

Parameter Type Description
su IUnitsOfMeasure
ci CultureInfo
numberformat String
public override string GetReport(IUnitsOfMeasure su, CultureInfo ci, string numberformat)
Public Overrides Function GetReport(su As IUnitsOfMeasure, ci As CultureInfo, numberformat As String) As String

GetStructuredReport(): Generates a structured (tabular) results report for display in the UI.

Generates a structured (tabular) results report for display in the UI.

public override List<Tuple<ReportItemType, string[]>> GetStructuredReport()
Public Overrides Function GetStructuredReport() As List(Of Tuple(Of ReportItemType, String()))

LoadData(List<XElement>): Restores the turbine state from XML.

Restores the turbine state from XML.

Parameter Type Description
data List<XElement>
public override bool LoadData(List<XElement> data)
Public Overrides Function LoadData(data As List(Of XElement)) As Boolean

PopulateEditorPanel(object): Populates the cross-platform editor panel with controls.

Populates the cross-platform editor panel with controls.

Parameter Type Description
ctner Object
public override void PopulateEditorPanel(object ctner)
Public Overrides Sub PopulateEditorPanel(ctner As Object)

ReturnInstance(string): Creates and returns a new instance for deserialization.

Creates and returns a new instance for deserialization.

Parameter Type Description
typename String
public override object ReturnInstance(string typename)
Public Overrides Function ReturnInstance(typename As String) As Object

SaveData(): Serializes the turbine state to XML.

Serializes the turbine state to XML.

public override List<XElement> SaveData()
Public Overrides Function SaveData() As List(Of XElement)

SetPropertyValue(string, object, IUnitsOfMeasure): Sets the value of the specified property.

Sets the value of the specified property.

Parameter Type Description
prop String
propval Object
su IUnitsOfMeasure
public override bool SetPropertyValue(string prop, object propval, IUnitsOfMeasure su = null)
Public Overrides Function SetPropertyValue(prop As String, propval As Object, su As IUnitsOfMeasure = Nothing) As Boolean

UpdateEditForm(): Refreshes the editing form with updated data.

Refreshes the editing form with updated data.

public override void UpdateEditForm()
Public Overrides Sub UpdateEditForm()

Fields

f: The classic (WinForms) editor window open for this unit operation, if any.

The classic (WinForms) editor window open for this unit operation, if any. Not saved with the flowsheet.

public object f
Public f As Object