Coverage for teaser/logic/buildingobjects/buildingphysics/groundfloor.py: 81%

27 statements  

« prev     ^ index     » next       coverage.py v7.4.4, created at 2025-04-29 16:01 +0000

1# created June 2015 

2# by TEASER4 Development Team 

3import warnings 

4 

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

6 import OuterWall 

7 

8 

9class GroundFloor(OuterWall): 

10 """GroundFloor class 

11 

12 This class holds information of a GroundFloor and is a child of OuterWall() 

13 

14 Parameters 

15 ---------- 

16 

17 parent : ThermalZone() 

18 The parent class of this object, the ThermalZone the BE belongs to. 

19 Allows for better control of hierarchical structures. If not None it 

20 adds this GroundFloor to ThermalZone.ground_floors. 

21 Default is None. 

22 

23 Attributes 

24 ---------- 

25 

26 internal_id : float 

27 Random id for the distinction between different elements. 

28 name : str 

29 Individual name 

30 construction_data : str 

31 Type of construction (e.g. "heavy" or "light"). Needed for 

32 distinction between different constructions types in the same 

33 building age period. 

34 year_of_retrofit : int 

35 Year of last retrofit 

36 year_of_construction : int 

37 Year of first construction 

38 building_age_group : list 

39 Determines the building age period that this building 

40 element belongs to [begin, end], e.g. [1984, 1994] 

41 area : float [m2] 

42 Area of building element 

43 tilt : float [degree] 

44 Tilt against horizontal, default is 0.0 

45 orientation : float [degree] 

46 Azimuth direction of building element (0 : north, 90: east, 180: south, 

47 270: west), orientation -2.0 

48 inner_convection : float [W/(m2*K)] 

49 Constant heat transfer coefficient of convection inner side (facing 

50 the zone), default 1.7 

51 inner_radiation : float [W/(m2*K)] 

52 Constant heat transfer coefficient of radiation inner side (facing 

53 the zone), default 5.0 

54 outer_convection : float [W/(m2*K)] 

55 Constant heat transfer coefficient of convection outer side (facing 

56 the ambient or adjacent zone), default 0.0 

57 outer_radiation : float [W/(m2*K)] 

58 Constant heat transfer coefficient of radiation outer side (facing 

59 the ambient or adjacent zone), default 0.0 

60 layer : list 

61 List of all layers of a building element (to be filled with Layer 

62 objects). Use element.layer = None to delete all layers of the building 

63 element 

64 other_side : ThermalZone() 

65 the thermal zone on the other side of the building element (only for 

66 interzonal elements) 

67 interzonal_type_material : str 

68 one of (None (default), 'inner', 'outer_ordered', 'outer_reversed') 

69 describes as which kind of element the element is treated when loading 

70 type elements. Caution: Make sure that the complimentary element of 

71 the other zone is also changed accordingly if this is adapted manually 

72 None: treatment based on project.method_interzonal_export_enrichment 

73 'inner': InterzonalWall treated as InnerWall, 

74 InterzonalFloor treated as Floor, 

75 InterzonalCeiling treated as Ceiling 

76 'outer_ordered': InterzonalWall treated as Wall, 

77 InterzonalFloor treated as GroundFloor, 

78 InterzonalCeiling treated as Rooftop 

79 'outer_reversed': InterzonalWall treated as Wall, 

80 InterzonalFloor treated as Rooftop, 

81 InterzonalCeiling treated as GroundFloor, but with 

82 reversed layers, resulting in the reversed 

83 sequence of layers as for the complimentary 

84 element declared as 'outer_ordered' 

85 interzonal_type_export : str 

86 one of (None (default), 'inner', 'outer_ordered', 'outer_reversed') 

87 describes as which kind of element the element is treated when exporting 

88 to Modelica. Caution: Make sure that the complimentary element of 

89 the other zone is also changed accordingly if this is adapted manually 

90 'inner': element will be lumped with InnerWall. No heat flow to the 

91 zone on the other side will be modelled. 

92 'outer_ordered': element will be lumped with OuterWall (OneElement 

93 to FourElement export) or treated as border to an 

94 adjacent zone (FiveElement export). Borders to the 

95 same adjacent zone will be lumped. 

96 'outer_reversed': like 'outer_ordered', but the lumping follows 

97 VDI 6007-1 in reversed order, resulting in the 

98 reversed order of resistances and capacitors as 

99 for the complimentary element declared as 

100 'outer_ordered' 

101 

102 Calculated Attributes 

103 

104 r1 : float [K/W] 

105 equivalent resistance R1 of the analogous model given in VDI 6007 

106 r2 : float [K/W] 

107 equivalent resistance R2 of the analogous model given in VDI 6007 

108 r3 : float [K/W] 

109 equivalent resistance R3 of the analogous model given in VDI 6007 

110 c1 : float [J/K] 

111 equivalent capacity C1 of the analogous model given in VDI 6007 

112 c2 : float [J/K] 

113 equivalent capacity C2 of the analogous model given in VDI 6007 

114 c1_korr : float [J/K] 

115 corrected capacity C1,korr for building elements in the case of 

116 asymmetrical thermal load given in VDI 6007 

117 calc_u: Required area-specific U-value in retrofit cases [W/K] 

118 ua_value : float [W/K] 

119 UA-Value of building element (Area times U-Value) 

120 r_inner_conv : float [K/W] 

121 Convective resistance of building element on inner side (facing the 

122 zone) 

123 r_inner_rad : float [K/W] 

124 Radiative resistance of building element on inner side (facing the 

125 zone) 

126 r_inner_conv : float [K/W] 

127 Combined convective and radiative resistance of building element on 

128 inner side (facing the zone) 

129 r_outer_conv : float [K/W] 

130 Convective resistance of building element on outer side (facing 

131 the ambient or adjacent zone). Currently for all InnerWalls and 

132 GroundFloors this value is set to 0.0 

133 r_outer_rad : float [K/W] 

134 Radiative resistance of building element on outer side (facing 

135 the ambient or adjacent zone). Currently for all InnerWalls and 

136 GroundFloors this value is set to 0.0 

137 r_outer_comb : float [K/W] 

138 Combined convective and radiative resistance of building element on 

139 outer side (facing the ambient or adjacent zone). Currently for all 

140 InnerWalls and GroundFloors this value is set to 0.0 

141 wf_out : float 

142 Weightfactor of building element ua_value/ua_value_zone 

143 """ 

