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

1# created April 2017 

2# by TEASER4 Development Team 

3 

4 

5from teaser.logic.buildingobjects.buildingphysics.outerwall \ 

6 import OuterWall 

7 

8 

9class Door(OuterWall): 

10 """Outer door class 

11 

12 This class holds information of an entrance door and is a child of 

13 OuterWall() 

14 

15 Will be treated exactly as OuterWalls, we need this distinction due to 

16 Door class in Tabula 

17 

18 Parameters 

19 ---------- 

20 

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. 

26 

27 Attributes 

28 ---------- 

29 

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' 

105 

106 Calculated Attributes 

107 

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 """ 

147 

148 def __init__(self, parent=None): 

149 """ 

150 """ 

151 super(OuterWall, self).__init__(parent) 

152 

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 

158 

159 @property 

160 def parent(self): 

161 return self.__parent 

162 

163 @parent.setter 

164 def parent(self, value): 

165 if value is not None: 

166 

167 ass_error_1 = "Parent has to be an instance of ThermalZone()" 

168 

169 assert type(value).__name__ == "ThermalZone", ass_error_1 

170 

171 self.__parent = value 

172 

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') 

183 

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: 

190 

191 self.__parent = None