Coverage for backend/django/flowsheetInternals/unitops/config/objects/turbine_config.py: 100%

11 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-06-23 21:51 +0000

1from common.config_types import * 

2from common.config_utils import * 

3from ..spec_helpers import * 

4from ..reusable_config.turbine_ports_config import turbine_ports 

5 

6# Define the properties as dicts for the default turbine: 

7 

8deltaP_inverted = PropertyType(displayName="Pressure Drop", type="numeric", unitType="pressure") 

9efficiency_isentropic = PropertyType( 

10 displayName="Isentropic Efficiency", type="numeric", unitType="ratio" 

11) 

12work_mechanical = PropertyType( 

13 displayName="Mechanical Work", type="numeric", unitType="heatflow" 

14) 

15efficiency_motor = PropertyType( 

16 displayName="Motor Efficiency", 

17 value=1, 

18 type="numeric", 

19 unit="dimensionless", 

20 unitType="ratio", 

21) 

22work_electrical = PropertyType( 

23 displayName="Electrical Work", 

24 value=0, 

25 type="numeric", 

26 unit="kW", 

27 unitType="heatflow", 

28) 

29properties_default = { 

30 "deltaP_inverted": deltaP_inverted, 

31 "efficiency_isentropic": efficiency_isentropic, 

32 "work_mechanical": work_mechanical, 

33 "efficiency_motor": efficiency_motor, 

34 "work_electrical": work_electrical, 

35} 

36 

37turbine_config: ObjectType = ObjectType( 

38 displayType="Turbine", 

39 displayName="Turbine", 

40 ports=turbine_ports, 

41 propertyPackagePorts=default_property_package_ports(), 

42 graphicObject=unitop_graphic(), 

43 properties=properties_default, 

44 propertySetGroups={ 

45 "default": PropertySetType( 

46 type="stateVars", 

47 displayName="Properties", 

48 stateVars=("work_mechanical", "efficiency_isentropic", "efficiency_motor"), 

49 ) 

50 }, 

51 keyProperties=["deltaP_inverted"], 

52 # Practically identical to a compressor. 

53 # An expander is called a turbine in IDAES. 

54 idaes_adapter=UnitModelAdapter( 

55 args=ArgAdapter({ 

56 "property_package": PropertyPackageAdapter(), 

57 "power_property_package": ConstantSchemaAdapter(PowerPPArgSchema()), 

58 "dynamic": ConstantArg(False), 

59 "calculation_method": ConstantArg("isentropic"), 

60 }), 

61 ), 

62)