eureca_building package
Modules
eureca_building.air_handling_unit
This module includes the class to manage the Air Handling Unit
- class eureca_building.air_handling_unit.AirHandlingUnit(name: str, mechanical_vent: MechanicalVentilation, supply_temperature: Schedule, supply_specific_humidity: Schedule, ahu_operation: Schedule, humidity_control: bool, sensible_heat_recovery_eff: float, latent_heat_recovery_eff: float, outdoor_air_ratio: float, weather: WeatherFile, thermal_zone, tag: str | None = None)[source]
Bases:
objectThis class manages the air handling unit. Some general variables are set as class variables while the __init__ memorizes the inputs
- cp_air = 1000.0
- p_atm = 101325.0
- r_0 = 2501000.0
- cpv = 1875.0
- __init__(name: str, mechanical_vent: MechanicalVentilation, supply_temperature: Schedule, supply_specific_humidity: Schedule, ahu_operation: Schedule, humidity_control: bool, sensible_heat_recovery_eff: float, latent_heat_recovery_eff: float, outdoor_air_ratio: float, weather: WeatherFile, thermal_zone, tag: str | None = None)[source]
Air Handling Unit Constructor: creates the AHU object and memorizes the attributes (using properties set methods tho check types)
- Parameters:
name (str) – name of the Air Handling Unit
mechanical_vent (eureca_building.ventilation.MechanicalVentilation) – ventialation object to define air flow rate
supply_temperature (eureca_building.schedule.Schedule) – Schedule object
supply_specific_humidity (eureca_building.schedule.Schedule) – Schedule object
ahu_operation (eureca_building.schedule.Schedule) – Schedule object to define opeartion (-1 cooling, 1 heating, 0 fan mode)
humidity_control (bool) – whether do humidification/dehumidification
sensible_heat_recovery_eff (float) – sensible heat recovery efficiency, must be between 0 and 1
latent_heat_recovery_eff (float) – sensible heat recovery efficiency, must be between 0 and 1
outdoor_air_ratio (float) – outdoor air fraction, must be between 0 and 1
weather (eureca_building.weather.WeatherFile) – Weather object
thermal_zone (eureca_building.thermal_zone.ThermalZone) – ThermalZone object
tag (str) – possible tags
- Raises:
TypeError – checks the input type
ValueError – checks the input type
- property supply_temperature
- property supply_specific_humidity
- property ahu_operation
- property humidity_control
- property sensible_heat_recovery_eff
- property latent_heat_recovery_eff
- property outdoor_air_ratio
- air_handling_unit_calc(t, weather, T_int, x_int)[source]
Solution of the time step calculation. It uses outdoor conditions (from WeatherFile), and zone conditions (from zone)
- Parameters:
t (int) – timestep: int [-]
weather (eureca_building.weather.WeatherFile) – WeatherFile object
T_int (float) – zone internal temperature: float [°C]
x_int (float) – zone internal specific humidity: float [kg_v/kg_da]
- checkSatCond(temp, x, p)[source]
Check Saturation Condition
This function takes as inputs temperature [°C] and humidity ratio [kg_vap/kg_as] to check if a point is outside saturation conditions
- Parameters:
temp (float) – Temperature [°C]
x (float) – Specific Humidity [kg_vap/kg_as].
p (float) – Pressure [Pa].
- Returns:
boolean (wheter saturation is reached), and Saturation Pressure [Pa].
- Return type:
tuple
eureca_building.building
This module includes functions to model the building and it includes the Building class
- class eureca_building.building.Building(name: str, thermal_zones_list: list, model: str = '2C')[source]
Bases:
objectThis class is a wrapper for ThermalZone objects and HVAC objects
- __init__(name: str, thermal_zones_list: list, model: str = '2C')[source]
Constructor of the building class. Memorizes the attributes by means of properties setter. Checks also the validity of some attributes
- Parameters:
name (str) – Name of the building
thermal_zone (list) – list of ThermalZone ibjects objects
model (str, default 2C) – model to be used: 1C or 2C
- solve_timestep(t: int, weather: WeatherFile)[source]
Runs the thermal zone and hvac systems simulation for the timestep t
- Parameters:
t (int) – timestep
weather_object (eureca_building.weather.WeatherFile) – WeatherFile object to use to simulate
- simulate(weather_object: WeatherFile, t_start: int = 0, t_stop: int = 8760, preprocessing_ts: int = 100, output_folder: str | None = None)[source]
Simulate a period and i stores the outputs. Calls solve_timestep method
- Parameters:
weather_object (eureca_building.weather.WeatherFile) – WeatherFile object to use to simulate (must be appliad after the calculation of zone loads
t_start (int (Default first timestep of simulation)) – starting timestep
t_stop (int (last timestep of simulation)) – stop timestep
preprocessing_ts (int) – number of preprocessing timesteps
output_folder (str, default None) – if not None prints building results in the selected folder
- Returns:
building time step results
- Return type:
pandas.DataFrame
eureca_building.config
This module includes classes and functions to manage the CONFIG varible (the variable with simulation settings)
- eureca_building.config.load_config(file: str | None = None)[source]
Function to load the config file, json file suggested
Examples
“DEFAULT”: {}, “model”: { “name”: “example_model” }, “simulation settings”: { “time steps per hour”: “2”, “simulation reference year” : “2023”, “start date”: “01-01 00:00”, “final date”: “12-31 23:00”, “heating season start”: “11-15 23:00”, “heating season end”: “04-15 23:00”, “cooling season start”: “06-01 23:00”, “cooling season end”: “09-30 23:00” }, “solar radiation settings”: { “do solar radiation calculation”: “False”, “height subdivisions”: “4”, “azimuth subdivisions”: “8”, “urban shading tolerances”: “80.,100.,80.” }
- Parameters:
file (str) – string path to the file to load
- Returns:
Config object from Config class
- Return type:
- class eureca_building.config.Config[source]
Bases:
ConfigParserInherited from configparser.ConfigParser. This class is a container for config settings.
- property ts_per_hour: int
- read(file)[source]
Method to create the object from the config.ini file
- Parameters:
file_path (str) – file to load the config from
eureca_building.construction
This module includes class for the typical construction
- class eureca_building.construction.Construction(name: str, materials_list: list, construction_type: str = 'ExtWall')[source]
Bases:
objectClass to model constructions and calculate all the construction parameters: U, k_int, k_est
- tot_heat_trans_coef = Outside Inside ExtWall 25.0 7.7 Roof 25.0 7.7 GroundFloor 1000.0 7.7 IntWall 7.7 7.7 IntCeiling 6.7 6.7 IntFloor 6.7 6.7
- rad_heat_trans_coef = 5.0
- __init__(name: str, materials_list: list, construction_type: str = 'ExtWall')[source]
Initializes the Construction object
- Parameters:
name (string) – name
materials_list (list) – list of Materials or AirGapMaterials objects (Outside -> Inside)
construction_type (string) – Choose from [“ExtWall”, “Roof”, “GroundFloor”, “IntWall”, “IntCeiling”]
- classmethod from_U_value(name: str, u_value: float, weight_class: str = 'Medium', construction_type: str = 'ExtWall')[source]
This is a class method to create Construction object just from the U-value and weight class It creates just an equivalent material to reach the U-value
For specific heat and density, the following assumptions are considered
According to A.2.3 ISO 13786 Mass class Am [m²] Cm [J/K] k [J/(m² K)] Depth penetration [m] Spc heat [J/kg K] rho [kg/m3] Very light 2.5 80000 32000 0.1 1000 453 Light 2.5 110000 44000 0.1 1000 622 Medium 2.5 165000 66000 0.1 1000 933 Heavy 3 260000 86666.66667 0.1 1000 1226 Very heavy 3.5 370000 105714.2857 0.1 1000 1495
- Parameters:
name (string) – name
u_value (float) – u value of the construction [W/(m2 K)]
weight_class (str) – class of weight from the following list: [“Very heavy”, “Heavy, “Medium, “Light”, “Very light”]
construction_type (string) – Choose from [“ExtWall”, “Roof”, “GroundFloor”, “IntWall”, “IntCeiling”]
- Returns:
Construction object from these values
- Return type:
eureca_building.construction_dataset
This module includes a ConstructionDataset, a container class for materials, constructions, and windows
- class eureca_building.construction_dataset.ConstructionDataset[source]
Bases:
objectThis class is a class to include the list of materials, construction and windows that are used in the project
- materials_dict
Dict: dictionary with all Materials
- Type:
dict
- constructions_dict
Dict: dictionary with all Constructions
- Type:
dict
- windows_dict
Dict: dictionary with all Windows
- Type:
dict
- __init__()[source]
Generates the ConstructionDataset and the list of materials, contructions, and windows
- classmethod read_excel(file)[source]
Read the Materials, Windows and Constrcutions from a spreadsheet. See and example at https://github.com/BETALAB-team/EUReCA/tree/main/eureca_building/example_scripts under materials_and_constructions.xlsx
- Parameters:
file (str) – path to the file.xls
- Returns:
the object with the three dictionaries including all Materials Windows and Constructions from the spreadsheet
- Return type:
eureca_building.domestic_hot_water
This module includes functions to model Domestic Hot Water consumptions
- eureca_building.domestic_hot_water.distrEventi(n, x, pdf)[source]
DEPRECATED: Not working
- Parameters:
n –
x –
pdf –
- eureca_building.domestic_hot_water.dhw_calc_calculation(volume_unit, numunits, time_step)[source]
DEPRECATED: not working
- Parameters:
volume_unit –
numunits –
time_step –
- class eureca_building.domestic_hot_water.DomesticHotWater(name: str, calculation_method: str, unit=None, schedule=None)[source]
Bases:
objectDomesticHotWater object Class to manage all the calculations involved in the Domestic Hot Water consumption
- property calculation_method
- property unit
- property schedule
- get_dhw_yearly_mass_flow_rate(area, number_of_units, weather)[source]
This function calculates the water and mass flow rate consumption, given the area of the building and the number of units (to be used when unit and/or method need them)
- Parameters:
area (float) – Area of the building [m2]
number_of_units (int) – Number of dwellings (for residential calculation done with UNI-TS 11300
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- Returns:
tuple of numpy.arrays volume flow rate [m3/s], dhw heating demand [W]
- Return type:
tuple
eureca_building.fluids_properties
This module includes dictionaries with fluid properties (air, water, vapour, fuels) To be used all over the code
eureca_building.internal_load
This module includes functions and classes to model internal heat gains
- class eureca_building.internal_load.InternalLoad(name: str, nominal_value: float, schedule: Schedule, tag: str | None = None)[source]
Bases:
objectInternal Gain Class: parent class to set some common things
- __init__(name: str, nominal_value: float, schedule: Schedule, tag: str | None = None)[source]
Parent class for some inherited InternalLoads. It load the input and checks them throughout properties setter
- Parameters:
name (str) – name
nominal_value (float) – the value to be multiplied by the schedule
schedule (eureca_building.schedule.Schedule) – Schedule object
tag (str) – a tag to define the type of internal load
- property nominal_value
- property schedule
- property fraction_to_zone
- property fraction_latent
- property fraction_radiant
- property fraction_convective
- get_convective_load(*args, **kwarg) array[source]
Just an empty method to raise an NotImplementedError Exception. This way any inherited class implements it
- Parameters:
args –
kwarg –
- get_radiant_load(*args, **kwarg) array[source]
Just an empty method to raise an NotImplementedError Exception. This way any inherited class implements it
- Parameters:
args –
kwarg –
- get_latent_load(*args, **kwarg) array[source]
Just an empty method to raise an NotImplementedError Exception. This way any inherited class implements it
- Parameters:
args –
kwarg –
- get_loads(*args, **kwargs) list[source]
Return the convective, radiant, latent, electric load (numpy.array) If the calculation method is specific (W/m2 or px/m2) the area must be passed as kwarg (example area=12.5)
- Parameters:
area (float) – Area in m2. pass it as kwarg: load_obj.get_loads(area = 12.5)
tuple – [numpy.array, numpy.array, numpy.array, numpy.array] the schedules: convective [W], radiant [W], vapour [kg_vap/s], electric [W]
- class eureca_building.internal_load.People(name: str, nominal_value: float, unit: str, schedule: Schedule, fraction_latent: float = 0.55, fraction_radiant: float = 0.3, fraction_convective: float = 0.7, metabolic_rate: float = 110, tag: str | None = None)[source]
Bases:
InternalLoad- __init__(name: str, nominal_value: float, unit: str, schedule: Schedule, fraction_latent: float = 0.55, fraction_radiant: float = 0.3, fraction_convective: float = 0.7, metabolic_rate: float = 110, tag: str | None = None)[source]
Parent class for some inherited InternalLoads. It load the input and checks them throughout properties setter
- Parameters:
name (str) – name
nominal_value (float) – the value to be multiplied by the schedule
schedule (eureca_building.schedule.Schedule) – Schedule object
tag (str) – a tag to define the type of internal load
- property unit
- property metabolic_rate
- get_convective_load(area=None)[source]
Returns the convective load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provided if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- get_radiant_load(area=None)[source]
Returns the radiant load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provide if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- get_latent_load(area=None)[source]
Return the latent load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provided if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- get_electric_load(area=None)[source]
Return the electric consumption load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provided if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- class eureca_building.internal_load.ElectricLoad(name: str, nominal_value: float, unit: str, schedule: Schedule, fraction_to_zone: float = 1.0, fraction_radiant: float = 0.3, fraction_convective: float = 0.7, number_of_people: float | None = None, tag: str | None = None)[source]
Bases:
InternalLoad- __init__(name: str, nominal_value: float, unit: str, schedule: Schedule, fraction_to_zone: float = 1.0, fraction_radiant: float = 0.3, fraction_convective: float = 0.7, number_of_people: float | None = None, tag: str | None = None)[source]
Parent class for some inherited InternalLoads. It load the input and checks them throughout properties setter
- Parameters:
name (str) – name
nominal_value (float) – the value to be multiplied by the schedule
schedule (eureca_building.schedule.Schedule) – Schedule object
tag (str) – a tag to define the type of internal load
- property unit
- property number_of_people
- get_convective_load(area=None)[source]
Returns the convective load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provided if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- get_radiant_load(area=None)[source]
Returns the radiant load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provide if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- get_latent_load(area=None)[source]
Return the latent load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provided if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- get_electric_load(area=None)[source]
Return the electric consumption load numpy.array If the calculation method is specific (W/m2 or px/m2) the area must be passed
- Parameters:
area (float, default None) – Area of the zone in [m2]: must be provided if the load is specific
- Returns:
the schedule [W]
- Return type:
numpy.array
- class eureca_building.internal_load.Lights(name: str, nominal_value: float, unit: str, schedule: Schedule, fraction_to_zone: float = 1.0, fraction_radiant: float = 0.3, fraction_convective: float = 0.7, number_of_people: float | None = None, tag: str | None = None)[source]
Bases:
ElectricLoad- __init__(name: str, nominal_value: float, unit: str, schedule: Schedule, fraction_to_zone: float = 1.0, fraction_radiant: float = 0.3, fraction_convective: float = 0.7, number_of_people: float | None = None, tag: str | None = None)[source]
Parent class for some inherited InternalLoads. It load the input and checks them throughout properties setter
- Parameters:
name (str) – name
nominal_value (float) – the value to be multiplied by the schedule
schedule (eureca_building.schedule.Schedule) – Schedule object
tag (str) – a tag to define the type of internal load
eureca_building.logs
Module that is called at the begin of the simulation to set the log file trough the logging library
eureca_building.material
This module includes classes and functions to implement materials properties
- class eureca_building.material.Material(name: str, thick: float = 0.1, cond: float = 1.0, spec_heat: float = 1000.0, dens: float = 1000.0, thermal_absorptance: float = 0.9)[source]
Bases:
objectClass used to define the material. Creates the material and checks the properties
- __init__(name: str, thick: float = 0.1, cond: float = 1.0, spec_heat: float = 1000.0, dens: float = 1000.0, thermal_absorptance: float = 0.9)[source]
Define the material and check the properties, using setter methods
- Parameters:
name (str) – name
thick (float, default 0.1) – thickness
cond (float, default 1.) – conductivity
spec_heat (float, default 1000.) – spec_heat
dens (float, default 1000.) – density
thermal_absorptance (float, default 0.9) – thermal absorptance [-]
- Raises:
MaterialPropertyOutsideBoundaries – If a material parameter is not allowed.
- name: str
- property thick: float
- property dens: float
- property cond: float
- property spec_heat: float
- property thermal_absorptance: float
- class eureca_building.material.AirGapMaterial(name: str, thick: float = 0.1, thermal_resistance: float = 1.0)[source]
Bases:
objectA class used to define the air gap material <
- __init__(name: str, thick: float = 0.1, thermal_resistance: float = 1.0)[source]
Defines the material and check the properties. Checks properties values using setter methods
- Parameters:
name (str) – name
thick (float, default 0.1) – thickness
thermal_resistance (float, default 1.) – thermal_resistance
- Raises:
MaterialPropertyOutsideBoundaries – If a material parameter is not allowed.
- name: str
- property thick: float
- property thermal_resistance: float
eureca_building.schedule
This module includes functions to model any schedule
- class eureca_building.schedule.Schedule(name: str, schedule_type: str, schedule: array, lower_limit=None, upper_limit=None)[source]
Bases:
objectClass Schedule with some generic methods for all schedules. (in particular how they are created)
- __init__(name: str, schedule_type: str, schedule: array, lower_limit=None, upper_limit=None)[source]
- property schedule_type
- property schedule
eureca_building.schedule_properties
This file includes dictionaries to define each schedule and internal heat gains type and their properties using a JSON/Dictionary structure
eureca_building.setpoints module
This module includes functions to model setpoint of the thermal zone
- class eureca_building.setpoints.Setpoint(name: str, setpoint_type: str, tag: str | None = None)[source]
Bases:
objectSetpoint class
- property setpoint_type
- class eureca_building.setpoints.SetpointDualBand(name: str, setpoint_type: str, schedule_lower: Schedule, schedule_upper: Schedule, tag: str | None = None)[source]
Bases:
Setpoint- __init__(name: str, setpoint_type: str, schedule_lower: Schedule, schedule_upper: Schedule, tag: str | None = None)[source]
- property schedule_lower
- property schedule_upper
eureca_building.surface
This module includes functions to model a 3D surface
- class eureca_building.surface.Surface(name: str, vertices: tuple = ((0, 0, 0), (0, 0, 0), (0, 0, 0)), wwr=None, subdivisions_solar_calc=None, surface_type=None, construction=None, window=None, n_window_layers: int = 1)[source]
Bases:
objectClass surface checks the complanarity and calculates the area. Then calculates the azimuth and tilt of the surface and set a surface type depending on the tilt angle
- co planarity:
https://www.geeksforgeeks.org/program-to-check-whether-4-points-in-a-3-d-plane-are-coplanar/
- the area is calculated from:
https://stackoverflow.com/questions/12642256/python-find-area-of-polygon-from-xyz-coordinates
- __init__(name: str, vertices: tuple = ((0, 0, 0), (0, 0, 0), (0, 0, 0)), wwr=None, subdivisions_solar_calc=None, surface_type=None, construction=None, window=None, n_window_layers: int = 1)[source]
Creates the surface object. Checks all the inputs using properties setter methods
- Parameters:
name (str) – Name.
vertices (tuple, default ((0, 0, 0), (0, 0, 0), (0, 0, 0))) – List of vertices coordinates [m]. The default is ([0, 0, 0], [0, 0, 0], [0, 0, 0]).
wwr (float, default None) – window to wall ratio (between and 0 and 1). The default is 0.0.
subdivisions_solar_calc (dict, default None) – Something like { ‘azimuth_subdivisions’: 8, ‘height_subdivisions’: 3, } keys: azimuth_subdivisions : int, optional Number of azimuth discretization for radiation purposes. The default is 8. height_subdivisions : int, optional Number of height discretization for radiation purposes. The default is 3.
surface_type (str, default None) – Type of surface ‘ExtWall’ or ‘GroundFloor’ or ‘Roof’. If not provided autocalculate.
construction (eureca_building.construction.Construction) – the construction object with the materials
window (eureca_building.window.SimpleWindow) – the Window object with the materials
- property subdivisions_solar_calc: dict
- property surface_type
- property construction
- property window
- get_VDI6007_surface_params(asim=None)[source]
Calculates R and C using VDI6007 method.
- Parameters:
asim (bool) – Whether the surface is asimmetric (True) or not (False)
- Returns:
R, C -> Thermal Resistance and Capacity
- Return type:
tuple
- get_surface_external_radiative_coefficient()[source]
Returns the radiative heat exchange coefficient.
- Return type:
float
- check_surface_coincidence(other_surface)[source]
Check if two surface are coincident returning True or False
- Parameters:
other_surface (eureca_building.surface.Surface) – another surface object
- Returns:
Are the surfaces coincident? True/False
- Return type:
bool
- calculate_intersection_area(other_surface)[source]
Calculates the area between two adjacent surfaces reference: https://stackoverflow.com/questions/39003450/transform-3d-polygon-to-2d-perform-clipping-and-transform-back-to-3d
- Parameters:
other_surface (eureca_building.surface.Surface) – another surface object
- Returns:
The intersection area [m2]
- Return type:
float
- class eureca_building.surface.SurfaceInternalMass(name: str, area: float = 0.0, surface_type=None, construction=None)[source]
Bases:
objectClass to define a surface for thermal capacity using area and surface type with a specific geometry
- __init__(name: str, area: float = 0.0, surface_type=None, construction=None)[source]
It creates the SurfaceInternalMass object, like the Surface class, but without vertexes and geometry
- Parameters:
name (string) – name of the surface
area (float, default 0.) – area of the internal surface
surface_type (str, default None) – Type of internal surface: ‘IntWall’ or ‘IntCeiling’
construction (eureca_building.construction.Construction) – The construction to be assigned to the SurfaceInternalMass
- property surface_type
- property construction
eureca_building.systems
File with HVAC systems classes
- class eureca_building.systems.System(*args, **kwargs)[source]
Bases:
objectFather class for HVAC systems classes Defines an interface to force inherited class to implement mandatory methods
- abstract property electric_consumption
- abstract property gas_consumption
- abstract property wood_consumption
- abstract property oil_consumption
- property system_type
- class eureca_building.systems.IdealLoad(*args, **kwargs)[source]
Bases:
SystemClass IdealLoad is for the ideal zone balance. This class passes all methods.
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
IdealLoad init method. No input needed
- Parameters:
args –
kwargs –
- set_system_capacity(design_power, weather)[source]
Set system capacity method.
- Parameters:
design_power (float) – Design Heating power [W]
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
Solve the system power for the time step
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.CondensingBoiler(*args, **kwargs)[source]
Bases:
SystemClass CondensingBoiler. This method considers a generic Condensing Boiler as the heating system of the entire building following UNI-TS 11300:2 - 2008
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes for the method are initialized
- Parameters:
args –
kwargs –
- set_system_capacity(design_power, weather)[source]
Sets system design power
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculate Condensing Boiler power and losses following the Standard UNI-TS 11300:2 - 2008
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.TraditionalBoiler(*args, **kwargs)[source]
Bases:
SystemClass TraditionalBoiler. This class considers a generic Traditional Boiler as the heating system of the entire building following UNI-TS 11300:2 - 2008
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes for the method
- Parameters:
args –
kwargs –
- set_system_capacity(design_power, weather)[source]
Sets system design power
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculate Traditional Boiler losses following the Standard UNI-TS 11300:2 - 2008
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.SplitAirCooler(*args, **kwargs)[source]
Bases:
SystemSplitAirCooler class. This class considers a generic Split Air Conditioner as the cooling system of the entire building following UNI-TS 11300:3 - 2010
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes for the method
- Parameters:
args –
kwargs –
- set_system_capacity(design_power, weather)[source]
Choice of system size based on estimated nominal Power
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculate Split Air Cooler electrical power following the Standard UNI-TS 11300:3 - 2010
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.ChillerAirtoWater(*args, **kwargs)[source]
Bases:
SystemChillerAirtoWater class. This method considers a generic Air-to-water Chiller as the cooling system of the entire building following UNI-TS 11300:3 - 2010
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes for the method
- Parameters:
args –
kwargs –
- set_system_capacity(design_power, weather)[source]
Choice of system size based on estimated nominal Power
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculates Air to Water Chiller electrical power following the Standard UNI-TS 11300:3 - 2010
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.SplitAirConditioner(*args, **kwargs)[source]
Bases:
SystemSplitAirConditioner class
This method considers a generic Split Air Conditioner as the cooling system of the entire building following two documents of literature
Berend Jan Christiaan van Putten, Nariman Mahdavi, Julio H. Braslavsky, An Analytical Model for Demand Response of Variable-Speed Air Conditioners, IFAC-PapersOnLine, Volume 51, Issue 28, 2018, Pages 426-431, ISSN 2405-8963, https://doi.org/10.1016/j.ifacol.2018.11.740. (https://www.sciencedirect.com/science/article/pii/S2405896318334608)
https://ieeexplore.ieee.org/document/7515217 N. Mahdavi, J. H. Braslavsky and C. Perfumo, “Mapping the Effect of Ambient Temperature on the Power Demand of Populations of Air Conditioners,” in IEEE Transactions on Smart Grid, vol. 9, no. 3, pp. 1540-1550, May 2018, doi: 10.1109/TSG.2016.2592522.
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes for the method
- Parameters:
args –
kwargs –
- set_system_capacity(design_power, weather)[source]
Choice of system size based on estimated nominal Power for air conditioner WITHOUT inverter
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculate from literature: Split Air Cooler condensing power
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.Heating_EN15316(*args, **kwargs)[source]
Bases:
SystemClass Heating_EN15316. This method considers a generic heating system as the heating system of the entire building following EN 15316.
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes are set The heating_system_key label must be passed as kwargs. Example: Heating_EN15316(heating_system_key = “Traditional Gas Boiler, Single, Low Temp Radiator”)
- Parameters:
args (list) – list of optional arguments
kwargs (dict) – kwargs must include {heating_system_key : string_of_heating_system}
- set_system_capacity(design_power, weather)[source]
‘Choice of system size based on estimated nominal Power
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculate the system power for each time step
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
- class eureca_building.systems.Cooling_EN15316(*args, **kwargs)[source]
Bases:
SystemClass Cooling_EN15316. This method considers a generic cooling system as the heating system of the entire building following EN 15316.
- gas_consumption = 0
- electric_consumption = 0
- wood_consumption = 0
- oil_consumption = 0
- __init__(*args, **kwargs)[source]
init method. Set some attributes are set The cooling_system_key label must be passed as kwargs. Example: Cooling_EN15316(cooling_system_key = “A-W chiller, Centralized, Radiant surface”)
- Parameters:
args –
kwargs – kwargs must include {cooling_system_key : string_of_cooling_system}
- set_system_capacity(design_power, weather)[source]
‘Choice of system size based on estimated nominal Power
- Parameters:
design_power (float) – Design Heating power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
- solve_system(heat_flow, weather, t, T_int, RH_int)[source]
This method allows to calculate the system power for each time step
- Parameters:
heat_flow (float) – required power [W]
Weather (eureca_building.weather.WeatherFile) – WeatherFile object
t (int) – Simulation time step
T_int (float) – Zone temperature [°]
RH_int (float) – Zone relative humidity [%]
eureca_building.systems_info
File with HVAC systems csvs This is an internal class, where typical systems performances are stored in a disctionary, using csv parsed strings
eureca_building.thermal_zone
This module includes functions to model the thermal zone
- class eureca_building.thermal_zone.ThermalZone(name: str, surface_list: list, net_floor_area=None, volume=None, number_of_units: int = 1)[source]
Bases:
objectThermal zone class. Manages all the models and time step solution of the sensible and latent systems
- __init__(name: str, surface_list: list, net_floor_area=None, volume=None, number_of_units: int = 1)[source]
Int method. Creates the thermal zone object from a list of eureca_building.surface.Surface. Checks the inputs through properties
- Parameters:
name (str) – Name of the zone
surface_list (list) – list of eureca_building.surface.Surface or eureca_building.surface.SurfaceInternalMass objects
net_floor_area (float, default None) – footprint area of the zone in m2. If None searches for a GroundFloor surface
volume (float, default None) – volume of the zone in m3. If None sets 0 m3.
- property number_of_units: int
- add_temperature_setpoint(setpoint, mode='air')[source]
Function to associate a setpoint objects to the thermal zone
- Parameters:
setpoint (eureca_building.setpoint.Setpoint) – object of the class Setpoint
mode (str) – setpoint mode: [‘air’, ‘operative’, ‘radiant’]. FOR NOW ONLY AIR IMPLEMENTED
- property temperature_setpoint
- property temperature_setpoint_mode
- add_humidity_setpoint(setpoint)[source]
Function to associate a humidity setpoint to the thermal zone
- Parameters:
setpoint (eureca_building.setpoint.Setpoint) – object of the class Setpoint
- property humidity_setpoint
- property humidity_setpoint_mode
- static get_specific_humidity(air_t, air_rh, p_atm)[source]
Static method. Give the specific humidity from temperature, relative humidity, and atmospheric pressure
- Parameters:
air_t (float) – air temperature [°C]
air_rh (float) – air relative humidity [-]
p_atm (float) – atmospheric pressure [pa]
- Returns:
specific humidity [kg_vap/kg_da]
- Return type:
float
- add_internal_load(*internal_load)[source]
Function to associate a load to the thermal zone
- Parameters:
internal_load (eureca_building.internal_load.InternalLoad) – As many eureca_building.internal_load.InternalLoad can be provided
- extract_convective_radiative_latent_electric_load()[source]
From the internal loads calculates 3 arrays (len equal to 8769 * number of time steps per hour): { convective [W] : np.array radiative [W] : np.array latent [kg_vap/s] : np.array }
- Return type:
dict
- add_infiltration(*infiltration)[source]
Function to associate a natural ventilation object to the thermal zone
- Parameters:
natural_ventilation (eureca_building.ventilation.Infiltration) – As many eureca_building.ventilation.Infiltration can be provided
- calc_infiltration(weather)[source]
From the infiltration_list calculates 2 arrays (len equal to 8769 * number of time steps per hour): { air mass flow rate [kg/s] : np.array vapour mass flow rate [kg/s] : np.array }
- Parameters:
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- Return type:
dict
- add_air_handling_unit(ahu, weather)[source]
Function to associate an air_handling_unit object to the thermal zone
- Parameters:
ahu (eureca_building.air_handling_unit.AirHandlingUnit) – AirHandlingUnit object
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- property air_handling_unit: AirHandlingUnit
- add_domestic_hot_water(weather_obj, *dhw_obj)[source]
Function to associate a domestic hot water object to the thermal zone
- Parameters:
dhw_obj (eureca_building.domestic_hot_water.DomesticHotWater) – DomesticHotWater object
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- calculate_zone_loads_ISO13790(weather)[source]
Calculates the heat gains (internal and solar) on the three nodes of the ISO 13790 network Vectorial calculation
- Parameters:
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- calculate_zone_loads_VDI6007(weather)[source]
Calculates zone loads for the vdi 6007 standard Also the external equivalent temperature
- Parameters:
weather (eureca_building.weather.WeatherFile) – WeatherFile obj
- sensible_balance_1C(flag, Hve, T_e, T_sup_AHU, phi_load, sigma=[0.0, 1.0], T_set=20.0, phi_HC_set=0.0)[source]
Solves ISO 13790 network for a specific time step
- Parameters:
flag (string) – flag to set the calculation method string ‘Tset’ or ‘phiset’
Hve (list) – list of two ositive floats. Ventilation and infiltration heat tranfer coeff [W/K] [Hve_vent, Hve_inf]
T_e (float) – timestep external temperature [°C]
T_sup_AHU (float) – timestep ventilation supply temperature [°C]
phi_load (list) – list of three floats. The load on the three nodes network (ia, sm, m respectively) [W] [phi_ia, phi_sm, phi_m]
sigma (list, default [0., 1.]) – list of 2 floats portion of the heating/cooling load to: sigma[0]: radiant to surface sigma[1]: convective to air node sum must be 1
T_set (float, default 20.) – time step setpoint temperature [°C]
phi_HC_set (float, default 0.) – time step thermal load to the ambient [W]
- Returns:
array with system load, air temperature, surfaces equivalent temperature and mass equivalent temperature e.g. [ demand [W], T_air [°C], T_s [°C], T_m [°C] ]
- Return type:
numpy.array
- sensible_balance_2C(flag, Hve, T_e, T_e_eq, T_sup_AHU, phi_load, sigma=[0.0, 0.0, 1.0], T_set=20.0, phi_HC_set=0.0)[source]
Sensible2C solves the linear system (Y*x = q) of VDI6007 at each iteration with a given setpoint temperature or (*)Note: if phi_HC > 0 HEATING LOAD; phi_HC < 0 COOLING LOAD.
- Parameters:
flag (string) – string ‘Tset’ or ‘phiset’
Hve (list) – list of two ositive floats. Ventilation and infiltration heat tranfer coeff [W/K] [Hve_vent, Hve_inf]
T_e (float) – time step external temperature [°C]
T_e_eq (float) – time step external equivalent temperature [°C]
T_sup_AHU (float) – time step ventilation supply temperature [°C]
phi_load (list) – list of three floats: internal and solar gains, three components (convective, aw and iw)[W] [phi_conv, phi_aw, phi_iw]
sigma (list, default [0., 0., 1.]) – list of 3 floats portion of the heating cooling load to: sigma[0]: radiant to non adiabatic sigma[1]: radiant to adiabatic sigma[2]: convective to air node The sum must be 1
T_set (float, default 20.) – time step setpoint of considered thermal zone [°C]
phi_HC_set (float, default 0.) – time step Thermal load entering in the system [W]
- Returns:
temperature nodes of the RC model: theta_m_aw thermal mass of AW building components [°C] theta_s_aw surface of AW building components [°C] theta_lu_star No physical meaning (node obtained from the delta–>star transformation) [°C] theta_I_lu internal air temperature [°C] <— WHAT WE WILL EXTRACT AS OUTPUT outside the function Q_hk_ges heating/cooling load for maintaining the given setpoint temperature [W] <— WHAT WE WILL EXTRACT AS OUTPUT outside the function theta_s_iw surface of IW building components [°C] theta_m_iw thermal mass of IW building components [°C] e.g. [ theta_m_aw [°C], theta_s_aw [°C], theta_lu_star [°C], theta_I_lu [°C], Q_hk_ges [W] theta_s_iw [°C], theta_m_iw [°C], ]
- Return type:
numpy.array
- latent_balance(flag, G_ve, x_ext, x_sup, vapour_int_load, t_air_int, p_atm, rh_int_set=0.5, phi_HC_set=0.0)[source]
Solves latent balance (vapour balance) for a specific time step
- Parameters:
flag (str) – calculation mode”phiset” or “rhset”
G_ve (list) – List of two floats: ventialtion and infiltration mass flow rate [kg/s] [G_ve_vent, G_ve_inf]
x_ext (float) – time step external specific humidity [kg_vap/kg_da]
x_sup (float) – time step supply specific humidity [kg_vap/kg_da]
vapour_int_load (float) – time step vapour mass flow rate of internal loads [kg/s]
t_air_int (float) – time step air temperature [°C]
p_atm (float) – time step air temperature [°C]
rh_int_set (float, default 0.5) – relative humidity set point [-]
phi_HC_set (float, default 0.) – hvac latent load [W]
- Returns:
array with zone specific humidity [kg_v, kg_as], zone relative humidity [-], latent demand [W] e.g. [ zone specific humidity [kg_v, kg_as], zone relative humidity [-], latent demand [W], ]
- Return type:
tuple
- reset_init_values(T: float = 15.0, X: float = 0.0105)[source]
This method allows to reset temperatures starting values, for the first calculation
- Parameters:
T (float, default 15.) – Temperature to set as temperature mass [°C]
X (float, default 0.0105) – Specific humidity [kg_v/kg_as]
- reset_init_values_VDI()[source]
This method allows to reset temperatures starting values, according to VDI tests Starting T 22 °C Starting x 0.0105 kg_v/kg_as
- solve_timestep(t, weather, model='2C')[source]
Solves the thermal zone t - time step
- Parameters:
t (int) – timestep of the simulation
weather (eureca_building.weather.WeatherFile) – WeatherFile object
model (str, default "2C") – ‘1C’ model or ‘2C’ model
- design_heating_load(t_ext_design)[source]
Preliminary calculation to calculate the heating design temperature. Static calculation considering the product UA of all surfaces, the maximum infiltration flow rate, and the outdoor design temperature
- Parameters:
t_ext_design (float) – outdoor design temperature [°C]
- design_sensible_cooling_load(weather, model='2C')[source]
This method calculates the peak cooling according to the thermal load and weather of the thermal zone In order to do this, checks the hottest day (outdoor air temperature for 1C model, equivalent temperature for 2C, including also solar loads) And runs a simulation of the two days in between this maximum (similar to Carrier method, but using the 1C or 2C method)
- Parameters:
weather (eureca_building.weather.WeatherFile) – WeatherFile object
model (str, default "2C") – ‘1C’ model or ‘2C’ model
eureca_building.units
List of physic properties with their unit
eureca_building.ventilation
This module includes functions to model natural ventilation and infiltration
- eureca_building.ventilation.calc_neutral_plane_nat_vent(x, *data)[source]
TODO : Giacomo per favore riempi questa
- Parameters:
x (float) –
data (tuple) –
- class eureca_building.ventilation.Ventilation(name: str, unit: str, nominal_value: float, schedule: Schedule, tag: str | None = None)[source]
Bases:
objectVentilation class
- __init__(name: str, unit: str, nominal_value: float, schedule: Schedule, tag: str | None = None)[source]
VentilationObject creation
- Parameters:
name (str) – name
unit (str) – value of the unit: [“Vol/h”, “kg/s”, “kg/(m2 s)”, “m3/s”, “m3/(m2 s)”]
nominal_value (float) – the value to be multiplied by the schedule
schedule (eureca_building.schedule.Schedule) – Schedule object with a fractional schedule
tag (str, default None) – a tag to define the type of internal load
- property nominal_value
- property schedule
- property unit
- get_air_flow_rate(area=None, volume=None) array[source]
Returns ventilation air flow rate in kg/s. This method might be overridden by a child class
- Parameters:
area (float, default None) – [m2]: must be provided if the load is area specific
volume (float, default None) – [m3]: must be provided if the load is volume specific
- Returns:
air flow rate in kg/s
- Return type:
numpy.array
- get_vapour_flow_rate(weather, area=None, volume=None) array[source]
Calc the vapour mass flow rate in kg/s
- Parameters:
weather (eureca_building.weather.WeatherFile) – Weather object
area (float, default None) – [m2]: must be provided if the load is area specific
volume (float, default None) – [m3]: must be provided if the load is volume specific
- Returns:
vapour flow rate in kg/s
- Return type:
numpy.array
- get_flow_rate(weather, *args, **kwargs) list[source]
Return the air and vapour flow rate from natural ventilation. weather object must be passed
- Parameters:
weather (eureca_building.weather.WeatherFile) – Weather object
args (list) – additional args
kwargs (dict) – additional kwargs
- Returns:
tuple of two numpy.array (air and vapour flow rates)
- Return type:
tuple
- class eureca_building.ventilation.Infiltration(name: str, unit: str, nominal_value: float, schedule: Schedule, tag: str | None = None)[source]
Bases:
VentilationThis is just an inherited version of the Ventilation class, without any change
- class eureca_building.ventilation.NaturalVentilation(name: str, unit: str, nominal_value: float, schedule: Schedule, tag: str | None = None, surfaces_with_opening: list | None = None, weather: WeatherFile | None = None)[source]
Bases:
VentilationInheritaded from the Ventilation class
- __init__(name: str, unit: str, nominal_value: float, schedule: Schedule, tag: str | None = None, surfaces_with_opening: list | None = None, weather: WeatherFile | None = None)[source]
Init method. Call the Ventilation super() init and then store few more input
- Parameters:
name (str) – name
unit (str) – value of the unit: [“Vol/h”, “kg/s”, “kg/(m2 s)”, “m3/s”, “m3/(m2 s)”]
nominal_value (float) – the value to be multiplied by the schedule
schedule (eureca_building.schedule.Schedule) – Schedule object with a fractional schedule
tag (str, default None) – a tag to define the type of internal load
surfaces_with_opening (list) – list of eureca_building.surface.Surface objects (those considered for the natural ventilation purposes
weather (eureca_building.weather.WeatherFile) – Weather object
- property schedule
- property unit
- define_pressure_coef(weather, surfaces_with_opening)[source]
TODO : Per Giacomo compila la documentazione
- Parameters:
weather (eureca_building.weather.WeatherFile) – WeatherFile object
surfaces_with_opening (list) – list of eureca_building.surface.Surface objects (those considered for the natural ventilation purposes
- get_timestep_ventilation_mass_flow(ts, t_zone, weather)[source]
TODO : Per Giacomo compila la documentazione
- Parameters:
ts (int) – time step of simulation
t_zone (float) – zone temperature [°C]
weather (eureca_building.weather.WeatherFile) – WeatherFile object
- class eureca_building.ventilation.MechanicalVentilation(name: str, unit: str, nominal_value: float, schedule: Schedule, tag: str | None = None)[source]
Bases:
VentilationThe same as Natural/Ventilation object but different check on units
- property unit
eureca_building.weather
This module includes classes and functions to manage weather file
- class eureca_building.weather.WeatherFile(epw: str, year=None, time_steps: int = 1, irradiances_calculation: bool = True, azimuth_subdivisions: int = 8, height_subdivisions: int = 3, urban_shading_tol=[80.0, 100.0, 80.0])[source]
Bases:
objectThis class is a container for all weather data. It processes the epw file to extract arrays of temperature, wind, humidity etc……
- __init__(epw: str, year=None, time_steps: int = 1, irradiances_calculation: bool = True, azimuth_subdivisions: int = 8, height_subdivisions: int = 3, urban_shading_tol=[80.0, 100.0, 80.0])[source]
Initialize weather obj. It processes the epw file to extract arrays of temperature, wind, humidity etc……
- Parameters:
epw_name (str) – path of the epw file.
year (int, default None) – the year of simulation. it is used only to create a pd.DataFrame.
time_steps (int, default 1) – number of time steps in a hour.
irradiances_calculation (bool, default False) – Whether to do or not the irradiances calculation
azimuth_subdivisions (int, default 8) – number of the different direction (azimuth) solar radiation will be calculated
height_subdivisions (int, default 3) – number of the different direction (solar height) solar radiation will be calculated
urban_shading_tol (list, default [80.,100.,80.]) – list of three floats with the tolerances for urban shading calc (azimuth, distance, theta)
eureca_building.window
This module includes classes and functions to solve the window system
- class eureca_building.window.SimpleWindow(name: str, u_value: float, solar_heat_gain_coef: float, visible_transmittance: float = 0.9, frame_factor: float = 0.9, shading_coef_int: float = 0.05, shading_coef_ext: float = 0.05)[source]
Bases:
objectDefines the simple window model with all its characteristics and apply the simple glazing model to estimates the curve of SHGC(theta)
- __init__(name: str, u_value: float, solar_heat_gain_coef: float, visible_transmittance: float = 0.9, frame_factor: float = 0.9, shading_coef_int: float = 0.05, shading_coef_ext: float = 0.05)[source]
init method. Stores the data and checks them
- Parameters:
name (str) – name.
u_value (float) – u_value [W/(m2 K)].
solar_heat_gain_coef (float) – [-].
visible_transmittance (float, default 0.9) – [-]. The default is 0.9.
frame_factor (float, default 0.9) – [-]. The default is 0.9.
shading_coef_int (float, default 0.05) – [-]. The default is 0.05.
shading_coef_ext (float, default 0.05) – [-]. The default is 0.05.
- property u_value: float
- property solar_heat_gain_coef: float
- property visible_transmittance: float
- property frame_factor: float
- property shading_coef_int: float
- property shading_coef_ext: float
- simpleGlazingModel()[source]
Description: This function implement the simplified model for glazing that is used in energy plus The output variables are: - 4 vectors containing solar transmittance, reflectance, absorptance, SHGC in function of the incident angle from 0 to 90, with a 10 step - the solar transmittance, reflectance and absorption at normal incident; - the equivalent conductivity [W/m K] of the glazing material; - the equivalent thickness [m] of the glazing layer; - the visible reflectance on the front side and back side; - the inward flowing fraction;
———ATTENTION———– For some combinations of variable SHGC and U the curves are not physically possible,(reflectance > 1). For this reason it is necessary to manipulate the final reflectance and transmittance vectors to manage the curves. It is also necessary to force the absolute reflectance to be 1 and the absolute transmittance to be 0 for the perpendicular incidence.
Controlling input variable