Coverage for teaser/logic/buildingobjects/buildingphysics/interzonalfloor.py: 72%
29 statements
« prev ^ index » next coverage.py v7.4.4, created at 2025-04-29 16:01 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2025-04-29 16:01 +0000
1# created April 2023
2# by TEASER4 Development Team
5from teaser.logic.buildingobjects.buildingphysics.interzonalwall \
6 import InterzonalWall
9class InterzonalFloor(InterzonalWall):
10 """InterzonalFloor (InterzonalWall)
12 This class represents an interzonal floor and is a child of InterzonalWall()
14 Note that interzonal elements have to be created twice for each zone they
15 connect and are not semantically connected afterwards. For an
16 InterzonalFloor of one zone, an InterzonalCeiling has to be created for the
17 zone on the other side.
19 Parameters
20 ----------
22 parent : ThermalZone()
23 The parent class of this object, the ThermalZone the BE belongs to.
24 Allows for better control of hierarchical structures. If not None it
25 adds this InterzonalFloor to ThermalZone.interzonal_floors.
26 Default is None.
28 Attributes
29 ----------
31 internal_id : float
32 Random id for the distinction between different elements.
33 name : str
34 Individual name
35 construction_data : str
36 Type of construction (e.g. "heavy" or "light"). Needed for
37 distinction between different constructions types in the same
38 building age period.
39 year_of_retrofit : int
40 Year of last retrofit
41 year_of_construction : int
42 Year of first construction
43 building_age_group : list
44 Determines the building age period that this building
45 element belongs to [begin, end], e.g. [1984, 1994]
46 area : float [m2]
47 Area of building element
48 tilt : float [degree]
49 Tilt against horizontal, default is 0.0
50 orientation : float [degree]
51 Azimuth direction of building element (0 : north, 90: east, 180: south,
52 270: west), default is -2, for horizontal floor
53 inner_convection : float [W/(m2*K)]
54 Constant heat transfer coefficient of convection inner side (facing
55 the zone), default is 1.7
56 inner_radiation : float [W/(m2*K)]
57 Constant heat transfer coefficient of radiation inner side (facing
58 the zone), default is 5.0
59 outer_convection : float [W/(m2*K)]
60 Constant heat transfer coefficient of convection outer side (facing
61 the ambient or adjacent zone). Default 0.0 - if unchanged, 1.7 when
62 adding an outside
63 outer_radiation : float [W/(m2*K)]
64 Constant heat transfer coefficient of radiation outer side (facing
65 the ambient or adjacent zone). Default 0.0 - if unchanged, 5.0 when
66 adding an outside
67 layer : list
68 List of all layers of a building element (to be filled with Layer
69 objects). Use element.layer = None to delete all layers of the building
70 element
71 other_side : ThermalZone()
72 the thermal zone on the upper side of the interzonal floor
73 interzonal_type_material : str
74 one of (None (default), 'inner', 'outer_ordered', 'outer_reversed')
75 describes as which kind of element the element is treated when loading
76 type elements. Caution: Make sure that the complimentary element of
77 the other zone is also changed accordingly if this is adapted manually
78 None: treatment based on project.method_interzonal_export_enrichment
79 'inner': InterzonalWall treated as InnerWall,
80 InterzonalFloor treated as Floor,
81 InterzonalCeiling treated as Ceiling
82 'outer_ordered': InterzonalWall treated as Wall,
83 InterzonalFloor treated as GroundFloor,
84 InterzonalCeiling treated as Rooftop
85 'outer_reversed': like 'outer_ordered', but with reversed layers,
86 resulting in the reversed sequence of layers as
87 for the complimentary element declared as
88 'outer_ordered'
89 interzonal_type_export : str
90 one of (None (default), 'inner', 'outer_ordered', 'outer_reversed')
91 describes as which kind of element the element is treated when exporting
92 to Modelica. Caution: Make sure that the complimentary element of
93 the other zone is also changed accordingly if this is adapted manually
94 'inner': element will be lumped with InnerWall. No heat flow to the
95 zone on the other side will be modelled.
96 'outer_ordered': element will be lumped with OuterWall (OneElement
97 to FourElement export) or treated as border to an
98 adjacent zone (FiveElement export). Borders to the
99 same adjacent zone will be lumped.
100 'outer_reversed': like 'outer_ordered', but the lumping follows
101 VDI 6007-1 in reversed order, resulting in the
102 reversed order of resistances and capacitors as
103 for the complimentary element declared as
104 'outer_ordered'
106 Calculated Attributes
108 r1 : float [K/W]
109 equivalent resistance R1 of the analogous model given in VDI 6007
110 r2 : float [K/W]
111 equivalent resistance R2 of the analogous model given in VDI 6007
112 r3 : float [K/W]
113 equivalent resistance R3 of the analogous model given in VDI 6007
114 c1 : float [J/K]
115 equivalent capacity C1 of the analogous model given in VDI 6007
116 c2 : float [J/K]
117 equivalent capacity C2 of the analogous model given in VDI 6007
118 c1_korr : float [J/K]
119 corrected capacity C1,korr for building elements in the case of
120 asymmetrical thermal load given in VDI 6007
121 ua_value : float [W/K]
122 UA-Value of building element (Area times U-Value)
123 r_inner_conv : float [K/W]
124 Convective resistance of building element on inner side (facing the
125 zone)
126 r_inner_rad : float [K/W]
127 Radiative resistance of building element on inner side (facing the
128 zone)
129 r_inner_conv : float [K/W]
130 Combined convective and radiative resistance of building element on
131 inner side (facing the zone)
132 r_outer_conv : float [K/W]
133 Convective resistance of building element on outer side (facing
134 the ambient or adjacent zone). Currently for all InnerWalls and
135 GroundFloors this value is set to 0.0
136 r_outer_rad : float [K/W]
137 Radiative resistance of building element on outer side (facing
138 the ambient or adjacent zone). Currently for all InnerWalls and
139 GroundFloors this value is set to 0.0
140 r_outer_comb : float [K/W]
141 Combined convective and radiative resistance of building element on
142 outer side (facing the ambient or adjacent zone). Currently for all
143 InnerWalls and GroundFloors this value is set to 0.0
144 wf_out : float
145 Weightfactor of building element ua_value/ua_value_zone
147 """
149 def __init__(self, parent=None, other_side=None):
150 """
151 """
152 super(InterzonalFloor, self).__init__(parent, other_side)
154 self._tilt = 0.0
155 self._orientation = -2.0
157 def retrofit_wall(self,
158 year_of_retrofit,
159 material=None,
160 add_at_position=None):
161 """Retrofits wall to German refurbishment standards.
163 This function adds an additional layer of insulation and sets the
164 thickness of the layer according to the retrofit standard in the
165 year of refurbishment. Refurbishment year must be newer then 1977
167 Note: To Calculate thickness and U-Value, the standard TEASER
168 coefficients for outer and inner heat transfer are used.
170 The used Standards are namely the Waermeschutzverordnung (WSVO) and
171 Energieeinsparverordnung (EnEv)
173 Parameters
174 ----------
175 material : string
176 Type of material, that is used for insulation
177 year_of_retrofit : int
178 Year of the retrofit of the wall/building
179 add_at_position : int
180 position at which to insert the insulation layer.
181 0 inside, None (default) or -1 outside/other side
183 """
184 if self.interzonal_type_material == 'inner':
185 return
186 elif add_at_position is None:
187 if self.interzonal_type_material == 'outer_reversed':
188 add_at_position = 0
189 elif self.interzonal_type_material == 'outer_ordered':
190 add_at_position = -1
192 material, year_of_retrofit, ins_layer = self.initialize_retrofit(
193 material, year_of_retrofit, add_at_position
194 )
196 calc_u = None
198 if 1977 <= year_of_retrofit <= 1981:
199 calc_u = 0.8
200 elif 1982 <= year_of_retrofit <= 1994:
201 calc_u = 0.7
202 elif 1995 <= year_of_retrofit <= 2001:
203 calc_u = 0.5
204 elif 2002 <= year_of_retrofit <= 2008:
205 calc_u = 0.4
206 elif 2009 <= year_of_retrofit <= 2013:
207 calc_u = 0.3
208 elif year_of_retrofit >= 2014:
209 calc_u = 0.3
211 self.set_insulation(material, calc_u, year_of_retrofit,
212 ins_layer_index=ins_layer)