Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue679 interzonal elements, soil temperature, and interior geometry estimation #785

Open
wants to merge 52 commits into
base: main
Choose a base branch
from

Conversation

PGorzalka
Copy link
Contributor

Finally, I was able to finish the work on issue #679
@DaJansenGit thanks for your support!

Changes mainly encompass the work mentioned in this paper:

  • building up on changes already implemented via IBPSA merge, some adaptations for non-constant soil temperature
    • Soil temperature can now be a constant, a sine, or specified in an additional input file
    • Project parameter defines what is chosen
  • Interzonal elements (that is, building elements that connect two zones)
    • New building element object types InterzonalWall, InterzonalCeiling and InterzonalFloor
    • Due to current convention, building elements have only one parent thermal zone. This is why an interzonal element has to be created twice (once for each zone it borders) and has subsequently two representations in TEASER
    • Export to AixLib using the new FiveElements RC model there, making sure that only one of the two representations is actually considered in simulation.
    • If exported to an AixLib model with less elements, interzonal building elements will be lumped into interior or exterior walls depending on the zones' properties
    • Option to load layers in reversed order to make sure borders are correctly represented on both sides
    • Possibility to place insulation layer not necessarily on the outside (making sure that it is placed correctly for both representations of the same interzonal element)
  • New method(s) to estimate interior geometry
    • Introduced as string parameter of a Building object
    • 'typical_minus_outer' sets length of inner walls = 2 * typical length * height of floors + 2 * typical width * height of floors - length of outer or interzonal walls
    • 'typical_minus_outer_extended' like 'typical_minus_outer', but also considers that
      a) a non-complete "average room" reduces its circumference proportional to the square root of the area
      b) rooftops, windows and ground floors (= walls with border to soil) may have a vertical share
    • Number and height of floors can now be set as zone parameters
  • Included everything to JSON input/output
  • Example 11 covering all three (soil temperature, interzonals, new interior mass estimation) and creates ASHRAE140 test case 960
  • Tests covering all three (soil temperature, interzonals, new interior mass estimation). Note: I did not change the old test functions, although the GitHub diff says I did. I just duplicated and adapted them.

Additional minor stuff:

  • Custom multizone template, so boundary conditions can be adapted more easily
  • two missing eachs in AixLib.Fluid.Pools.BaseClasses.AirFlowMoistureToROM caused OM to fail -> fixed
  • weather data path can be specified starting with modelica: to reference to existing Modelica resources
  • Some fixes to buildingelement.py to make it more resilient against minor bugs
  • Corrected some docstring typos
  • Heavily reduced length of code in RC parameter calculation. Adaptations there were necessary due to the reversed layers of interzonal elements, but it was basically impossible to debug before.

Missing:

  • Test Case 960 was not actually tested against standard results because the weather file provided in AixLib (AixLib\Resources\weatherdata\ASHRAE140.mos) does not contain the weather data provided by the standard.
  • Reference the paper in Readme?
  • version count, also in example json inputs
  • Project docstring that recommends For AixLib you should always use 2 elements!!! -> what should be written there?

See also PR 1546 in AixLib

Looking forward to your feedback on the changes!

PGorzalka and others added 30 commits March 16, 2020 17:41
…ackage without setup

outside parameter added to outer wall
…useconditions now cover interzonal air exchange and heat flow parameters

outside parameter removed from outerwall
tabula_de archetype generation and thermalzone adapted for introducing external geometry, including adjustments to innerwall, floor and ceiling
…truction, different type when creating teaser building parts from btom building parts
…nnections

inner ir emissivity calculation bugfix
some changes in parameter handling due to inconsistencies in previous version
adjustment regarding resistance orientation of nz borders
… 4-contribute-dlr-changes-to-open-source-repository

# Conflicts:
#	data/input/inputdata/UseConditions.json
#	data/output/aixlib_output.py
#	data/output/modelicatemplate/AixLib/AixLib_Multizone
#	data/output/modelicatemplate/modelica_test_script
#	data/output/runUnitTests.py
#	logic/buildingobjects/calculation/aixlib.py
#	logic/buildingobjects/calculation/four_element.py
#	teaser/logic/archetypebuildings/tabula/de/singlefamilyhouse.py
…es that should not be contributed and consistency of those that should be.
…neighbored zone functionality in InnerWall and its children
…s with selection. change integration of inner wall area approximation.
…, test of inner wall calculation approach added, additional internal gains removed
…ons to the overall code made after discussing everything with David
PGorzalka and others added 18 commits June 16, 2023 15:58
added new tests that revelead other errors: concise solution for handling interzonal elements depending on properties of the zones still needs to be implemented.
…if interzonals are treated as inner elements
…tom_paths_interzonal_soil

