Files
2026-06-13 09:46:05 +02:00

103 lines
3.5 KiB
Python

from coefficients import THERMAL_CONDUCTIVITY_HIGH as thermals
from coefficients import RSI_HORIZONTAL, RSI_DOWNWARD, RSE, RSI_UPWARD
from interfaces import LayeredSurface, FixedUSurface, MaterialLayer
from ventilation import Room, RoomKind
from report import report
import sys
if len(sys.argv) < 2:
situation = "now"
else:
situation = sys.argv[1]
# FIXME: Values are a bit coarse, but should be reasonably close to reality
protected_volume = 480
exterior_wall_area = 110
window_area = 43
floor_area = 63
roof_area = 73
area = exterior_wall_area + window_area + floor_area + roof_area
average_window_u = 1.19
rooms = [
Room(RoomKind.OPEN_KITCHEN, 3.7 * 3),
Room(RoomKind.TOILET, 0.9 * 1.5),
Room(RoomKind.OTHER_WET, 1.8 * 3.0), # washing/storage room
Room(RoomKind.OTHER_WET, 3.5 * 1.9), # bathroom
Room(RoomKind.LIVING_ROOM, 9 * 3.75),
Room(RoomKind.OTHER_DRY, 9 * 3.75 / 2), # big room 1
Room(RoomKind.OTHER_DRY, 9 * 3.75 / 2), # big room 2
Room(RoomKind.OTHER_DRY, 3.3 * 3), # small room
]
floor_layers = [
MaterialLayer(thermals["pur"], 0.12),
MaterialLayer(thermals["concrete"], 0.20),
]
roof_layers = [
MaterialLayer(thermals["particle_board"], 0.01),
MaterialLayer(thermals["mineral_wool"], 0.12),
MaterialLayer(thermals["pir"], 0.06),
]
if situation == "now":
wall_layers = [
MaterialLayer(thermals["brick"], 0.11),
MaterialLayer(thermals["mineral_wool"], 0.06),
MaterialLayer(thermals["brick"], 0.11),
]
lump_sum_thermal_bridge = 0.20 # W/m^2K
situation_dict = {
"name": "now",
"ventilation_rooms": [], # no active ventilation yet
"ventilation_eta": 1.0,
"ventilation_v50_area": area,
"ventilation_v50_value": 4.0, # maybe 6.0
"transmission_interfaces": [
LayeredSurface(
"exterior wall", exterior_wall_area, wall_layers, RSI_HORIZONTAL, RSE
),
LayeredSurface(
"floor", floor_area, floor_layers, RSI_DOWNWARD, RSI_DOWNWARD, b=0.8
),
LayeredSurface("roof", roof_area, roof_layers, RSI_UPWARD, RSE),
FixedUSurface("windows/doors", window_area, average_window_u),
FixedUSurface("thermal bridge", area, lump_sum_thermal_bridge),
],
"environment_delta_t_worst": 20 - -8,
"environment_delta_t_typical": 20 - 4,
}
elif situation == "future":
wall_layers = [
MaterialLayer(thermals["brick"], 0.11),
MaterialLayer(thermals["mineral_wool"], 0.06),
MaterialLayer(thermals["brick"], 0.11),
MaterialLayer(thermals["pur"], 0.12),
]
lump_sum_thermal_bridge = 0.10 # W/m^2K
situation_dict = {
"name": "future",
"ventilation_rooms": rooms,
"ventilation_eta": 0.85,
"ventilation_v50_area": area,
"ventilation_v50_value": 2.0,
"transmission_interfaces": [
LayeredSurface(
"exterior wall", exterior_wall_area, wall_layers, RSI_HORIZONTAL, RSE
),
LayeredSurface(
"floor", floor_area, floor_layers, RSI_DOWNWARD, RSI_DOWNWARD, b=0.8
),
LayeredSurface("roof", roof_area, roof_layers, RSI_UPWARD, RSE),
FixedUSurface("windows/doors", window_area, average_window_u),
FixedUSurface("thermal bridge", area, lump_sum_thermal_bridge),
],
"environment_delta_t_worst": 20 - -8,
"environment_delta_t_typical": 20 - 4,
}
else:
raise ValueError("wrong situation")
report(situation_dict)