144 

145 def __init__(self, parent=None): 

146 """ 

147 """ 

148 super(GroundFloor, self).__init__(parent) 

149 

150 self._tilt = 0.0 

151 self._orientation = -2.0 

152 self._inner_convection = 1.7 

153 self._inner_radiation = 5.0 

154 self._outer_convection = None 

155 self._outer_radiation = None 

156 

157 def retrofit_wall(self, 

158 year_of_retrofit, 

159 material=None, 

160 add_at_position=None): 

161 """Retrofits wall to German refurbishment standards. 

162 

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 

166 

167 Note: To Calculate thickness and U-Value, the standard TEASER 

168 coefficients for outer and inner heat transfer are used. 

169 

170 The used Standards are namely the Waermeschutzverordnung (WSVO) and 

171 Energieeinsparverordnung (EnEv) 

172 

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 

182 

183 """ 

184 material, year_of_retrofit, ins_layer = self.initialize_retrofit( 

185 material, year_of_retrofit, add_at_position 

186 ) 

187 

188 calc_u = None 

189 

190 if 1977 <= year_of_retrofit <= 1981: 

191 calc_u = 0.8 

192 elif 1982 <= year_of_retrofit <= 1994: 

193 calc_u = 0.7 

194 elif 1995 <= year_of_retrofit <= 2001: 

195 calc_u = 0.5 

196 elif 2002 <= year_of_retrofit <= 2008: 

197 calc_u = 0.4 

198 elif 2009 <= year_of_retrofit <= 2013: 

199 calc_u = 0.3 

200 elif year_of_retrofit >= 2014: 

201 calc_u = 0.3 

202 

203 self.set_insulation(material, calc_u, year_of_retrofit, 

204 ins_layer_index=ins_layer)