Source code for ocmw.core.tecSpecs
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Tidal energy converter (TEC) parameters used to estimate power production.
"""
# ----------------------------------------------------------------------------
# IMPORTS
# ----------------------------------------------------------------------------
# Standard Python Dependencies
import inspect
# Non-Standard Python Dependencies
# Local Module Dependencies
# Other Dependencies
# ----------------------------------------------------------------------------
# GLOBAL VARIABLES
# ----------------------------------------------------------------------------
tecList = ['D10','DeepGenIV','HS1000','AR1500','AR2000','SR2000','OrbitalO2',
'OrbitalO2X','Nova100D','Nova250D','Nova500D']
# ----------------------------------------------------------------------------
# CLASS DEFINITIONS
# ----------------------------------------------------------------------------
[docs]
class tidalTurbine:
"""
Object for storing key Tidal Turbine paramters
"""
def __init__(self):
self.model = ''
self.designer = ''
self.bottomMounted = True
self.rotorDiam = None
self.hubHeight = None
self.cutInSpeed = None
self.cutOutSPeed = None
self.ratedSpeed = None
self.Cp = None
def __properties(self):
"""
Print a list of the class properties to std output
Returns
-------
None.
"""
props = []
for i in inspect.getmembers(self):
if not i[0].startswith('_'):
if not inspect.ismethod(i[1]):
props.append(i[0])
print(props)
return
# ----------------------------------------------------------------------------
# FUNCTION DEFINITIONS
# ----------------------------------------------------------------------------
[docs]
def getTec(tecName: str):
"""
Function to select a specific tidal energy converter (TEC).
"""
if tecName in tecList:
if "d10" in [tecName.lower()]:
tec = tecD10()
if "deepgeniv" in [tecName.lower()]:
tec = tecDeepGenIV()
if "hs1000" in [tecName.lower()]:
tec = tecHS1000()
if "ar1500" in [tecName.lower()]:
tec = tecAR1500()
if "ar2000" in [tecName.lower()]:
tec = tecAR2000()
if "sr2000" in [tecName.lower()]:
tec = tecSR2000()
if "orbitalo2" in [tecName.lower()]:
tec = tecOrbitalO2()
if "orbitalo2x" in [tecName.lower()]:
tec = tecOrbitalO2X()
if "nova100d" in [tecName.lower()]:
tec = tecNova100D()
if "nova250d" in [tecName.lower()]:
tec = tecNova250D()
if "nova500d" in [tecName.lower()]:
tec = tecNova500D()
else:
print('Warning: TEC '+tecName+' not avaialble.')
print('Options: ',tecList)
tec = None
return tec
[docs]
def tecD10():
"""Saballa D10 turbine parameters
"""
# Sabella D10
D10 = tidalTurbine
D10.model = 'D10'
D10.designer = 'Sabella'
D10.bottomMounted = True
D10.rotorDiam = 10.0
D10.hubHeight = 11.0
D10.cutInSpeed = 0.4
D10.cutOutSpeed = 4.0
D10.ratedSpeed = 3.1
D10.Cp = 0.39
return D10
[docs]
def tecDeepGenIV():
"""Alstrom DeepGen IV turbine parameters
"""
# DeepGen IV
DeepGenIV = tidalTurbine
DeepGenIV.model = 'DeepGenIV'
DeepGenIV.designer = 'Alstrom'
DeepGenIV.bottomMounted = True
DeepGenIV.rotorDiam = 18.0
DeepGenIV.hubHeight = 19.0
DeepGenIV.cutInSpeed = 1.0
DeepGenIV.cutOutSpeed = 4.0
DeepGenIV.ratedSpeed = 2.7
DeepGenIV.Cp = 0.39
return DeepGenIV
[docs]
def tecHS1000():
"""HammerFest HS1000 turbine parameters
"""
# HS1000
HS1000 = tidalTurbine
HS1000.model = 'HammerFest HS1000'
HS1000.designer = 'Andritz Hydro'
HS1000.bottomMounted = True
HS1000.rotorDiam = 21.0
HS1000.hubHeight = 15.0
HS1000.cutInSpeed = 1.0
HS1000.cutOutSpeed = 4.0
HS1000.ratedSpeed = 3.15
HS1000.Cp = 0.33
return HS1000
[docs]
def tecAR1500():
"""SIMEC-Atlantis AR1500 turbine parameters
"""
# AR1500
AR1500 = tidalTurbine
AR1500.model = 'AR1500'
AR1500.designer = 'SIMEC-Atlantis'
AR1500.bottomMounted = True
AR1500.rotorDiam = 18.0
AR1500.hubHeight = 14.0
AR1500.cutInSpeed = 1.0
AR1500.cutOutSpeed = 5.0
AR1500.ratedSpeed = 3.00
AR1500.Cp = 0.39
return AR1500
[docs]
def tecAR2000():
"""SIMEC-Atlantis AR2000 turbine parameters
"""
# AR2000
AR2000 = tidalTurbine
AR2000.model = 'AR2000'
AR2000.designer = 'SIMEC-Atlantis'
AR2000.bottomMounted = True
AR2000.rotorDiam = 20.0
AR2000.hubHeight = 15.0
AR2000.cutInSpeed = 1.0
AR2000.cutOutSpeed = 4.0
AR2000.ratedSpeed = 3.05
AR2000.Cp = 0.36
return AR2000
[docs]
def tecSR2000():
"""Orbital SR2000 turbine parameters
"""
# Orbital SR2000
Orbital = tidalTurbine
Orbital.model = 'Orbital SR2000'
Orbital.designer = 'Orbital Marine Power'
Orbital.bottomMounted = False
Orbital.rotorDiam = 20.0
Orbital.hubHeight = 13.0
Orbital.cutInSpeed = 1.0
Orbital.cutOutSpeed = 4.5
Orbital.ratedSpeed = 2.5
Orbital.Cp = 0.36
return Orbital
[docs]
def tecOrbitalO2():
"""Orbital O2.2 turbine parameters
"""
# Orbital O2.2
Orbital = tidalTurbine
Orbital.model = 'Orbital O2.2'
Orbital.designer = 'Orbital Marine Power'
Orbital.bottomMounted = False
Orbital.rotorDiam = 22.0
Orbital.hubHeight = 14.2
Orbital.cutInSpeed = 1.0
Orbital.cutOutSpeed = 4.5
Orbital.ratedSpeed = 2.5
Orbital.Cp = 0.36
return Orbital
[docs]
def tecOrbitalO2X():
"""Orbital O2X turbine parameters
"""
# Orbital O2X
Orbital = tidalTurbine
Orbital.model = 'Orbital O2X'
Orbital.designer = 'Orbital Marine Power'
Orbital.bottomMounted = False
Orbital.rotorDiam = 24.0
Orbital.hubHeight = 15.0
Orbital.cutInSpeed = 1.0
Orbital.cutOutSpeed = 3.4
Orbital.ratedSpeed = 2.5
Orbital.Cp = 0.36
return Orbital
[docs]
def tecNova100D():
"""Nova Innovation M100_D turbine parameters
"""
# Nova Innovation M100_D
Nova100D = tidalTurbine
Nova100D.model = 'M100_D'
Nova100D.designer = 'Nova Innovation'
Nova100D.bottomMounted = True
Nova100D.rotorDiam = 8.5
Nova100D.hubHeight = 8.9
Nova100D.cutInSpeed = 0.5
Nova100D.cutOutSpeed = 6.0
Nova100D.ratedSpeed = 2.0
Nova100D.Cp = 0.43
return Nova100D
[docs]
def tecNova250D():
"""Nova Innovation M250_D turbine parameters
"""
# Nova Innovation M250_D
Nova250D = tidalTurbine
Nova250D.model = 'M250_D'
Nova250D.designer = 'Nova Innovation'
Nova250D.bottomMounted = True
Nova250D.rotorDiam = 7.5
Nova250D.hubHeight = 9.0
Nova250D.cutInSpeed = 0.5
Nova250D.cutOutSpeed = 6.0
Nova250D.ratedSpeed = 2.5
Nova250D.Cp = 0.43
return Nova250D
[docs]
def tecNova500D():
"""Nova Innovation M500_D turbine parameters
"""
# Nova Innovation M500_D
Nova500D = tidalTurbine
Nova500D.model = 'M500_D'
Nova500D.designer = 'Nova Innovation'
Nova500D.bottomMounted = True
Nova500D.rotorDiam = 13.5
Nova500D.hubHeight = 13.0
Nova500D.cutInSpeed = 1.0
Nova500D.cutOutSpeed = 6.0
Nova500D.ratedSpeed = 2.5
Nova500D.Cp = 0.43
return Nova500D
# ----------------------------------------------------------------------------
# MAIN PROCESS
# ----------------------------------------------------------------------------
#def main():
# return
#--------------------------------------------------------------------------
# INTERFACE
#--------------------------------------------------------------------------
#if __name__ == "__main__":
# main()