Skip to content

Assignment of outer areas working correctly?

Created by: marcusfuchs

First of all sorry for raising a few doubts here and in #561 (closed) ! Unfortunately, my knowledge of TEASER is not enough to clarify this myself, so I wanted to ask for verification on the assignment of outer areas.

To understand the assignment of outer areas, I created two buildings:

    bldg = prj.add_non_residential(
        method="bmvbs",
        usage="office",
        name=f"ReferenceOL1",
        year_of_construction=year,
        number_of_floors=2,
        height_of_floors=3.5,
        net_leased_area=1000.0,
        window_layout=2,
        office_layout=1,
    )
    bldg = prj.add_non_residential(
        method="bmvbs",
        usage="office",
        name=f"ReferenceOL3",
        year_of_construction=year,
        number_of_floors=2,
        height_of_floors=3.5,
        net_leased_area=1000.0,
        window_layout=2,
        office_layout=3,
    )

The building ReferenceOL1 sets office_layout = 1, which is documented as an elongated floor. In contrast, the building ReferenceOL3 has office_layout = 3, which should represent a square building footprint.

From the following code in the office archetype, I would conclude that the length of a building defines the lengths of its southern and northern walls, while the width represents the lengths of its eastern and western walls.

        for key, value in self.outer_wall_names.items():
            # North and South
            if value[1] == 0 or value[1] == 180:
                self.outer_area[value[1]] = self._est_outer_wall_area * \
                    (self._est_length / (
                        2 * self._est_width + 2 *
                        self._est_length))
            # East and West
            elif value[1] == 90 or value[1] == 270:

                self.outer_area[value[1]] = self._est_outer_wall_area * \
                    (self._est_width / (
                        2 * self._est_width + 2 *
                        self._est_length))

When I look into the values, I think these assumptions are confirmed:

  • ReferenceOL1:
    • width: 13 m
    • lengths: 44 m
  • ReferenceOL3:
    • width: 24 m
    • lengths: 24 m

Also, for the elongated building ReferenceOL1, in the values that get assigned to self.outer_area[value[1]], I see larger area values for the if-clauses' "north-south" part (112) than in the else-branch documented as "east-west" (33).

From this I would conclude, that the building ReferenceOL1 with larger length compared to width has more windows exposed to the south side than the square building ReferenceOL3. Therefore, I would expect larger cooling loads in ReferenceOL1. Yet, when simulating both buildings, I get the following values:

Heat demand of ReferenceOL1.mat: 26.723889711387972 MWh
Cooling demand of ReferenceOL1.mat: 28.262188 MWh
Heat demand of ReferenceOL3.mat: 30.329624587889192 MWh
Cooling demand of ReferenceOL3.mat: 29.831456 MWh

Thanks in advance for any help in figuring out whether the problem is in my understanding of the code or the code itself!