Boundary conditions behind the Honeybee Energyplus simulation

Hi @chris and all,

So I am currently trying to find out how Honeybee calculate indoor temperature in the sql output (or even indoor surface temperature). I mean I know how to do the simulation, but I wanted to find out what’s happening behind the honeybee energy plus simulation since the simulation spits out internal surface and indoor temperature without us having to put the boundary conditions (especially internal ambient temperature). Since all internal conditions are unknown in the default simulation.

In honeybee, all we need to do is to connect the weather file, honeybee room, time period, and the simulation result shows all we need, external surface, internal surface, indoor air temperature, indoor operative temperature, etc.
In the finite element analysis, we are required to put boundary conditions for the outdoor and indoor ambient temperature (at least) so that the simulation can run.

Generally, in order to calculate the heat balance, outside boundary condition can be determined by the solar irradiation, and the internal boundary condition should be at least close to the ambient temperature. In HVAC system, usually people assume indoor ambient temperature as temperature that falls on the thermal comfort range.

But in this case, we do not know what ambient temperature that the energyplus is using for calculating the simulation result.

I hope I explained my questions clearly.

Does someone has any input or direct me to a resource that explains how honeybee calculates the outside and inside boundary condition which spits out the result?

Thank you!


I suggest checking the E+ documentation here, especially the Engineering Reference which probably will answer most of your questions.
Basically E+ is a dynamic hourly simulation engine that calculates all what your are asking (and much more) per time step. Before starting that it does a warm up convergence so the initial conditions are set.



Hi @AbrahamYezioro ,

Thank you for pointing this out
However, I am still having difficulties in finding how E+ puts the indoor temperature

So basically my focus is on this “conduction into wall (qko)”

And I wanted to find out how the indoor surface temperature is used in their CTF method (since we are talking about transient heat transfer)

As you can see the equation require “interior surface temperature”

In the mechanical engineering textbook that I read, for example, to measure T1 (outdoor surface temperature), we are required to know at least To (this can be easily found using weather data) and T2 (indoor surface temperature).
But now there are too many unknown factors. This means I am still trying to find out how honeybee/ E+ is able to spit out T1, T2, and Ti while we only give the weather file as the input (and resistance from material setup)

I hope this clarifies my questions or whether someone could point me in the right direction :slight_smile:

Thank you


Hi @ricardo, at any point in the simulation E+ knows all of these factors (whether for the current or previous time step). As @AbrahamYezioro mentioned, the warm up convergence period is used to establish the initial conditions.

There’s some more detail on the warm up specifics here, you might need to reach out on the Unmet Hours forum if that doesn’t explain everything you need.


Hi @charlie.brooker , thank you for pointing out the warmup convergence document.

According to what I read from that page, the warmup process in E+ basically compares the four parameters: maximum zone air temperature, minimum zone air temperature, maximum heating load, and maximum cooling load for each individual thermal zone. So if the difference between days is less than the tolerance value, convergence is reached.

I understood that part, but still do not quite understand how the boundary conditions were chosen by E+
Since the warmup convergence itself has to go through the definition of boundary conditions such as indoor surface temperature. But in Honeybee, we only put the weather file as the input.

Or can I just assume that:

In terms of specifying the indoor surface temperature directly as a boundary condition, EnergyPlus doesn’t typically require us to input this value explicitly. Instead, the indoor surface temperatures are calculated as part of the simulation process based on the interactions between weather file, material properties, HVAC settings, and internal load? Since Honeybee usually assign a default value if we do not put anything.

I will try asking in the Unmet Hours.

I agree @ricardo, it’s not clear exactly what’s used as the starting conditions for the convergence.

So far I got one answer from Unmet Hours by user rraustad:

There is a function in E+, ResetNodeData, that is called at the beginning of each new environment. A new environment is a sizing period day, a weather file period, etc. This function resets all node data to a prescribed condition. Tyically 0 for temperature and humidity ratio. The warm up period then converges on a solution, as you describe, for the first day of the simulation. The initial conditions and history of each node in the simulation is then known. The simulation then proceeds normally for the remaining days in that environment.

But seems like I misunderstood something since I read that the initial indoor temperature should not be 0 (because it is unrealistic).

I also went to an engineering lecturer some other day and suggested that the initial boundary condition should refer to a thermal comfort temperature (20-26 degree C)
I also read a couple of research papers about finite element simulation, and they usually just assume the indoor temperature to be around that thermal comfort range.

Going back to the honeybee in grasshopper, I do not think I put any indoor temperature as an input, but honeybee still be able to produce all unknown parameters like indoor surface and indoor air temperature.

I will continue searching
Hopefully, @chris can provide some insight :slight_smile: