Spaces:
Sleeping
Sleeping
Update app/m_c_data.py
Browse files- app/m_c_data.py +193 -137
app/m_c_data.py
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
"""
|
2 |
HVAC Load Calculator - Materials, Fenestrations, and Constructions Data Module
|
3 |
|
4 |
-
This module
|
5 |
-
|
6 |
|
7 |
Developed by: Dr Majed Abuseif, Deakin University
|
8 |
漏 2025
|
@@ -15,164 +15,220 @@ from typing import Dict, List, Any
|
|
15 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
16 |
logger = logging.getLogger(__name__)
|
17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
# Sample Materials Data
|
19 |
-
# Each material has properties including thermal conductivity, density, specific heat,
|
20 |
-
# embodied carbon, and cost information
|
21 |
SAMPLE_MATERIALS = {
|
22 |
-
|
23 |
-
"name": "Brick",
|
24 |
-
"type": "opaque",
|
25 |
-
"category": "Masonry",
|
26 |
-
"thermal_conductivity": 0.72, # W/m路K
|
27 |
-
"density": 1920, # kg/m鲁
|
28 |
-
"specific_heat": 840, # J/kg路K
|
29 |
-
"thickness_range": {
|
30 |
-
"min": 0.09, # m
|
31 |
-
"max": 0.24, # m
|
32 |
-
"default": 0.11 # m
|
33 |
-
},
|
34 |
-
"embodied_carbon": 0.24, # kgCO2e/kg
|
35 |
-
"cost": {
|
36 |
-
"material": 85.0, # $/m鲁
|
37 |
-
"labor": 45.0, # $/m虏
|
38 |
-
"replacement_years": 50 # years
|
39 |
-
},
|
40 |
-
"description": "Standard clay brick for exterior walls"
|
41 |
-
},
|
42 |
-
"Concrete": {
|
43 |
-
"name": "Concrete",
|
44 |
"type": "opaque",
|
45 |
-
"category":
|
46 |
-
"
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
"min": 0.10, # m
|
51 |
-
"max": 0.30, # m
|
52 |
-
"default": 0.15 # m
|
53 |
},
|
54 |
-
"
|
|
|
|
|
|
|
55 |
"cost": {
|
56 |
-
"material":
|
57 |
-
"labor":
|
58 |
-
"replacement_years":
|
59 |
},
|
60 |
-
"description": "
|
61 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
}
|
63 |
|
64 |
# Sample Fenestrations Data
|
65 |
-
# Each fenestration has properties including U-value, SHGC, visible transmittance,
|
66 |
-
# embodied carbon, and cost information
|
67 |
SAMPLE_FENESTRATIONS = {
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
"
|
77 |
-
"
|
78 |
-
"
|
79 |
-
|
80 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
81 |
},
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
"
|
86 |
-
"
|
87 |
-
"
|
88 |
-
"
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
"
|
94 |
-
|
|
|
|
|
95 |
}
|
96 |
|
97 |
# Sample Constructions Data
|
98 |
-
# Each construction is a multi-layer assembly with properties including layers,
|
99 |
-
# overall U-value, thermal mass, and embodied carbon
|
100 |
SAMPLE_CONSTRUCTIONS = {
|
101 |
-
|
102 |
-
"
|
103 |
-
"
|
104 |
-
"
|
105 |
-
|
106 |
-
|
107 |
-
"thickness": 0.11 # m
|
108 |
-
},
|
109 |
-
{
|
110 |
-
"material": "Mineral Wool Insulation",
|
111 |
-
"thickness": 0.05 # m
|
112 |
-
},
|
113 |
-
{
|
114 |
-
"material": "Gypsum Board",
|
115 |
-
"thickness": 0.013 # m
|
116 |
-
}
|
117 |
-
],
|
118 |
-
"u_value": 0.45, # W/m虏路K
|
119 |
-
"thermal_mass": 220.0, # kJ/m虏路K
|
120 |
-
"embodied_carbon": 75.0, # kgCO2e/m虏
|
121 |
-
"cost": {
|
122 |
-
"material": 95.0, # $/m虏
|
123 |
-
"labor": 65.0, # $/m虏
|
124 |
-
"replacement_years": 50 # years
|
125 |
-
},
|
126 |
-
"description": "Standard brick wall with mineral wool insulation and gypsum board interior finish"
|
127 |
-
},
|
128 |
-
"Concrete Floor": {
|
129 |
-
"name": "Concrete Floor",
|
130 |
-
"type": "floor",
|
131 |
-
"layers": [
|
132 |
-
{
|
133 |
-
"material": "Concrete",
|
134 |
-
"thickness": 0.15 # m
|
135 |
-
},
|
136 |
-
{
|
137 |
-
"material": "XPS Insulation",
|
138 |
-
"thickness": 0.05 # m
|
139 |
-
}
|
140 |
-
],
|
141 |
-
"u_value": 0.55, # W/m虏路K
|
142 |
-
"thermal_mass": 330.0, # kJ/m虏路K
|
143 |
-
"embodied_carbon": 65.0, # kgCO2e/m虏
|
144 |
"cost": {
|
145 |
-
"material":
|
146 |
-
"labor":
|
147 |
-
"replacement_years": 75
|
148 |
},
|
149 |
-
"description": "
|
150 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
}
|
152 |
|
|
|
153 |
def get_default_materials() -> Dict[str, Any]:
|
154 |
-
"""
|
155 |
-
|
156 |
-
|
157 |
-
Returns:
|
158 |
-
Dict of material name to material properties
|
159 |
-
"""
|
160 |
return SAMPLE_MATERIALS
|
161 |
|
162 |
def get_default_fenestrations() -> Dict[str, Any]:
|
163 |
-
"""
|
164 |
-
|
165 |
-
|
166 |
-
Returns:
|
167 |
-
Dict of fenestration name to fenestration properties
|
168 |
-
"""
|
169 |
return SAMPLE_FENESTRATIONS
|
170 |
|
171 |
def get_default_constructions() -> Dict[str, Any]:
|
172 |
-
"""
|
173 |
-
|
174 |
-
|
175 |
-
Returns:
|
176 |
-
Dict of construction name to construction properties
|
177 |
-
"""
|
178 |
-
return SAMPLE_CONSTRUCTIONS
|
|
|
1 |
"""
|
2 |
HVAC Load Calculator - Materials, Fenestrations, and Constructions Data Module
|
3 |
|
4 |
+
This module provides default materials, fenestrations, and constructions data for the HVAC Load Calculator.
|
5 |
+
Data is adapted from material_library.py, compacted to reduce code size while retaining all properties.
|
6 |
|
7 |
Developed by: Dr Majed Abuseif, Deakin University
|
8 |
漏 2025
|
|
|
15 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
16 |
logger = logging.getLogger(__name__)
|
17 |
|
18 |
+
# Default values
|
19 |
+
DEFAULT_MATERIAL_PROPERTIES = {
|
20 |
+
"absorptivity": 0.5,
|
21 |
+
"emissivity": 0.925,
|
22 |
+
"thickness_range": {"min": 0.01, "max": 0.5}
|
23 |
+
}
|
24 |
+
DEFAULT_WINDOW_PROPERTIES = {"h_o": 17.8}
|
25 |
+
DEFAULT_DOOR_PROPERTIES = {"emissivity": 0.925}
|
26 |
+
|
27 |
# Sample Materials Data
|
|
|
|
|
28 |
SAMPLE_MATERIALS = {
|
29 |
+
name: {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
"type": "opaque",
|
31 |
+
"category": category,
|
32 |
+
"thermal_properties": {
|
33 |
+
"conductivity": data[0],
|
34 |
+
"density": data[1],
|
35 |
+
"specific_heat": data[2]
|
|
|
|
|
|
|
36 |
},
|
37 |
+
"thickness_range": {**DEFAULT_MATERIAL_PROPERTIES["thickness_range"], "default": data[3]},
|
38 |
+
"embodied_carbon": data[4],
|
39 |
+
"absorptivity": data[5] if len(data) > 5 else DEFAULT_MATERIAL_PROPERTIES["absorptivity"],
|
40 |
+
"emissivity": data[6] if len(data) > 6 else DEFAULT_MATERIAL_PROPERTIES["emissivity"],
|
41 |
"cost": {
|
42 |
+
"material": data[7] if len(data) > 7 else 10.0,
|
43 |
+
"labor": (data[7] * 0.5) if len(data) > 7 else 5.0,
|
44 |
+
"replacement_years": 50 if category in ["Structural", "Sub-Structural"] else 40 if category == "Finishing" else 30
|
45 |
},
|
46 |
+
"description": f"{name} for {category.lower()} applications"
|
47 |
+
} for name, category, data in [
|
48 |
+
("F04 Wall air space resistance", "Insulation", [0.01, 1.0, 1000.0, 0.01, 0.01, 0.5, 0.925, 0.5]),
|
49 |
+
("F05 Ceiling air space resistance", "Insulation", [0.01, 1.0, 1000.0, 0.01, 0.01, 0.5, 0.925, 0.5]),
|
50 |
+
("F06 EIFS finish", "Finishing", [0.72, 1856.0, 840.0, 0.0095, 0.3, 0.5, 0.925, 17.6]),
|
51 |
+
("F07 25mm stucco", "Finishing", [0.72, 1856.0, 840.0, 0.0254, 0.2, 0.6, 0.91, 14.1]),
|
52 |
+
("F08 Metal surface", "Sub-Structural", [45.28, 7824.0, 500.0, 0.001, 2.2, 0.7, 0.075, 25.0]),
|
53 |
+
("F09 25mm cement plaster", "Finishing", [0.72, 1856.0, 840.0, 0.0254, 0.2, 0.6, 0.91, 14.1]),
|
54 |
+
("F10 13mm gypsum board", "Finishing", [0.16, 800.0, 1090.0, 0.0127, 0.25, 0.4, 0.925, 5.1]),
|
55 |
+
("F11 16mm gypsum board", "Finishing", [0.16, 800.0, 1090.0, 0.0159, 0.25, 0.4, 0.925, 6.4]),
|
56 |
+
("F12 19mm gypsum board", "Finishing", [0.16, 800.0, 1090.0, 0.0191, 0.25, 0.4, 0.925, 7.6]),
|
57 |
+
("F13 13mm cement plaster", "Finishing", [0.72, 1856.0, 840.0, 0.0127, 0.2, 0.6, 0.91, 7.1]),
|
58 |
+
("F14 13mm lime plaster", "Finishing", [0.72, 1600.0, 840.0, 0.0127, 0.2, 0.5, 0.90, 6.1]),
|
59 |
+
("F15 22mm cement plaster", "Finishing", [0.72, 1856.0, 840.0, 0.0222, 0.2, 0.6, 0.91, 12.4]),
|
60 |
+
("F16 Acoustic tile", "Finishing", [0.06, 368.0, 590.0, 0.0191, 1.0, 0.4, 0.925, 14.0]),
|
61 |
+
("F17 13mm slag", "Finishing", [0.16, 960.0, 1090.0, 0.0127, 0.2, 0.5, 0.925, 1.0]),
|
62 |
+
("F18 25mm slag", "Finishing", [0.16, 960.0, 1090.0, 0.0254, 0.2, 0.5, 0.925, 1.9]),
|
63 |
+
("G01 13mm gypsum board", "Finishing", [0.16, 800.0, 1090.0, 0.0127, 0.25, 0.4, 0.925, 5.1]),
|
64 |
+
("G01a 19mm gypsum board", "Finishing", [0.16, 800.0, 1090.0, 0.0191, 0.25, 0.4, 0.925, 7.6]),
|
65 |
+
("G02 25mm cement plaster", "Finishing", [0.72, 1856.0, 840.0, 0.0254, 0.2, 0.6, 0.91, 14.1]),
|
66 |
+
("G03 13mm lime plaster", "Finishing", [0.72, 1600.0, 840.0, 0.0127, 0.25, 0.5, 0.90, 6.1]),
|
67 |
+
("G04 13mm cement plaster", "Finishing", [0.72, 1856.0, 840.0, 0.0127, 0.2, 0.6, 0.91, 7.1]),
|
68 |
+
("G05 25mm wood", "Sub-Structural", [0.15, 608.0, 1630.0, 0.0254, 0.3, 0.5, 0.925, 15.4]),
|
69 |
+
("G06 19mm wood", "Sub-Structural", [0.15, 608.0, 1630.0, 0.0191, 0.3, 0.5, 0.925, 11.6]),
|
70 |
+
("I01 25mm insulation board", "Insulation", [0.03, 43.0, 1210.0, 0.0254, 2.5, 0.5, 0.925, 1.1]),
|
71 |
+
("I02 50mm insulation board", "Insulation", [0.03, 43.0, 1210.0, 0.0508, 2.5, 0.5, 0.925, 2.2]),
|
72 |
+
("I03 75mm insulation board", "Insulation", [0.03, 43.0, 1210.0, 0.0762, 2.5, 0.5, 0.925, 3.3]),
|
73 |
+
("M01 100mm brick", "Structural", [0.89, 1920.0, 790.0, 0.1016, 0.3, 0.7, 0.93, 19.5]),
|
74 |
+
("M02 100mm face brick", "Structural", [1.33, 2000.0, 790.0, 0.1016, 0.3, 0.7, 0.93, 20.3]),
|
75 |
+
("M03 150mm brick", "Structural", [0.89, 1920.0, 790.0, 0.1524, 0.3, 0.7, 0.93, 29.3]),
|
76 |
+
("M04 200mm concrete block", "Structural", [0.51, 800.0, 920.0, 0.2032, 0.2, 0.65, 0.925, 13.0]),
|
77 |
+
("M05 200mm concrete block", "Structural", [1.11, 1280.0, 920.0, 0.2032, 0.2, 0.65, 0.925, 20.8]),
|
78 |
+
("M06 150mm concrete block", "Structural", [0.51, 800.0, 920.0, 0.1524, 0.2, 0.65, 0.925, 9.8]),
|
79 |
+
("M07 100mm concrete block", "Structural", [0.51, 800.0, 920.0, 0.1016, 0.2, 0.65, 0.925, 6.5]),
|
80 |
+
("M08 150mm concrete block", "Structural", [1.11, 1280.0, 920.0, 0.1524, 0.2, 0.65, 0.925, 15.6]),
|
81 |
+
("M09 100mm concrete block", "Structural", [1.11, 1280.0, 920.0, 0.1016, 0.2, 0.65, 0.925, 10.4]),
|
82 |
+
("M10 100mm lightweight concrete", "Structural", [0.53, 1280.0, 840.0, 0.1016, 0.15, 0.65, 0.925, 7.8]),
|
83 |
+
("M11 100mm lightweight concrete", "Structural", [0.53, 1280.0, 840.0, 0.1016, 0.15, 0.65, 0.925, 7.8]),
|
84 |
+
("M12 150mm lightweight concrete", "Structural", [0.53, 1280.0, 840.0, 0.1524, 0.15, 0.65, 0.925, 11.7]),
|
85 |
+
("M13 200mm lightweight concrete", "Structural", [0.53, 1280.0, 840.0, 0.2032, 0.15, 0.65, 0.925, 15.6]),
|
86 |
+
("M14 100mm heavyweight concrete", "Structural", [1.95, 2240.0, 900.0, 0.1016, 0.2, 0.65, 0.925, 18.2]),
|
87 |
+
("M14a 100mm heavyweight concrete", "Structural", [1.95, 2240.0, 900.0, 0.1016, 0.2, 0.65, 0.925, 18.2]),
|
88 |
+
("M15 200mm heavyweight concrete", "Structural", [1.95, 2240.0, 900.0, 0.2032, 0.2, 0.65, 0.925, 36.4]),
|
89 |
+
("M16 300mm heavyweight concrete", "Structural", [1.95, 2240.0, 900.0, 0.3048, 0.2, 0.65, 0.925, 54.6]),
|
90 |
+
("M17 100mm stone", "Structural", [2.10, 2240.0, 880.0, 0.1016, 0.2, 0.7, 0.925, 22.8]),
|
91 |
+
("M18 150mm stone", "Structural", [2.10, 2240.0, 880.0, 0.1524, 0.2, 0.7, 0.925, 34.1]),
|
92 |
+
("M19 100mm limestone", "Structural", [1.80, 2320.0, 880.0, 0.1016, 0.2, 0.6, 0.925, 23.6]),
|
93 |
+
("M20 150mm limestone", "Structural", [1.80, 2320.0, 880.0, 0.1524, 0.2, 0.6, 0.925, 35.4]),
|
94 |
+
("M21 200mm limestone", "Structural", [1.80, 2320.0, 880.0, 0.2032, 0.2, 0.6, 0.925, 47.1]),
|
95 |
+
("M22 100mm granite", "Structural", [2.80, 2640.0, 880.0, 0.1016, 0.2, 0.7, 0.925, 26.8]),
|
96 |
+
("M23 150mm granite", "Structural", [2.80, 2640.0, 880.0, 0.1524, 0.2, 0.7, 0.925, 40.2]),
|
97 |
+
("M24 200mm granite", "Structural", [2.80, 2640.0, 880.0, 0.2032, 0.2, 0.7, 0.925, 53.6]),
|
98 |
+
("M25 100mm marble", "Structural", [2.50, 2720.0, 880.0, 0.1016, 0.2, 0.6, 0.925, 27.6]),
|
99 |
+
("M26 150mm marble", "Structural", [2.50, 2720.0, 880.0, 0.1524, 0.2, 0.6, 0.925, 41.4]),
|
100 |
+
("M27 200mm marble", "Structural", [2.50, 2720.0, 880.0, 0.2032, 0.2, 0.6, 0.925, 55.3])
|
101 |
+
]
|
102 |
}
|
103 |
|
104 |
# Sample Fenestrations Data
|
|
|
|
|
105 |
SAMPLE_FENESTRATIONS = {
|
106 |
+
**{
|
107 |
+
name: {
|
108 |
+
"type": "window",
|
109 |
+
"performance": {
|
110 |
+
"u_value": data[0],
|
111 |
+
"shgc": data[1],
|
112 |
+
"visible_transmittance": data[1] * 0.7
|
113 |
+
},
|
114 |
+
"embodied_carbon": data[2],
|
115 |
+
"h_o": data[3] if len(data) > 3 else DEFAULT_WINDOW_PROPERTIES["h_o"],
|
116 |
+
"cost": {
|
117 |
+
"material": data[4] if len(data) > 4 else 100.0,
|
118 |
+
"labor": (data[4] * 0.3) if len(data) > 4 else 30.0,
|
119 |
+
"replacement_years": 30
|
120 |
+
},
|
121 |
+
"description": f"{name} glazing for window applications"
|
122 |
+
} for name, data in [
|
123 |
+
("Single Clear 3mm", [5.8, 0.81, 25.0, 17.8, 50.0]),
|
124 |
+
("Single Clear 6mm", [5.7, 0.78, 28.0, 17.8, 60.0]),
|
125 |
+
("Single Tinted 6mm", [5.7, 0.55, 30.0, 17.8, 70.0]),
|
126 |
+
("Double Clear 6mm/13mm Air", [2.7, 0.70, 40.0, 17.8, 100.0]),
|
127 |
+
("Double Low-E 6mm/13mm Air", [1. carteira, 0.60, 45.0, 17.8, 120.0]),
|
128 |
+
("Double Tinted 6mm/13mm Air", [2.7, 0.45, 42.0, 17.8, 110.0]),
|
129 |
+
("Double Low-E 6mm/13mm Argon", [1.5, 0.55, 48.0, 17.8, 130.0]),
|
130 |
+
("Triple Clear 4mm/12mm Air", [1.8, 0.62, 55.0, 17.8, 150.0]),
|
131 |
+
("Triple Low-E 4mm/12mm Argon", [0.9, 0.50, 60.0, 17.8, 180.0]),
|
132 |
+
("Single Low-E Reflective 6mm", [5.6, 0.35, 35.0, 13.0, 90.0]),
|
133 |
+
("Double Reflective 6mm/13mm Air", [2.5, 0.30, 50.0, 13.0, 140.0]),
|
134 |
+
("Electrochromic 6mm/13mm Air", [2.0, 0.40, 70.0, 17.8, 200.0])
|
135 |
+
]
|
136 |
},
|
137 |
+
**{
|
138 |
+
name: {
|
139 |
+
Stuart, 0.15, 608.0, 1630.0, 0.045, 2.5, 0.50, 15.0, 0.925, 200.0]),
|
140 |
+
("Insulated Wood 50mm", "Sub-Structural", [0.10, 500.0, 1400.0, 0.050, 1.8, 0.45, 18.0, 0.925, 250.0]),
|
141 |
+
("Hollow Core Wood 40mm", "Sub-Structural", [0.15, 400.0, 1630.0, 0.040, 3.5, 0.50, 12.0, 0.925, 150.0]),
|
142 |
+
("Steel Uninsulated 45mm", "Sub-Structural", [45.28, 7824.0, 500.0, 0.045, 5.0, 0.70, 20.0, 0.075, 180.0]),
|
143 |
+
("Steel Insulated 50mm", "Sub-Structural", [0.10, 2000.0, 1000.0, 0.050, 2.0, 0.65, 25.0, 0.925, 220.0]),
|
144 |
+
("Aluminum Uninsulated 45mm", "Sub-Structural", [160.0, 2700.0, 900.0, 0.045, 6.0, 0.75, 22.0, 0.075, 200.0]),
|
145 |
+
("Aluminum Insulated 50mm", "Sub-Structural", [0.15, 1800.0, 1100.0, 0.050, 2.5, 0.70, 28.0, 0.925, 240.0]),
|
146 |
+
("Glass Single 6mm", "Structural", [0.53, 1280.0, 840.0, 0.006, 5.7, 0.78, 28.0, 0.90, 100.0]),
|
147 |
+
("Glass Double 6mm/13mm Air", "Structural", [0.40, 1280.0, 840.0, 0.025, 2.7, 0.70, 40.0, 0.90, 150.0]),
|
148 |
+
("Fiberglass Insulated 50mm", "Insulation", [0.03, 43.0, 1210.0, 0.050, 1.5, 0.60, 20.0, 0.925, 230.0]),
|
149 |
+
("PVC Insulated 50mm", "Insulation", [0.05, 1400.0, 1000.0, 0.050, 1.7, 0.55, 18.0, 0.925, 210.0]),
|
150 |
+
("Wood with Glass Insert", "Sub-Structural", [0.15, 608.0, 1630.0, 0.045, 3.0, 0.65, 16.0, 0.925, 190.0])
|
151 |
+
]
|
152 |
}
|
153 |
|
154 |
# Sample Constructions Data
|
|
|
|
|
155 |
SAMPLE_CONSTRUCTIONS = {
|
156 |
+
name: {
|
157 |
+
"type": c_type,
|
158 |
+
"layers": layers,
|
159 |
+
"u_value": data[0],
|
160 |
+
"embodied_carbon": data[1],
|
161 |
+
"absorptivity": data[2],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
162 |
"cost": {
|
163 |
+
"material": data[3],
|
164 |
+
"labor": data[3] * 0.5,
|
165 |
+
"replacement_years": 75 if c_type in ["roof", "floor"] else 50
|
166 |
},
|
167 |
+
"description": f"{name} for {c_type.lower()} applications"
|
168 |
+
} for name, c_type, layers, data in [
|
169 |
+
("Light Exterior Wall", "wall", [
|
170 |
+
{"material": "F08 Metal surface", "thickness": 0.001},
|
171 |
+
{"material": "I02 50mm insulation board", "thickness": 0.0508},
|
172 |
+
{"material": "F04 Wall air space resistance", "thickness": 0.01},
|
173 |
+
{"material": "G01a 19mm gypsum board", "thickness": 0.0191}
|
174 |
+
], [0.39, 7.85, 0.7, 25.1]),
|
175 |
+
("Light Roof/Ceiling", "roof", [
|
176 |
+
{"material": "M11 100mm lightweight concrete", "thickness": 0.1016},
|
177 |
+
{"material": "F05 Ceiling air space resistance", "thickness": 0.01},
|
178 |
+
{"material": "F16 Acoustic tile", "thickness": 0.0191}
|
179 |
+
], [0.48, 9.45, 0.65, 22.9]),
|
180 |
+
("Light Floor", "floor", [
|
181 |
+
{"material": "F16 Acoustic tile", "thickness": 0.0191},
|
182 |
+
{"material": "F05 Ceiling air space resistance", "thickness": 0.01},
|
183 |
+
{"material": "M11 100mm lightweight concrete", "thickness": 0.1016}
|
184 |
+
], [0.48, 9.45, 0.65, 22.9]),
|
185 |
+
("Heavy Exterior Wall", "wall", [
|
186 |
+
{"material": "M01 100mm brick", "thickness": 0.1016},
|
187 |
+
{"material": "I02 50mm insulation board", "thickness": 0.0508},
|
188 |
+
{"material": "F04 Wall air space resistance", "thickness": 0.01},
|
189 |
+
{"material": "G01 13mm gypsum board", "thickness": 0.0127}
|
190 |
+
], [0.45, 8.5, 0.7, 26.8]),
|
191 |
+
("Heavy Roof/Ceiling", "roof", [
|
192 |
+
{"material": "M15 200mm heavyweight concrete", "thickness": 0.2032},
|
193 |
+
{"material": "F05 Ceiling air space resistance", "thickness": 0.01},
|
194 |
+
{"material": "F10 13mm gypsum board", "thickness": 0.0127}
|
195 |
+
], [0.35, 10.2, 0.65, 35.6]),
|
196 |
+
("Heavy Floor", "floor", [
|
197 |
+
{"material": "M15 200mm heavyweight concrete", "thickness": 0.2032},
|
198 |
+
{"material": "F05 Ceiling air space resistance", "thickness": 0.01},
|
199 |
+
{"material": "F16 Acoustic tile", "thickness": 0.0191}
|
200 |
+
], [0.35, 10.2, 0.65, 35.6]),
|
201 |
+
("Insulated Wall", "wall", [
|
202 |
+
{"material": "F07 25mm stucco", "thickness": 0.0254},
|
203 |
+
{"material": "I03 75mm insulation board", "thickness": 0.0762},
|
204 |
+
{"material": "F04 Wall air space resistance", "thickness": 0.01},
|
205 |
+
{"material": "G01a 19mm gypsum board", "thickness": 0.0191}
|
206 |
+
], [0.30, 9.0, 0.6, 22.5]),
|
207 |
+
("Metal Clad Wall", "wall", [
|
208 |
+
{"material": "F08 Metal surface", "thickness": 0.001},
|
209 |
+
{"material": "I02 50mm insulation board", "thickness": 0.0508},
|
210 |
+
{"material": "G05 25mm wood", "thickness": 0.0254}
|
211 |
+
], [0.38, 8.0, 0.7, 24.5]),
|
212 |
+
("Concrete Wall", "wall", [
|
213 |
+
{"material": "M14 100mm heavyweight concrete", "thickness": 0.1016},
|
214 |
+
{"material": "I01 25mm insulation board", "thickness": 0.0254},
|
215 |
+
{"material": "F10 13mm gypsum board", "thickness": 0.0127}
|
216 |
+
], [0.50, 7.5, 0.65, 20.0])
|
217 |
+
]
|
218 |
}
|
219 |
|
220 |
+
# Getter Functions
|
221 |
def get_default_materials() -> Dict[str, Any]:
|
222 |
+
"""Returns the default materials dictionary."""
|
223 |
+
logger.debug("Retrieving default materials")
|
|
|
|
|
|
|
|
|
224 |
return SAMPLE_MATERIALS
|
225 |
|
226 |
def get_default_fenestrations() -> Dict[str, Any]:
|
227 |
+
"""Returns the default fenestrations dictionary."""
|
228 |
+
logger.debug("Retrieving default fenestrations")
|
|
|
|
|
|
|
|
|
229 |
return SAMPLE_FENESTRATIONS
|
230 |
|
231 |
def get_default_constructions() -> Dict[str, Any]:
|
232 |
+
"""Returns the default constructions dictionary."""
|
233 |
+
logger.debug("Retrieving default constructions")
|
234 |
+
return SAMPLE_CONSTRUCTIONS
|
|
|
|
|
|
|
|