Skip to content

A walk through the BESTEST cases

The validation page lists every KPI of every case. This page takes a few cases and tells, for each of them, what the case is, what the six reference programs of ASHRAE Standard 140-2020 (BSIMAC, CSE, DeST, EnergyPlus, ESP-r and TRNSYS) expect, how the trano YAML describes the case and how the results of each library compare with that expectation. The YAML fragments are cut out of the generated case files in validation/bestest/cases/, the tables and the charts are rendered from the reference data and the last results, with python -m validation.bestest report --docs.

A band is the range a result must fall in: the acceptance limits of the standard for the annual loads, and the spread of the reference programs widened by 5 % of the largest peak (loads) or by 1 K (temperatures) otherwise. In the result tables, ✓ marks a value inside its band, ~ a known deviation documented on the validation page and ✗ a value outside its band. Buildings and IDEAS gate the test suite; the reduced-order (AixLib) and ISO 13790 zones are shown for information.

Case 600: Base case, low mass

The base case: a single rectangular zone of 8 m by 6 m by 2.7 m in Denver (cold, sunny, 1609 m above sea level) with light-weight walls (wood siding, fibreglass, plasterboard), a light roof and a timber floor over 1 m of insulation whose underside sees the outdoor air. The south wall carries 12 m2 of clear double glazing without any frame. Infiltration is 0.414 air changes per hour (0.5 at sea level, corrected for the altitude), the internal gains are 200 W around the clock (60 % radiant, 40 % convective) and an ideal system keeps the air between 20 degC (heating) and 27 degC (cooling) with unlimited capacity.

What the reference programs expect

KPI BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Band
annual heating [MWh] 4.050 3.993 4.047 4.324 4.362 4.504 3.750 to 4.980 (limits of the standard)
annual cooling [MWh] 5.822 5.913 5.432 6.027 6.162 5.780 5.000 to 6.830 (limits of the standard)
peak heating [kW] 3.255 3.020 3.035 3.204 3.228 3.359 2.852 to 3.527 (programs ± tolerance)
peak cooling [kW] 5.650 6.481 5.422 6.352 6.193 6.046 5.098 to 6.805 (programs ± tolerance)

Winter nights drive the heating, so the heating peak falls on the coldest hours of January or December. The cooling peak falls on a sunny winter day too: the low sun pours through the south glazing and the light envelope has nothing to store it in, so the zone hits 27 degC within a few hours. The annual loads must fall inside the acceptance limits of the standard; the peaks must fall inside the spread of the reference programs widened by 5 % of the largest peak. The hourly loads of 1 February are compared as well: a cold clear day on which the zone switches from heating at night to cooling around noon.

How the YAML describes it

The zone is a space with the infiltration variant, whose ach parameter is the air change rate; linearize_emissive_power: false keeps the long-wave exchange non-linear as the standard asks. The floor is a floor_on_grounds boundary with the outdoor_air variant (its outer surface follows the outdoor dry-bulb temperature), the roof is an external wall with the ceiling tilt. The 200 W of internal gains are an occupancy element occupied all day, with the radiant, convective and latent gains per square metre of floor. The ideal system is the ideal_heating_cooling emission: its set points are day schedules in kelvin (time since midnight in seconds, value) repeated every day, and its capacities are 1 MW so that the set points are always met. The weather is the Denver TMY3 file shipped with Buildings; the atmospheric pressure is read from the file, so that the air density, and with it the infiltration mass flow, is that of the site. Every material has 18 states per 0.2 m of layer (number_of_states), the discretisation of Buildings' own BESTEST models.

weather:

parameters:
  path: Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_CO_Denver.Intl.AP.725650_TMY3.mos")
  atmospheric_pressure_source: Buildings.BoundaryConditions.Types.DataSource.File

constructions[id=LIGHT_WALL:001]:

id: LIGHT_WALL:001
layers:
- material: WOOD_SIDING:001
  thickness: 0.009
- material: FIBERGLASS:001
  thickness: 0.066
- material: PLASTERBOARD:001
  thickness: 0.012

spaces[0].parameters:

floor_area: 48.0
average_room_height: 2.7
ach: 0.414
linearize_emissive_power: 'false'

spaces[0].external_boundaries.windows:

- surface: 12.0
  azimuth: 0.0
  tilt: wall
  construction: DOUBLE_CLEAR:001
  width: 6.0
  height: 2.0
  frame_fraction: 0.001

spaces[0].occupancy:

parameters:
  occupancy: '{1, 86400}'
  gain: '[120/48; 80/48; 0]'
  heat_gain_if_occupied: '1'

spaces[0].emissions:

- ideal_heating_cooling:
    id: HVAC:001
    parameters:
      heating_setpoint_schedule: '[0, 293.15]'
      cooling_setpoint_schedule: '[0, 300.15]'
      maximum_heating_power: 1000000.0
      maximum_cooling_power: 1000000.0

How trano fares

KPI Band Buildings IDEAS ISO 13790 reduced order
annual heating [MWh] 3.750 to 4.980 4.449 ✓ 4.541 ✓ 3.122 ✗ 5.873 ✗
annual cooling [MWh] 5.000 to 6.830 5.973 ✓ 6.265 ✓ 5.298 ✓ 3.883 ✗
peak heating [kW] 2.852 to 3.527 3.215 ✓ 3.314 ✓ 3.099 ✓ 3.731 ✗
peak cooling [kW] 5.098 to 6.805 6.187 ✓ 6.545 ✓ 4.870 ✗ 4.113 ✗
  • Buildings: 4 of 4 KPIs inside their band.
  • IDEAS: 4 of 4 KPIs inside their band.
  • ISO 13790: 2 of 4 KPIs inside their band, outside: annual heating 3.122 MWh against 3.750 to 4.980; peak cooling 4.870 kW against 5.098 to 6.805.
  • reduced order: 0 of 4 KPIs inside their band, outside: annual heating 5.873 MWh against 3.750 to 4.980; annual cooling 3.883 MWh against 5.000 to 6.830; peak heating 3.731 kW against 2.852 to 3.527; peak cooling 4.113 kW against 5.098 to 6.805.

Case 600: hourly load on 1 February Case 600: hourly load on 1 February -6 -4 -2 0 2 1 4 7 10 13 16 19 22 hour of the day load [kWh], heating positive BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Buildings IDEAS reference programs Buildings IDEAS

Case 600FF: 600 free floating

Case 600 without any heating or cooling: the temperature of the zone floats freely under the weather and the internal gains.

What the reference programs expect

KPI BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Band
maximum temperature [degC] 63.400 68.400 65.000 63.800 64.600 62.400 61.400 to 69.400 (programs ± tolerance)
minimum temperature [degC] -9.900 -12.900 -13.500 -12.600 -13.500 -13.800 -14.800 to -8.900 (programs ± tolerance)
mean temperature [degC] 26.100 25.600 25.300 24.900 25.300 24.300 23.300 to 27.100 (programs ± tolerance)

The light envelope stores next to nothing, so the zone follows the weather closely: it drops well below freezing on winter nights and climbs above 60 degC on sunny days, with the glazing turning the zone into a greenhouse. The standard compares the maximum, minimum and annual mean temperature with the spread of the reference programs (widened by 1 K here), and the hourly temperatures of 1 February.

How the YAML describes it

The YAML is that of case 600 without the emissions list: a space without an emission is free-floating. The occupancy stays, since the 200 W of internal gains are part of the case.

spaces[0].parameters:

floor_area: 48.0
average_room_height: 2.7
ach: 0.414
linearize_emissive_power: 'false'

spaces[0].occupancy:

parameters:
  occupancy: '{1, 86400}'
  gain: '[120/48; 80/48; 0]'
  heat_gain_if_occupied: '1'

How trano fares

KPI Band Buildings IDEAS ISO 13790 reduced order
maximum temperature [degC] 61.400 to 69.400 63.318 ✓ 66.086 ✓ 54.174 ✗ 62.110 ✓
minimum temperature [degC] -14.800 to -8.900 -12.847 ✓ -13.193 ✓ -7.447 ✗ -14.177 ✓
mean temperature [degC] 23.300 to 27.100 24.664 ✓ 25.109 ✓ 26.564 ✓ 20.451 ✗
  • Buildings: 3 of 3 KPIs inside their band.
  • IDEAS: 3 of 3 KPIs inside their band.
  • ISO 13790: 1 of 3 KPIs inside their band, outside: maximum temperature 54.174 degC against 61.400 to 69.400; minimum temperature -7.447 degC against -14.800 to -8.900.
  • reduced order: 2 of 3 KPIs inside their band, outside: mean temperature 20.451 degC against 23.300 to 27.100.

Case 600FF: zone temperature on 1 February Case 600FF: zone temperature on 1 February 0 20 40 1 4 7 10 13 16 19 22 hour of the day temperature [degC] BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Buildings IDEAS reference programs Buildings IDEAS

Case 900: Base case, high mass

Case 600 with heavy constructions: the walls are concrete blocks behind foam insulation and wood siding, the floor is a concrete slab over the insulation. The U-values are the same as in case 600; only the thermal mass changes.

What the reference programs expect

KPI BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Band
annual heating [MWh] 1.726 1.379 1.591 1.664 1.585 1.814 1.040 to 2.280 (limits of the standard)
annual cooling [MWh] 2.714 2.464 2.383 2.489 2.488 2.267 2.350 to 2.600 (limits of the standard)
peak heating [kW] 2.551 2.443 2.453 2.687 2.633 2.778 2.304 to 2.917 (programs ± tolerance)
peak cooling [kW] 3.039 3.376 2.556 3.040 2.896 2.940 2.387 to 3.545 (programs ± tolerance)

The mass stores the solar gains of the day and gives them back at night, so both the heating and the cooling loads drop a lot against case 600, the cooling by more than half. The peaks drop too, and the heating peak moves to the end of long cold spells rather than to the first cold night. The hourly loads of 1 February show a much smoother profile than case 600.

How the YAML describes it

Only the constructions change: the walls and the floor refer to the heavy constructions, whose concrete layers carry the mass. For the libraries that aggregate the envelope (the reduced-order and ISO 13790 zones), trano derives the mass class of the zone from the heat capacity of these layers.

constructions[id=HEAVY_WALL:001]:

id: HEAVY_WALL:001
layers:
- material: WOOD_SIDING:001
  thickness: 0.009
- material: FOAM_INSULATION:001
  thickness: 0.0615
- material: CONCRETE_BLOCK:001
  thickness: 0.1

constructions[id=HEAVY_FLOOR:001]:

id: HEAVY_FLOOR:001
layers:
- material: FLOOR_INSULATION:001
  thickness: 1.007
- material: CONCRETE_SLAB:001
  thickness: 0.08

How trano fares

KPI Band Buildings IDEAS ISO 13790 reduced order
annual heating [MWh] 1.040 to 2.280 1.718 ✓ 1.763 ✓ 1.803 ✓ 5.263 ✗
annual cooling [MWh] 2.350 to 2.600 2.395 ✓ 2.599 ✓ 3.581 ✗ 3.184 ✗
peak heating [kW] 2.304 to 2.917 2.668 ✓ 2.765 ✓ 2.880 ✓ 3.726 ✗
peak cooling [kW] 2.387 to 3.545 2.974 ✓ 3.171 ✓ 3.532 ✓ 3.631 ✗
  • Buildings: 4 of 4 KPIs inside their band.
  • IDEAS: 4 of 4 KPIs inside their band.
  • ISO 13790: 3 of 4 KPIs inside their band, outside: annual cooling 3.581 MWh against 2.350 to 2.600.
  • reduced order: 0 of 4 KPIs inside their band, outside: annual heating 5.263 MWh against 1.040 to 2.280; annual cooling 3.184 MWh against 2.350 to 2.600; peak heating 3.726 kW against 2.304 to 2.917; peak cooling 3.631 kW against 2.387 to 3.545.

