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
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from .template_schema import TemplateSchema, TemplateFieldSchema
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}