Infiltration Values

Dear All,

I am posting this thread to avoid future confusion regarding Infiltration Values.

The air infiltration method is calculated by the Design Flow Rate (see “Ref Object: ZoneInfiltration:DesignFlowRate” ) in Energy Plus.

To obtain the Design Floor Rate , the Rate per Zone Floor Area Field is chosen. I couldn’t find documentation on the precise equation for this.

Given the Design Flow rate equation, it is calculated at ambient pressure. Considering wind speeds and other factors.

The “ACH2m3/s-m2 Calculator” component enables the conversion from Air Change Rate (this is Air flow / Volume; NOT Air Flow * (Volume / Surface Area)) to Inflitration Rate per Area (floor area) at ambient pressure.

Consequently when using the previous calculator component consider the use of Air Change Rate at ambient pressure.

Certain standards, such as passivhaus, use ACH@50 Pa. This method is commonly denomintaed as n50

An aproximation to converting ACH@50Pa to ACH@ambient is by a factor of 20.

So a passivhaus standard (0.6ACH@50) = ACH * 20.

Therefore, if we wish to simulate the passivhaus standard the 0.6 is to be divided by 20, which results in an Rate Per Area of 0.000167. This is less than the typical value indicated in the description of the set “EPZoneLoads” component.

In addition to the Air Permeability method, there is also the air infiltration method which relies on Airflow / Surface Area of Building Envelope. The method employed in the UK also uses a pressure of 50 Pa, and is known as q50.

The equivalency between q50 and n50 is as follows:

q50 = n50 * (Volume / Surface of Building Envelope)

Hope this helps. I had to review energy plus documentation and HB code to make sense of this.

best wishes,


Edit: Setting the ACH to 0.6/20 results in null. The infiltration rate per area is not converted properly.

I’m not sure if connecting this null value to the setEPZoneLoads componnent will be interpreted as the default value or as a 0. I’m also not sure if manually converting the 0.03 ACH and using the resulting value will have any significant effect on the EP simulations.

Hi Mauricio,

Thanks for posting this. Can you post an example file that shows what you mean in the edit.

Nevertheless you can always use Get Zone EnergyPlus Loads to check infiltration values assigned to any zone.


I’ll post the example file on Monday, I haven’t got any of it on my personal PC.

I did alter the tolerance in the converter component from 0.2 to 0.0001…or something like that (and I was able to get the desired conversion, however small). If memory serves me right, when I set the EPZoneLoads The infiltration per Area (the miniscule amount) gets interpreted as 0. I suppose it so small it exceeds the tolerance.

I know it may sound ridiculous (an infiltration rate of 0.03 per m2) but certain design criteria and standards are getting very strict with air tightness.

I’ll have a look on Monday and will post my findings along with an example file.



Sorry I took so long to answer.

So, if I use the default tolerance of the “ACH2m3/s-m2 Calculator” (0.2), when setting infiltration to a very low value (that of passivhaus standards), conversion results as null. Which the “Set Loads” component interprets…well as a null, and therefore uses the default value of 0.0002. This ultimately results in a very different infiltration energy value as simulated by EP, see image named tolerance-2.jpg.

By comparison, if I change the tolerance of the calculator component (from 0.2 to 0.0001) I get an actual conversion which ultimately results in a lower infiltration energy value simulated by EP, see image named: tolerance-0001.jpg

This might seem as nitpicking but similar critical values are gaining popularity and I think should be adressed.

Please find attached the example gh file, epw files en custom material library not included…just substitute for your local files.

best wishes,

Mauricio (569 KB)

Hi Mauricio,

I’ll add an option to the component to calculate/convert if desired according to ach@50PA.

I’ll try to do this weekend.


Hi Mauricio. Thanks. I merged your pull request.

Also a minor note after checking your file. In case you’re setting the input values for setpoints to unrealistic numbers to avoid the systems to be on you can just set the zone to unconditioned. Not sure if that is the reason but just in case.

Yeah, hehe…I was playing around with extreme numbers to simulate a Dynamic U-value in Walls. Idea is, instead of venting the room maybe changing the walls to have a higher heat transmission and therefore lose heat. Since EP doesn’t allow one hour sims I am setting the original U-value to have a high heat exchange and conditioning the building to obtain internal air temperature matching the results of a low U-value envelope…then when I test cooling I just assign the cooling and heating set point to 500,-500.

I was actually wondering, and you probably know if this is possible, if I can suspend EP threads(mid simulation), change the U-values and then resume the threads.???

Standard EP simulation don’t allow to do this. You can EMS code and do that or … try to use phase change materials. Don’t have much experience doing that but it is doable.

CHeck in for answers on that.


I’ve sent a pull request to github.

In the meantime check the attached for your file with both previous and new component version.

Thanks for your suggestions.

-A. (572 KB)


Great suggestion on the EMS, I’ll give it a go first thing Monday. Thanks!

Phase change materials require a minimum energy load and have variable heat capacitance properties that I currently don’t want to consider, but could be useful in a further research sims.

best wishes,


Post your progress.