Source code for teaser.logic.buildingobjects.buildingphysics.door

# created April 2017
# by TEASER4 Development Team


from teaser.logic.buildingobjects.buildingphysics.outerwall \
    import OuterWall


[docs] class Door(OuterWall): """Outer door class This class holds information of an entrance door and is a child of OuterWall() Will be treated exactly as OuterWalls, we need this distinction due to Door class in Tabula Parameters ---------- parent : ThermalZone() The parent class of this object, the ThermalZone the BE belongs to. Allows for better control of hierarchical structures. If not None it adds this OuterWall to ThermalZone.outer_walls. Default is None. Attributes ---------- internal_id : float Random id for the distinction between different elements. name : str Individual name construction_data : str Type of construction (e.g. "heavy" or "light"). Needed for distinction between different constructions types in the same building age period. year_of_retrofit : int Year of last retrofit year_of_construction : int Year of first construction building_age_group : list Determines the building age period that this building element belongs to [begin, end], e.g. [1984, 1994] area : float [m2] Area of building element tilt : float [degree] Tilt against horizontal, default is 90.0 orientation : float [degree] Azimuth direction of building element (0 : north, 90: east, 180: south, 270: west) inner_convection : float [W/(m2*K)] Constant heat transfer coefficient of convection inner side (facing the zone), default 2.7 inner_radiation : float [W/(m2*K)] Constant heat transfer coefficient of radiation inner side (facing the zone), default 5.0 outer_convection : float [W/(m2*K)] Constant heat transfer coefficient of convection outer side (facing the ambient or adjacent zone), default 20.0 outer_radiation : float [W/(m2*K)] Constant heat transfer coefficient of radiation outer side (facing the ambient or adjacent zone), default 5.0 layer : list List of all layers of a building element (to be filled with Layer objects). Use element.layer = None to delete all layers of the building element Calculated Attributes r1 : float [K/W] equivalent resistance R1 of the analogous model given in VDI 6007 r2 : float [K/W] equivalent resistance R2 of the analogous model given in VDI 6007 r3 : float [K/W] equivalent resistance R3 of the analogous model given in VDI 6007 c1 : float [J/K] equivalent capacity C1 of the analogous model given in VDI 6007 c2 : float [J/K] equivalent capacity C2 of the analogous model given in VDI 6007 c1_korr : float [J/K] corrected capacity C1,korr for building elements in the case of asymmetrical thermal load given in VDI 6007 ua_value : float [W/K] UA-Value of building element (Area times U-Value) r_inner_conv : float [K/W] Convective resistance of building element on inner side (facing the zone) r_inner_rad : float [K/W] Radiative resistance of building element on inner side (facing the zone) r_inner_conv : float [K/W] Combined convective and radiative resistance of building element on inner side (facing the zone) r_outer_conv : float [K/W] Convective resistance of building element on outer side (facing the ambient or adjacent zone). Currently for all InnerWalls and GroundFloors this value is set to 0.0 r_outer_rad : float [K/W] Radiative resistance of building element on outer side (facing the ambient or adjacent zone). Currently for all InnerWalls and GroundFloors this value is set to 0.0 r_outer_conv : float [K/W] Combined convective and radiative resistance of building element on outer side (facing the ambient or adjacent zone). Currently for all InnerWalls and GroundFloors this value is set to 0.0 wf_out : float Weightfactor of building element ua_value/ua_value_zone """ def __init__(self, parent=None): """ """ super(OuterWall, self).__init__(parent) self._tilt = 90.0 self._inner_convection = 2.7 self._inner_radiation = 5.0 self._outer_convection = 20.0 self._outer_radiation = 5.0 @property def parent(self): return self.__parent @parent.setter def parent(self, value): if value is not None: ass_error_1 = "Parent has to be an instance of ThermalZone()" assert type(value).__name__ == "ThermalZone", ass_error_1 self.__parent = value if type(self).__name__ == "OuterWall": self.__parent.outer_walls.append(self) elif type(self).__name__ == "Rooftop": self.__parent.rooftops.append(self) elif type(self).__name__ == "GroundFloor": self.__parent.ground_floors.append(self) if type(self).__name__ == "Door": self.__parent.doors.append(self) else: raise ValueError('Instance of OuterWall not known') if self.parent.parent is not None: self.year_of_construction = \ self.parent.parent.year_of_construction else: pass else: self.__parent = None