Case 900: hourly load on 1 February Case 900: hourly load on 1 February 0 0.5 1 1.5 1 4 7 10 13 16 19 22 hour of the day load [kWh], heating positive BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Buildings IDEAS reference programs Buildings IDEAS

Case 640: 600 with a night heating setback

Case 600 with a night set-back of the heating: the heating set point is 10 degC from 23:00 to 07:00 and 20 degC otherwise. The cooling set point stays at 27 degC.

What the reference programs expect

KPI BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Band
annual heating [MWh] 2.682 2.403 2.619 2.662 2.654 2.653 1.580 to 3.760 (limits of the standard)
annual cooling [MWh] 5.804 5.644 5.237 5.763 5.893 5.477 4.440 to 6.860 (limits of the standard)
peak heating [kW] 4.633 4.222 4.658 4.559 4.101 4.039 3.806 to 4.891 (programs ± tolerance)
peak cooling [kW] 5.650 6.429 5.365 6.297 6.127 5.967 5.044 to 6.750 (programs ± tolerance)

The zone cools down at night, so the annual heating drops against case 600. The heating peak rises though: at 07:00 the system has to bring a cold zone back to 20 degC at once, and this morning pick-up is the largest load of the year, well above the peak of case 600.

How the YAML describes it

The heating set point becomes a day schedule with the set-back: pairs of time since midnight and set point in kelvin, held constant between two rows, with the step written as two rows at the same time. The schedule repeats every day.

spaces[0].emissions:

- ideal_heating_cooling:
    id: HVAC:001
    parameters:
      heating_setpoint_schedule: '[0, 283.15; 25200, 283.15; 28800, 293.15; 82800, 293.15; 82800, 283.15;
        86400, 283.15]'
      cooling_setpoint_schedule: '[0, 300.15]'
      maximum_heating_power: 1000000.0
      maximum_cooling_power: 1000000.0

How trano fares

KPI Band Buildings IDEAS ISO 13790 reduced order
annual heating [MWh] 1.580 to 3.760 2.715 ✓ 2.769 ✓ 1.879 ✓ 3.765 ✗
annual cooling [MWh] 4.440 to 6.860 5.725 ✓ 6.009 ✓ 4.942 ✓ 3.791 ✗
peak heating [kW] 3.806 to 4.891 4.356 ✓ 4.370 ✓ 4.350 ✓ 3.445 ✗
peak cooling [kW] 5.044 to 6.750 6.138 ✓ 6.491 ✓ 4.870 ✗ 4.103 ✗
  • Buildings: 4 of 4 KPIs inside their band.
  • IDEAS: 4 of 4 KPIs inside their band.
  • ISO 13790: 3 of 4 KPIs inside their band, outside: peak cooling 4.870 kW against 5.044 to 6.750.
  • reduced order: 0 of 4 KPIs inside their band, outside: annual heating 3.765 MWh against 1.580 to 3.760; annual cooling 3.791 MWh against 4.440 to 6.860; peak heating 3.445 kW against 3.806 to 4.891; peak cooling 4.103 kW against 5.044 to 6.750.

Case 650: 600 with night ventilation and no heating

Case 600 without heating: the cooling set point is 27 degC from 07:00 to 18:00 and off otherwise, and a fan blows 1700 m3/h of outdoor air through the zone from 18:00 to 07:00 without adding any heat.

What the reference programs expect

KPI BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Band
annual heating [MWh] 0.000 0.000 0.000 0.000 0.000 0.000 0.000 to 0.000 (limits of the standard)
annual cooling [MWh] 4.629 4.654 4.186 4.817 4.945 4.632 3.460 to 5.880 (limits of the standard)
peak heating [kW] 0.000 0.000 0.000 0.000 0.000 0.000 0.000 to 0.000 (programs ± tolerance)
peak cooling [kW] 5.648 6.290 5.045 6.138 5.961 5.797 4.731 to 6.604 (programs ± tolerance)

