diff --git a/model_data/recommendations/WallRecommendations.py b/model_data/recommendations/WallRecommendations.py index f8ae1898..f50f4f36 100644 --- a/model_data/recommendations/WallRecommendations.py +++ b/model_data/recommendations/WallRecommendations.py @@ -15,77 +15,92 @@ external_wall_insulation_parts = [ "depth_unit": "mm", "cost": None, "cost_unit": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs "r_value_per_mm": 0.0278, "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": 0.036, + "thermal_conductivity_unit": "watt_per_meter_kelvin" }, { + # Example product + # https://www.insulationking.co.uk/products/polystyrene-eps70?variant=44156186558759 "type": "external_wall_insulation", "description": "Expanded Polystyrene External Wall Insulation", - "depths": [], + "depths": [25, 50, 100, 125], "depth_unit": "mm", "cost": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs - "u_value": None + "cost_unit": None, + "r_value_per_mm": 0.02703, + "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": 0.037, + "thermal_conductivity_unit": "watt_per_meter_kelvin" }, { + # Example product + # https://www.insulationshop.co/20mm_kooltherm_k5_external_wall_kingspan.html "type": "external_wall_insulation", "description": "Phenolic Foam External Wall Insulation", - "depths": [], + "depths": [20, 50, 100], "depth_unit": "mm", "cost": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs - "u_value": None + "cost_unit": None, + "r_value_per_mm": 0.043478260869565216, + "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": 0.023, + "thermal_conductivity_unit": "watt_per_meter_kelvin" + }, { "type": "external_wall_insulation", - "description": "Polyisocyanurate Foam External Wall Insulation", + "description": "Polyisocyanurate/Polyurethane Foam External Wall Insulation", "depths": [], "depth_unit": "mm", "cost": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs - "u_value": None + "cost_unit": None, + "r_value_per_mm": None, + "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": None, + "thermal_conductivity_unit": "watt_per_meter_kelvin" }, { + # Example product + # https://www.mikewye.co.uk/product/steico-duo-dry/ "type": "external_wall_insulation", - "description": "Woof Fiber External Wall Insulation", - "depths": [], + "description": "Wood Fiber External Wall Insulation", + "depths": [40, 60], "depth_unit": "mm", "cost": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs - "u_value": None + "cost_unit": None, + "r_value_per_mm": 0.023255813953488375, + "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": 0.043, + "thermal_conductivity_unit": "watt_per_meter_kelvin" }, { + # Example product + # https://www.thermablok.co.uk/site/wp-content/uploads/2022/09/Thermablok-Aerogel-Insulation-Blanket-TDS-AIS + # -and-Steel-Related-Details.pdf "type": "external_wall_insulation", "description": "Aerogel External Wall Insulation", - "depths": [], + "depths": [10, 20, 30, 40, 50, 60, 70], "depth_unit": "mm", "cost": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs - "u_value": None + "cost_unit": None, + "r_value_per_mm": 0.06666666666666667, + "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": 0.015, + "thermal_conductivity_unit": "watt_per_meter_kelvin" }, { "type": "external_wall_insulation", "description": "Vacuum Insulation Panels External Wall Insulation", - "depths": [], + "depths": [45, 60], "depth_unit": "mm", "cost": None, - # The u-value here is just a placehoder for now and we probably want to have multiple - # options for internal wall insulation (e.g. 50mm, 100mm, 150mm), with different material types - # and costs - "u_value": None + "cost_unit": None, + "r_value_per_mm": 0.16666666666666666, + "r_value_unit": "square_meter_kelvin_per_watt", + "thermal_conductivity": 0.006, + "thermal_conductivity_unit": "watt_per_meter_kelvin" } ] @@ -270,3 +285,25 @@ class WallRecommendations: U-value in W/m²K. """ return 1 / (depth_mm * r_value_per_mm) + + @staticmethod + def thermal_conductivity_to_r_value_per_mm(thermal_conductivity: float) -> float: + """Convert thermal conductivity to R-value per mm. + + Parameters + ---------- + thermal_conductivity : float + Thermal conductivity (in W/mK). + + Returns + ------- + float + R-value per mm. + """ + # Calculate R-value in m²K/W for 1 meter of the material + r_value_per_meter = 1 / thermal_conductivity + + # Convert R-value to R-value per mm + r_value_per_mm = r_value_per_meter / 1000 + + return r_value_per_mm