Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Why does inclusion of ERI calculations in BEopt slow down modelling?

asked 2022-11-07 09:22:11 -0500

jpierce's avatar

Hello, I'm curious, why does the inclusion of ERI results slow down BEopt modelling so much? It seems like (nearly) all of the data needed for an ERI calculation is part of the standard results for an iteration point. Is the software recalculating the reference home for each and every point, even though many of them are identical? If so, memoization would greatly improve performance.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2022-11-07 13:16:15 -0500

updated 2022-11-07 13:27:18 -0500

When running an ERI calculation, BEopt needs to perform three EnergyPlus simulations -- the normal BEopt building, the ERI Rated Home, and the ERI Reference Home -- instead of one. (In fact, as of ANSI 301-2014 Addendum E, an ERI calculation now requires four simulations instead of two.) Yes, there can be times when the Reference Home may not change and BEopt could be smarter about it, but many situations will require additional ERI Reference Home simulations, so the runtime improvement would probably not be so great.

Regardless, note that A) the ERI calculation in BEopt should probably not be used anymore -- it's still using ANSI 301-2014, not 301-2019, and before lots of addenda and software consistency clarifications have been made, and B) the ERI calculation will be removed in BEopt v3.

edit flag offensive delete link more


I am aware of the changes to ANSI 301.* Nevertheless, the ERI results are very useful.^ Removal is really going to handicap the utility of the tool in many uses cases. Compliance with the ERI path is much easier to assess than checking that one of the R408 conditions in IECC 2021 has been met. Not to mention Appendix RC. BEopt is not a compliance assessment tool, but one should have some confidence that the results of analysis are reasonably likely to comply.

* IAF and vent are the only ones that have an impact AFAIK.
^ Even if a buffer to account for the changes is necessary.
jpierce's avatar jpierce  ( 2022-11-07 14:22:30 -0500 )edit

That is the benefit of memoization, the performance savings are virtually free / they require very little smarts. You simply serialize the independent parameters for an expensive-but-repeated-function (reference home, HPWH, what have you) to generate a key. You use that key to check a data structure to see if you have a result for those conditions. If you do, you return it. If not, you execute as normal, and when you get your results you save a copy in your data structure.

jpierce's avatar jpierce  ( 2022-11-07 15:22:02 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops


Question Tools



Asked: 2022-11-07 09:22:11 -0500

Seen: 88 times

Last updated: Nov 07 '22