# Conflicts:
#	teaser/data/input/buildingelement_input_json.py
#	teaser/data/output/aixlib_output.py
#	teaser/data/output/modelicatemplate/AixLib/AixLib_Multizone
#	teaser/data/output/modelicatemplate/AixLib/AixLib_ThermalZoneRecord_FourElement
#	teaser/data/output/modelicatemplate/AixLib/AixLib_ThermalZoneRecord_ThreeElement
#	teaser/data/output/modelicatemplate/AixLib/AixLib_ThermalZoneRecord_TwoElement
#	teaser/logic/archetypebuildings/bmvbs/custom/institute.py
#	teaser/logic/archetypebuildings/bmvbs/custom/institute4.py
#	teaser/logic/archetypebuildings/bmvbs/custom/institute8.py
#	teaser/logic/archetypebuildings/bmvbs/office.py
#	teaser/logic/archetypebuildings/bmvbs/singlefamilydwelling.py
#	teaser/logic/archetypebuildings/residential.py
#	teaser/logic/archetypebuildings/tabula/de/apartmentblock.py
#	teaser/logic/archetypebuildings/tabula/de/multifamilyhouse.py
#	teaser/logic/archetypebuildings/tabula/de/singlefamilyhouse.py
#	teaser/logic/archetypebuildings/tabula/de/terracedhouse.py
#	teaser/logic/archetypebuildings/tabula/dk/apartmentblock.py
#	teaser/logic/archetypebuildings/tabula/dk/singlefamilyhouse.py
#	teaser/logic/archetypebuildings/tabula/dk/terracedhouse.py
#	teaser/logic/archetypebuildings/urbanrenet/est1a.py
#	teaser/logic/archetypebuildings/urbanrenet/est1b.py
#	teaser/logic/archetypebuildings/urbanrenet/est2.py
#	teaser/logic/archetypebuildings/urbanrenet/est3.py
#	teaser/logic/archetypebuildings/urbanrenet/est4a.py
#	teaser/logic/archetypebuildings/urbanrenet/est4b.py
#	teaser/logic/archetypebuildings/urbanrenet/est5.py
#	teaser/logic/archetypebuildings/urbanrenet/est6.py
#	teaser/logic/archetypebuildings/urbanrenet/est7.py
#	teaser/logic/archetypebuildings/urbanrenet/est8a.py
#	teaser/logic/archetypebuildings/urbanrenet/est8b.py
#	teaser/logic/buildingobjects/buildingphysics/wall.py
#	teaser/logic/buildingobjects/calculation/aixlib.py
#	teaser/logic/buildingobjects/calculation/four_element.py
#	teaser/logic/buildingobjects/calculation/one_element.py
#	teaser/logic/buildingobjects/calculation/three_element.py
#	teaser/logic/buildingobjects/calculation/two_element.py
#	teaser/logic/buildingobjects/thermalzone.py
#	teaser/project.py
#	tests/test_data.py
…nd made interzonal import/export choices more concise. Tests are successful for now
added ASHRAE 140 Case 960 into example 11
version update in json files
added separate tests for building elements with interzonals
minor fixes
…hs_interzonal_soil

# Conflicts:
#	teaser/logic/buildingobjects/calculation/aixlib.py
@DaJansenGit DaJansenGit mentioned this pull request Nov 25, 2024
@DaJansenGit
Copy link
Member

DaJansenGit commented Nov 25, 2024

Thanks for providing the PR! I did the same as Fabian in AixLib and provided you a branch that runs our CI: #786

This CI is not that complete as in AixLib but will run the unit tests to see if anything goes wrong.

@DaJansenGit DaJansenGit self-requested a review November 25, 2024 16:53
@PGorzalka
Copy link
Contributor Author

@DaJansenGit added your commits to the CI branch and renamed the ground temperature selector in the records as you suggested in the AixLib PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants