""" Building module SPDX - License - Identifier: LGPL - 3.0 - or -later Copyright © 2020 Project Author Sanam Dabirian sanam.dabirian@mail.concordia.ca """ class Occupancy: """ Occupancy class """ def __init__(self, internal_heat_gain, heat_dissipation, occupant_rate, occupant_type, occupant_zone, number_of_occupants, arrival_time=None, departure_time=None, break_time=None, day_of_week=None, pd_of_meetings_duration=None, occupant_schedule=None): """ Constructor """ self._internal_heat_gain = internal_heat_gain self._heat_dissipation = heat_dissipation self._occupant_rate = occupant_rate self._occupant_type = occupant_type self._occupant_zone = occupant_zone self._occupant_schedule = occupant_schedule self._number_of_occupants = number_of_occupants self._arrival_time = arrival_time self._departure_time = departure_time self._break_time = break_time self._day_of_week = day_of_week self._pd_of_meetings_duration = pd_of_meetings_duration @property def internal_heat_gain(self): """ Get internal heat gain of occupants :return: occupant heat gain """ return self._internal_heat_gain @property def heat_dissipation(self): """ Get heat dissipation of occupants :return: heat dissipation """ return self._heat_dissipation @property def occupant_rate(self): """ Get rate of occupancy :return: rate of occupancy """ return self._occupant_rate @property def occupant_type(self): """ Get type of occupancy :return: type of occupancy """ return self._occupant_type @property def occupant_zone(self): """ Get the zone that occupant is in it :return: occupant zone """ return self._occupant_zone @property def occupant_schedule(self): """ Get the schedule when an occupant is in a zone :return: occupant schedule """ return self._occupant_schedule @property def number_of_occupants(self): """ Get the number of occupants :return: number of occupants """ return self._number_of_occupants @property def arrival_time(self): """ Get the arrival time of the occupant (for office building) :return: arrival time """ return self._arrival_time @property def departure_time(self): """ Get the departure time of the occupant (for office building) :return: departure time """ return self._departure_time @property def break_time(self): """ Get the lunch or break time of the occupant (for office building) :return: break time """ return self._break_time @property def day_of_week(self): """ Get the day of the week :return: day of the week """ return self._day_of_week @property def pd_of_meetings_duration(self): """ Get the probability distribution of the meeting duration :return: probability distribution of the meeting duration """ return self._pd_of_meetings_duration