NTNU-IndEcol / BuildME

6 stars 1 forks source link

Integrating new archetypes #47

Closed nheeren closed 8 months ago

nheeren commented 2 years ago

As discussed I uploaded a bunch of candidate archetypes to https://github.com/nheeren/BuildME/tree/master/data/archetype/new_archetypes. I would appreciate if you could grab 1-2 of them and help making them work with BuildME, @shnkn @kamilitsa.

kamilakrych commented 2 years ago

I can take the last two :)

kamilakrych commented 2 years ago

I'm wondering, how do we deal with the Construction:CFactor and Construction:FFactor objects?

I see that most (all?) of the new archetypes include these objects. These are constructions object but they don't include specific layers with given thickness values. Definitely there is some material included in these, but the current BuildME algorithm just ignores these objects. Should we create some surrogate elements again?

nheeren commented 2 years ago

Yes. I hit the same roadblock. Sorry, I should have warned you. It would be nice to use constructions, so we can include the materials in the inventory. I am currently testing the different options for the basement pre-processor, but haven't had a breakthrough yet. @shnkn had another idea and may could weigh in here?

CBreton026 commented 2 years ago

Hi everyone, I have been following your conversation as I am currently learning more about the ODYM-RECC model. I have no experience with EnergyPlus and the BuildME model yet, so I'll try to weigh in, but I hope this suggestion isn't trivial!

From this Engineering reference, it seems the CFactor is an approximation based on 15cm of concrete and a fictitious insulation layer. Wouldn't it be possible to calculate the required R value for the fictitious insulation, and then use it to select an insulation material with similar properties?

kamilakrych commented 2 years ago

Hi Charles, thanks for contributing! This is definitely not a trivial suggestion :) It didn't occur to me to look into the Engineering reference. But indeed, that should solve the problem! We need to make similar assumptions in other places as well :)

CBreton026 commented 2 years ago

Great! Glad this could help :)

nheeren commented 2 years ago

@CBreton026 Thanks for weighing in! Maybe I did not fully grasp your suggestion, but the issue is that we want to be able to extract materials from the energyplus components. So I would much more prefer to be able to define clear components and explicitly calculate them, rather than reverse-engineering them ;)

kamilakrych commented 2 years ago

As far as I understand, there is no way to directly extract components in case of the CFactor and FFactor constructions. But it's possible to make a surrogate element, and the tip from Charles can help us in doing that :)

shnkn commented 2 years ago

Hello @kamilitsa and @nheeren , Sorry for my late reply. I can take SchoolPrimary.idf and SchoolSecondary.idf.

For the FCconstructions, I believe the same approach that I suggested for the basement constructions can be applied here as well. I am not sure how to calculate the tailored ground temperatures for it but I am repeating my previous email as this approach can be implemented: __ So I think the problem can be solved by defining the construction for underground walls at the “Construction” tab like other wall types. Another important requirement is that at the “BuildingSuface:Detailed” tab, corresponding underground wall surfaces’ “Outside Boundary Condition” fields might need to be changed to “Ground” instead of “GroundFCfactorMethod”. In this case, “Site Ground Temperature:FCfactorMethod” tab becomes redundant and can be deleted.

The difference between the external and underground walls will be on the surface adjacency level, where the external uses “Outdoors” boundary condition while the underground uses “Ground” condition.

If we exclude the FCfactor method in our calculations, we need to define some values for the ‘Site: GroundTemperature: BuildingSurface’ tab. These values will be used only for the surfaces where ‘OutsideBoundaryCondition’ is set to ‘Ground’ at the ‘BuildingSurface:Detailed’ tab.

I checked the documentation (I/O reference and Auxillary Programs), but it seems like there are very advanced methods to calculate tailored ground temperatures. A more straightforward suggestion from EnergyPlus is using ground temperatures 2C less than the average indoor space temperature for commercial buildings in the USA.

I saw that you assumed 13C for the FCFactorMethod for all months. On the other hand, the default value for ‘Site: GroundTemperature: BuildingSurface’ is 18C. So I think we can use either this value for all months, or use 2C lower indoor temperature values.

CBreton026 commented 2 years ago

@nheeren Of course, that would be best! Indeed, my suggestion would only provide proxies, and not the actual building materials. As I understand it, it doesn't seem like CFactor and Ffactor can provide this information though. Although I don't know much about EnergyPlus models, @shnkn's suggestion sounds like a better way to go!

shnkn commented 2 years ago

Hello @nheeren,

