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

When there's a gap in the Run Period, does EnergyPlus reinitialize the simulation?

asked 2015-03-02 20:59:32 -0500

Joe Huang gravatar image

updated 2015-07-10 21:02:32 -0500

One of the ways to shorten run times is to simulate not the entire year, but a series of run periods, e.g., a 7-day sequence out of each month. When a former colleague at LBNL tried to do this for DOE-2 many years ago, he was disappointed that the run time was shortened by only a half, because every time there was a time gap, DOE-2 would repeat the first day after the gap 10 times for initialization. Does anyone know how does EnergyPlus handle such situations, and whether the reinitialization could it be turned off?

edit retag flag offensive close merge delete


(this comment was moved here on the recommendation of Julien) Thanks to all those who've answered my question. I am aware of QuickSim and its recent adoption within CBECC-Com. My question actually came up after reading the PNNL paper, and trying to think of ways to improve the technique both in terms of execution speed and accuracy.

Joe Huang gravatar imageJoe Huang ( 2015-03-05 22:56:49 -0500 )edit

3 Answers

Sort by » oldest newest most voted

answered 2015-03-03 02:47:01 -0500

updated 2015-03-03 03:01:49 -0500

If you supply several discrete run periods in the RunPeriod object, such as January 1 to 7 and July 1 to 7 for example, EnergyPlus will launch a warmup period before the start of each period, in order to initialize the loads and temperature values (see why in the "Engineering Reference manual" below)

Input/Output Reference Manual

What this warmup period is is explained in the Input/Output reference guide under the Building object:

Warmup Convergence

The following two fields [Loads convergence torelance value and Temperature convergence value] along with the minimum and maximum number of warmup days (also in this object) define the user specified criteria for when EnergyPlus will “converge” at each environment (each sizing period or run period set as Yes in the SimulationControl object).

EnergyPlus “runs” the first day of the environment (starting with a set of hard-coded initial conditions) until the loads/temperature convergence tolerance values are satisfied (next two fields) or until it reaches “maximum number of warmup days”. Note that setting the convergence tolerance values too loose will cause the program to be satisifed too early and you may not get the results you expect from the actual simulation

You can specify the maximum and minimum number of warmup days in the Building object, as well as the loads and temperature convergence tolerance values. The default values are:

  • Minimum Number of Warmup Days = 6
  • Maximum Number of Warmup Days= 25

I suggest you read the Input/Output reference guide that comes with EnergyPlus, or you can access it online (Building and Runperiod objects). It has more information on the warmup convergence and explains why they chose the defaults of 6 and 25 for example.

Engineering Reference Manual

If you want to read further, the Engineering Reference manual is where you should look. It notably has a section called "Warmup Convergence" that should be of interest too. One interesting extract:

Since everything in EnergyPlus is based on the foundation of the loads simulation, it stands to reason that any inaccuracies in the loads calculation will result in inaccuracies of similar or larger magnitude in the HVAC calculations. In the presumably limited cases where convergence was not truly achieved before the actual simulation began, it is unknown how much error would be introduced into the results. While simulations that last longer (annual vs. design day) will hopefully have any initial condition problems balanced by the shear number of days in the simulation, shorter simulations — particularly those used for sizing — could result in relatively large errors.

Effect on runtime

Whether it gets significantly faster to only run a sequence of 7 days each month depends on the complexity of your model and your chosen timestep. With a fairly complex model at 6 timesteps per hour, the time it takes to warmup will very likely be less than the time it takes to simulate the remaining 3000 timesteps in each month.

edit flag offensive delete link more


Thanks for the long explanation of warm-up procedures in EnergyPlus, but it actually misses the point of what I'm trying to do. The only reason to do warm-up is because of discontinuities in the weather data. However, if the discontinuity is taken care of in the weather file, then there should be no need for a warm-up just because the dates have jumped. Removing discontinuities in the weather file is done ALL THE TIME when creating a "typical year" weather file to avoid jumps from one month to the next that are from different years! How hard would it be to allow a minimum warm-up period of 0?

Joe Huang gravatar imageJoe Huang ( 2016-12-12 15:02:44 -0500 )edit

A bit of a delay since it was posted :) I'm not 100% sure but I believe this would necessarily entail changing the source code to allow caching of the conditions from one run-period to the next (which, as a side note, would also proscribe parallelization of the execution of each run period since they'd have to be chronological). Maybe this would be a good idea to post it as a Feature request on user voice?

Julien Marrec gravatar imageJulien Marrec ( 2016-12-21 12:19:31 -0500 )edit

Not sure why that would create a problem, since from the program's point of view what's in memory are the values from the previous time step. Hopefully someone who knows the guts of the program can explain whether and why there would be a problem.

Joe Huang gravatar imageJoe Huang ( 2016-12-29 18:48:39 -0500 )edit

The way E+ is structured right now, you need to have several run periods to simulate one week each month with a single 365days file ( If you have a 12months*7days=84days continuous, massaged, weather file, you can use one run period and do the multiplication in post-processing. That'll just give you one run period, therefore one warm up period.

(By the way, the comment box is not really a great place to discuss this.)

Julien Marrec gravatar imageJulien Marrec ( 2017-01-04 02:31:12 -0500 )edit

Despite your last warning, I'm going to continue using the comment box, unless you think we should carry on the conversation offline via e-mail :-) If what you say is correct, then that would mean EnergyPlus would have no problem with the abbreviated weather file! I guess the ball is now in my court to actually do a timing run and see! When I do that, and especially if it works, I will broadcast it loudly on Unmet Hours and the various bulletin boards.

Joe Huang gravatar imageJoe Huang ( 2017-01-18 21:54:06 -0500 )edit

answered 2015-03-03 05:40:40 -0500

updated 2015-03-03 07:51:59 -0500

Julien's response answers the bulk of your question but regarding the approach of using several short run periods with EnergyPlus to shorten run time has been considered for code compliance tools such as COM-Check by PNNL and included with CBECC-Com by the California Energy Commission because it provides a remarkably good indicator of energy usage and uses only about a quarter of the time.

PNNL has documented this approach in the report:

PNNL-19961 QuickSim Analysis Approach

edit flag offensive delete link more

answered 2015-03-03 10:17:06 -0500

Not directly related, but if what you are interested in is reducing EnergyPlus runtime and you trust the methodology of splitting up an annual simulation temporally and then summing (and potentially scaling) the results, you could give Autodesk's EnergyPlus Cloud service a try. That's what they do.

edit flag offensive delete link more

Your Answer

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

Add Answer


Question Tools

1 follower


Asked: 2015-03-02 20:59:32 -0500

Seen: 568 times

Last updated: Mar 03 '15