Coverage for backend/flowsheetInternals/formula_templates/formula_templates.py: 100%

2 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-11-06 23:27 +0000

1from .template_schema import TemplateSchema, TemplateFieldSchema 

2 

3templates: dict[str, TemplateSchema] = { 

4 "energy_emissions": TemplateSchema( 

5 name="Energy Emissions", 

6 required_properties=["power"], 

7 fields=[ 

8 TemplateFieldSchema( 

9 key="emissions_factor", name="Emissions Factor", formula="" 

10 ), 

11 TemplateFieldSchema( 

12 key="emissions", 

13 name="Emissions", 

14 formula="[power] * [emissions_factor]", 

15 ), 

16 ], 

17 ), 

18 "energy_cost": TemplateSchema( 

19 name="Energy Cost", 

20 required_properties=["power"], 

21 fields=[ 

22 TemplateFieldSchema(key="cost_per_watt", name="Cost per Watt", formula=""), 

23 TemplateFieldSchema( 

24 key="operational_cost", 

25 name="Operational Cost", 

26 formula="[power] * [cost_per_watt]", 

27 ), 

28 ], 

29 ), 

30 "panel_install_cost": TemplateSchema( 

31 name="Solar Installation Cost", 

32 required_properties=["panel_count"], 

33 fields=[ 

34 TemplateFieldSchema( 

35 key="cost_per_panel", name="Cost per Panel", formula="" 

36 ), 

37 TemplateFieldSchema( 

38 key="operational_cost", 

39 name="Operational Cost", 

40 formula="[panel_count] * [cost_per_panel]", 

41 ), 

42 ], 

43 ), 

44 "panel_install_cost": TemplateSchema( 

45 name="Solar Installation Cost", 

46 required_properties=["panel_count", "area"], 

47 fields=[ 

48 TemplateFieldSchema( 

49 key="cost_per_square_meter", name="Cost per Square Meter", formula="" 

50 ), 

51 TemplateFieldSchema( 

52 key="cost_per_panel", 

53 name="Cost per Panel", 

54 formula="[area] * [cost_per_square_meter]", 

55 ), 

56 TemplateFieldSchema( 

57 key="capital_cost", 

58 name="Capital Cost", 

59 formula="[panel_count] * [cost_per_panel]", 

60 ), 

61 ], 

62 ), 

63 "hx_area_cost": TemplateSchema( 

64 name="Capital Estimate", 

65 required_properties=["area"], 

66 fields=[ 

67 TemplateFieldSchema( 

68 key="cost_per_area", name="Cost per Square Meter", formula="" 

69 ), 

70 TemplateFieldSchema( 

71 key="capital_cost", 

72 name="Capital Cost", 

73 formula="[area] * [cost_per_area]", 

74 ), 

75 ], 

76 ), 

77 "material_cost": TemplateSchema( 

78 name="Material Costs", 

79 required_properties=["massFlow"], 

80 fields=[ 

81 TemplateFieldSchema(key="cost_per_kg", name="Cost per Kg", formula=""), 

82 TemplateFieldSchema( 

83 key="material_cost", 

84 name="Material Cost", 

85 formula="[massFlow] * [cost_per_kg]", 

86 ), 

87 ], 

88 ), 

89 "cooler_cost": TemplateSchema( 

90 name="Operational Cost", 

91 required_properties=["heat_duty"], 

92 fields=[ 

93 TemplateFieldSchema(key="cost_per_watt", name="Cost per Watt", formula=""), 

94 TemplateFieldSchema( 

95 key="effectiveness", name="Cooling Effectiveness", formula="" 

96 ), 

97 TemplateFieldSchema( 

98 key="operational_cost", 

99 name="Operational Cost", 

100 formula="[heatRemoved] * [effectiveness] * [cost_per_watt]", 

101 ), 

102 ], 

103 ), 

104 "heater_cost": TemplateSchema( 

105 name="Operational Cost", 

106 required_properties=["heatAdded"], 

107 fields=[ 

108 TemplateFieldSchema(key="cost_per_watt", name="Cost per Watt", formula=""), 

109 TemplateFieldSchema( 

110 key="efficiency", name="Heating Efficiency", formula="" 

111 ), 

112 TemplateFieldSchema( 

113 key="operational_cost", 

114 name="Operational Cost", 

115 formula="[heatAdded] * [efficiency] * [cost_per_watt]", 

116 ), 

117 ], 

118 ), 

119}