We checked all the new archetype files, unfortunately, they do not seem they were using Ideal Loads. A conversion process is therefore needed in order to be used with Mixed Mode Ventilation @kamilitsa implemented. So shall we start the conversion process or is there a possibility to change them with other alternatives available somewhere else?

nheeren commented 2 years ago

Thanks Sahin for looking into those archetypes. I am not familiar with any alternatives I am afraid... While converting the archetypes, would you mind documenting the procedure in https://github.com/nheeren/BuildME/tree/master/docs/archetypes? That is something we wanted to do for the paper anyway.

shnkn commented 2 years ago

Hello Niko, I uploaded several documents to the master branch.

Apart from these, do we need to implement ideal loads to material-specific archetypes (i.e., sfh-masonry, sfh-concrete, etc.)?

nheeren commented 2 years ago

This is amazing @shnkn! I suggest to move the discussion on the new new tool to #51.

CBreton026 commented 2 years ago

Are there still new archetypes that need to be converted, from the above list? I am still unsure of the exact process/work to do to convert an archetype so that it meets BuildME requirements, but I could give it a try. Is there a doc discussing this somewhere?

nheeren commented 2 years ago

Thanks Charles. We are currently converting the ones in the above list. Once we figured out the process, I have a few additional candidates to include. Sahin's archetypes in data/new_archetypes/IdealLoads appear to mostly work. I believe the final remaining issue is to figure out the Ffactor basement issue. If you want to try something here that would certainly be appreciated.

kamilakrych commented 2 years ago

I added a fix that should deal with the Ffactor and Cfactor constructions. Should be checked once more before merging into master's - I'm not sure how compatible the fix is with the changes that Sahin have been doing to the archetypes lastly :)

But as far as my understanding goes - I think the new archetypes are implemented now!

CBreton026 commented 2 years ago

Looks awesome, great work! :)

I was just thinking, maybe at L.489 (in idf.py) the comment # we don't have ASHRAE values for these cases, skip insulation could become a logging.warning()? This seems to be the kind of information that should be made clear when it happens.

I was just thinking of adding a logger to BuildME to help better document each run, similar to what is done in ODYM-RECC main.py does. What do you think? In the meantime, we could add simple logging statements (or even prints) for cases like this?

kamilakrych commented 2 years ago

Good point, Charles, thanks for the input. Indeed, I wasn't really sure how to handle that. A warning seems like a good solution :) Will add a fix in a new commit

kamilakrych commented 2 years ago

Okay, there is a new commit in my branch to fix that + a few other issues that I discovered in the F-factor calculations. All should work now!

shnkn commented 2 years ago

New Archetypes are implemented to BuildME All of the archetypes were converted by using Ideal Loads converter, IDF converter, and by Kamila's FC construction method. I pushed the updates to Kamila's branch. There are still some missing features but these are not mandatory to be addressed: -Airtightness Values across different standards (can be edited in replace.xlsx) -Other RES scenarios than RES0 -Material specific thickness values ( right now I only added a placeholder value for all of the new ones, it can be accessed in material.xlsx and changed with realistic values)

nheeren commented 2 years ago

Thank you both for all the work you put in and this great progress.

@kamilitsa solution is awesome, however the CFactor thing comes back to bite us, I am afraid 🐍 :

USA_HotelL_standard_RES0_1A_2015_HVAC:   0%|          | 0/6 [00:03<?, ?it/s]
Traceback (most recent call last):
  File "/Users/n/code/BuildME/main.py", line 63, in <module>
    continue_previous()
  File "/Users/n/code/BuildME/main.py", line 51, in continue_previous
    simulate.calculate_materials(run, fnames)
  File "/Users/n/code/BuildME/BuildME/simulate.py", line 263, in calculate_materials
    mat_vol_bdg = material.calc_mat_vol_bdg(idff, surfaces, mat_vol_m2)
  File "/Users/n/code/BuildME/BuildME/material.py", line 65, in calc_mat_vol_bdg
    for material in mat_m2[surface.Construction_Name]:
KeyError: 'Basement_Wall_North_Cfactor-standard-RES0'

Process finished with exit code 1

That is because Basement_Wall_North_Cfactor-standard-RES0 is a CFactor element. Can you look into this in your branch?

shnkn commented 2 years ago

All of the archetypes in my version of Kamila's branch are working fine @nheeren, I used to get the same error message but if you could look into my last commit, there shouldn't be any problem.

1 parent 4205224 commit 02accd97e98a09f89ebe56015ca44d254dc93b61

nheeren commented 2 years ago

Oh – possibly I was on the wrong branch. Thank you. Will check again.