The annual heating is zero by construction. The night ventilation flushes the zone with cold outdoor air, so the cooling drops against case 600 but by less than the free cooling would suggest: the zone is light and heats up again as soon as the sun rises. The cooling peak stays close to that of case 600, since it occurs in the afternoon, long after the fan stopped.

How the YAML describes it

The fan is the ventilation_schedule parameter of the space: a day schedule of outdoor air mass flow in kg/s brought in on top of the infiltration, at the outdoor temperature and humidity, 1409 kg/h being 1700 m3/h at the air density of the site. The heating is switched off with a set point of 0 degC and a capacity of zero; the cooling set point is 100 degC outside the cooling hours.

spaces[0].parameters:

floor_area: 48.0
average_room_height: 2.7
ach: 0.414
linearize_emissive_power: 'false'
ventilation_schedule: '[0, 0.391389; 25200, 0.391389; 25200, 0; 64800, 0; 64800, 0.391389; 86400, 0.391389]'

spaces[0].emissions:

- ideal_heating_cooling:
    id: HVAC:001
    parameters:
      heating_setpoint_schedule: '[0, 273.15]'
      cooling_setpoint_schedule: '[0, 373.15; 25200, 373.15; 25200, 300.15; 64800, 300.15; 64800, 373.15;
        86400, 373.15]'
      maximum_heating_power: 0.0
      maximum_cooling_power: 1000000.0

How trano fares

KPI Band Buildings IDEAS
annual heating [MWh] 0.000 to 0.000 0.000 ✓ 0.000 ✓
annual cooling [MWh] 3.460 to 5.880 4.802 ✓ 5.067 ✓
peak heating [kW] 0.000 to 0.000 0.000 ✓ 0.000 ✓
peak cooling [kW] 4.731 to 6.604 5.949 ✓ 6.324 ✓
  • Buildings: 4 of 4 KPIs inside their band.
  • IDEAS: 4 of 4 KPIs inside their band.
  • ISO 13790: the case is not supported.
  • reduced order: the case is not supported.

Case 610: 600 with a south overhang

Case 600 with a 1 m deep horizontal overhang above the south window, placed 0.5 m above the top of the glazing and running the full width of the wall.

What the reference programs expect

KPI BSIMAC CSE DeST EnergyPlus ESP-r TRNSYS Band
annual heating [MWh] 4.163 4.066 4.144 4.375 4.527 4.592 3.610 to 5.270 (limits of the standard)
annual cooling [MWh] 4.299 4.382 4.173 4.333 4.233 4.117 2.740 to 6.030 (limits of the standard)
peak heating [kW] 3.166 3.021 3.039 3.192 3.233 3.360 2.853 to 3.528 (programs ± tolerance)
peak cooling [kW] 5.466 6.432 5.331 6.135 5.934 5.868 5.009 to 6.754 (programs ± tolerance)

The overhang cuts the high summer sun and leaves the low winter sun alone, so the annual cooling drops noticeably against case 600 while the heating hardly moves. The cooling peak drops a little: it occurs in winter, when the overhang shades only part of the window.

How the YAML describes it

The overhang is an overhang object of the window: its depth, the gap between the top of the window and the overhang, and how far it extends past the window on each side. Side fins (cases 630 and 930) are a side_fins object in the same spirit.

spaces[0].external_boundaries.windows:

- surface: 12.0
  azimuth: 0.0
  tilt: wall
  construction: DOUBLE_CLEAR:001
  width: 6.0
  height: 2.0
  frame_fraction: 0.001
  overhang:
    depth: 1.0
    gap: 0.5
    width_left: 0.5
    width_right: 0.5

How trano fares

KPI Band Buildings
annual heating [MWh] 3.610 to 5.270 4.475 ✓
annual cooling [MWh] 2.740 to 6.030 4.810 ✓
peak heating [kW] 2.853 to 3.528 3.216 ✓
peak cooling [kW] 5.009 to 6.754 6.082 ✓
  • Buildings: 4 of 4 KPIs inside their band.
  • IDEAS: the case is not supported.
  • ISO 13790: the case is not supported.
  • reduced order: the case is not supported.

Case 960: Low mass zone with an unconditioned high mass sun-space

A two-zone case: the back zone of case 600 keeps its light envelope but loses its windows, and a 2 m deep unconditioned sun-space with heavy walls, a concrete slab and the 12 m2 of south glazing is attached to its south wall. The two zones share a 0.2 m concrete common wall. The back zone is conditioned between 20 and 27 degC; the sun-space floats freely.

What the reference programs expect

KPI CSE DeST EnergyPlus ESP-r TRNSYS Band
annual heating [MWh] 2.522 2.771 2.689 2.624 2.860 2.000 to 3.400 (limits of the standard)
annual cooling [MWh] 0.926 0.909 0.907 0.950 0.789 0.620 to 1.810 (limits of the standard)
peak heating [kW] 2.132 2.085 2.259 2.201 2.300 1.970 to 2.415 (programs ± tolerance)
peak cooling [kW] 1.377 1.367 1.480 1.403 1.338 1.264 to 1.554 (programs ± tolerance)
maximum temperature [degC] 48.900 53.200 49.900 49.500 48.100 47.100 to 54.200 (programs ± tolerance)
minimum temperature [degC] 8.000 6.700 5.100 5.000 4.200 3.200 to 9.000 (programs ± tolerance)
mean temperature [degC] 28.600 29.500 27.700 27.700 26.800 25.800 to 30.500 (programs ± tolerance)

The sun-space collects the solar gains, stores them in its mass and conducts part of them through the common wall into the back zone, so the back zone needs less heating than case 600 and very little cooling. The standard checks the loads of the back zone and the maximum, minimum and mean temperature of the sun-space.

How the YAML describes it

The sun-space is a second space with occupancy: {variant: none} (no internal gains at all) and no emission. The common wall is an internal_walls entry between the two spaces; trano infers the rest of the topology from the boundaries of each space.

spaces[1]:

id: SUNSPACE:001
variant: infiltration
parameters:
  floor_area: 16.0
  average_room_height: 2.7
  ach: 0.414
  linearize_emissive_power: 'false'
external_boundaries:
  external_walls:
  - surface: 21.6
    azimuth: 0.0
    tilt: wall
    construction: HEAVY_WALL:001
  - surface: 5.4
    azimuth: -1.570796
    tilt: wall
    construction: HEAVY_WALL:001
  - surface: 5.4
    azimuth: 1.570796
    tilt: wall
    construction: HEAVY_WALL:001
  - surface: 16.0
    azimuth: 0.0
    tilt: ceiling
    construction: ROOF:001
  floor_on_grounds:
  - surface: 16.0
    construction: HEAVY_FLOOR:001
    variant: outdoor_air
  windows:
  - surface: 12.0
    azimuth: 0.0
    tilt: wall
    construction: DOUBLE_CLEAR:001
    width: 6.0
    height: 2.0
    frame_fraction: 0.001
occupancy:
  variant: none

internal_walls:

- space_1: ZONE:001
  space_2: SUNSPACE:001
  construction: COMMON_WALL:001
  surface: 21.6

How trano fares

KPI Band Buildings IDEAS
annual heating [MWh] 2.000 to 3.400 2.588 ✓ 2.695 ✓
annual cooling [MWh] 0.620 to 1.810 0.950 ✓ 0.950 ✓
peak heating [kW] 1.970 to 2.415 2.104 ✓ 2.217 ✓
peak cooling [kW] 1.264 to 1.554 1.475 ✓ 1.510 ✓
maximum temperature [degC] 47.100 to 54.200 48.036 ✓ 51.310 ✓
minimum temperature [degC] 3.200 to 9.000 4.160 ✓ 4.133 ✓
mean temperature [degC] 25.800 to 30.500 26.693 ✓ 28.027 ✓
  • Buildings: 7 of 7 KPIs inside their band.
  • IDEAS: 7 of 7 KPIs inside their band.
  • ISO 13790: the case is not supported.
  • reduced order: the case is not supported.