Coverage for teaser/logic/buildingobjects/buildingphysics/door.py: 81%
31 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 2017
2# by TEASER4 Development Team
5from teaser.logic.buildingobjects.buildingphysics.outerwall \
6 import OuterWall
9class Door(OuterWall):
10 """Outer door class
12 This class holds information of an entrance door and is a child of
13 OuterWall()
15 Will be treated exactly as OuterWalls, we need this distinction due to
16 Door class in Tabula
18 Parameters
19 ----------
21 parent : ThermalZone()
22 The parent class of this object, the ThermalZone the BE belongs to.
23 Allows for better control of hierarchical structures. If not None it
24 adds this OuterWall to ThermalZone.outer_walls.
25 Default is None.
27 Attributes
28 ----------
30 internal_id : float
31 Random id for the distinction between different elements.
32 name : str
33 Individual name
34 construction_data : str
35 Type of construction (e.g. "heavy" or "light"). Needed for
36 distinction between different constructions types in the same
37 building age period.
38 year_of_retrofit : int
39 Year of last retrofit
40 year_of_construction : int
41 Year of first construction
42 building_age_group : list
43 Determines the building age period that this building
44 element belongs to [begin, end], e.g. [1984, 1994]
45 area : float [m2]
46 Area of building element
47 tilt : float [degree]
48 Tilt against horizontal, default is 90.0
49 orientation : float [degree]
50 Azimuth direction of building element (0 : north, 90: east, 180: south,
51 270: west)
52 inner_convection : float [W/(m2*K)]
53 Constant heat transfer coefficient of convection inner side (facing
54 the zone), default 2.7
55 inner_radiation : float [W/(m2*K)]
56 Constant heat transfer coefficient of radiation inner side (facing
57 the zone), default 5.0
58 outer_convection : float [W/(m2*K)]
59 Constant heat transfer coefficient of convection outer side (facing
60 the ambient or adjacent zone), default 20.0
61 outer_radiation : float [W/(m2*K)]
62 Constant heat transfer coefficient of radiation outer side (facing
63 the ambient or adjacent zone), default 5.0
64 layer : list
65 List of all layers of a building element (to be filled with Layer
66 objects). Use element.layer = None to delete all layers of the building
67 element
68 other_side : ThermalZone()
69 the thermal zone on the other side of the building element (only for
70 interzonal elements)
71 interzonal_type_material : str
72 one of (None (default), 'inner', 'outer_ordered', 'outer_reversed')
73 describes as which kind of element the element is treated when loading
74 type elements. Caution: Make sure that the complimentary element of
75 the other zone is also changed accordingly if this is adapted manually
76 None: treatment based on project.method_interzonal_export_enrichment
77 'inner': InterzonalWall treated as InnerWall,
78 InterzonalFloor treated as Floor,
79 InterzonalCeiling treated as Ceiling
80 'outer_ordered': InterzonalWall treated as Wall,
81 InterzonalFloor treated as GroundFloor,
82 InterzonalCeiling treated as Rooftop
83 'outer_reversed': InterzonalWall treated as Wall,
84 InterzonalFloor treated as Rooftop,
85 InterzonalCeiling treated as GroundFloor, but with
86 reversed layers, resulting in the reversed
87 sequence of layers as for the complimentary
88 element declared as '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
146 """
148 def __init__(self, parent=None):
149 """
150 """
151 super(OuterWall, self).__init__(parent)
153 self._tilt = 90.0
154 self._inner_convection = 2.7
155 self._inner_radiation = 5.0
156 self._outer_convection = 20.0
157 self._outer_radiation = 5.0
159 @property
160 def parent(self):
161 return self.__parent
163 @parent.setter
164 def parent(self, value):
165 if value is not None:
167 ass_error_1 = "Parent has to be an instance of ThermalZone()"
169 assert type(value).__name__ == "ThermalZone", ass_error_1
171 self.__parent = value
173 if type(self).__name__ == "OuterWall":
174 self.__parent.outer_walls.append(self)
175 elif type(self).__name__ == "Rooftop":
176 self.__parent.rooftops.append(self)
177 elif type(self).__name__ == "GroundFloor":
178 self.__parent.ground_floors.append(self)
179 if type(self).__name__ == "Door":
180 self.__parent.doors.append(self)
181 else:
182 raise ValueError('Instance of OuterWall not known')
184 if self.parent.parent is not None:
185 self.year_of_construction = \
186 self.parent.parent.year_of_construction
187 else:
188 pass
189 else:
191 self.__parent = None