mabuseif commited on
Commit
599543d
verified
1 Parent(s): de17fc2

Update app/m_c_data.py

Browse files
Files changed (1) hide show
  1. 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 centralizes all default materials, fenestrations, and constructions data for the
5
- HVAC Load Calculator application. It provides sample data that can be imported by other modules.
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
- "Brick": {
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": "Masonry",
46
- "thermal_conductivity": 1.4, # W/m路K
47
- "density": 2300, # kg/m鲁
48
- "specific_heat": 880, # J/kg路K
49
- "thickness_range": {
50
- "min": 0.10, # m
51
- "max": 0.30, # m
52
- "default": 0.15 # m
53
  },
54
- "embodied_carbon": 0.11, # kgCO2e/kg
 
 
 
55
  "cost": {
56
- "material": 120.0, # $/m鲁
57
- "labor": 55.0, # $/m虏
58
- "replacement_years": 75 # years
59
  },
60
- "description": "Standard concrete for structural elements"
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
- "Double Glazed Window": {
69
- "name": "Double Glazed Window",
70
- "type": "window",
71
- "u_value": 2.8, # W/m虏路K
72
- "shgc": 0.7, # Solar Heat Gain Coefficient
73
- "visible_transmittance": 0.74,
74
- "embodied_carbon": 25.0, # kgCO2e/m虏
75
- "cost": {
76
- "material": 350.0, # $/m虏
77
- "labor": 120.0, # $/m虏
78
- "replacement_years": 30 # years
79
- },
80
- "description": "Standard double glazed window with air gap"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  },
82
- "Solid Wood Door": {
83
- "name": "Solid Wood Door",
84
- "type": "door",
85
- "u_value": 2.2, # W/m虏路K
86
- "solar_absorptivity": 0.7,
87
- "embodied_carbon": 15.0, # kgCO2e/m虏
88
- "cost": {
89
- "material": 280.0, # $/m虏
90
- "labor": 150.0, # $/m虏
91
- "replacement_years": 25 # years
92
- },
93
- "description": "Standard solid wood exterior door"
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
- "Brick Wall with Insulation": {
102
- "name": "Brick Wall with Insulation",
103
- "type": "wall",
104
- "layers": [
105
- {
106
- "material": "Brick",
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": 85.0, # $/m虏
146
- "labor": 45.0, # $/m虏
147
- "replacement_years": 75 # years
148
  },
149
- "description": "Standard concrete floor with XPS insulation"
150
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  }
152
 
 
153
  def get_default_materials() -> Dict[str, Any]:
154
- """
155
- Get the default materials data.
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
- Get the default fenestrations data.
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
- Get the default constructions data.
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