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

Airflow network CalcAirflowNetworkMoisBalance error [closed]

asked 2016-03-11 08:34:58 -0600

spqr gravatar image

updated 2016-10-18 14:44:38 -0600

We are running a detailed EnergyPlus simulation of a house. The purpose is to have a detailed duct and airflow model for assessing the performance of HVAC air delivery components. We are currently in the process of defining and hooking up all of the zone nodes and ductwork, however I keep getting the following fatal error after the simulation has run for ~1 month: "A diagonal entity is zero in AirflowNetwork matrix ZONE3OUTLETNODE." ZONE3OUTLETNODE is currently defined as a leakage path from one of the bedrooms to the adjacent hallway, acting as the return air path.

Digging into the source, it appears the error is based off an integer comparison which should not be changing during simulation. I'm not that familiar with C++ or the E+ code so I may be mis-understanding what is occurring. I'm also not sure what the MA() command does.

// Check singularity
for ( i = 1; i <= AirflowNetworkNumOfNodes; ++i ) {
            if ( MA( ( i - 1 ) * AirflowNetworkNumOfNodes + i ) < 1.0e-6 ) {
                ShowFatalError( "CalcAirflowNetworkMoisBalance: A diagonal entity is zero ...

The relative humidity in both zones is something normal (10%-50%).

So far we have connected 6 of the 30 thermal zones into the AFN. I am hoping to troubleshoot errors and gain a better understanding of the simulation in this more simplified state before setting up the entire model in the AFN.

Has anyone encountered this error before? Are there known causes and fixes?

Other background: Initial model is created using Rhino and Honeybee. 1 minute simulation timestep Thermostat is being modeled by using an EMS to over-ride the fan airflow. (since E+ can't model an actual thermostat by default) Heating is from an electric coil, and cooling is from a simple DX coil.

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by spqr
close date 2016-04-15 07:13:49.583613


@spqr, is your favorite movie Gladiator? :)

__AmirRoth__ gravatar image __AmirRoth__  ( 2016-03-11 10:06:17 -0600 )edit

I have updated the model to include a complete airflow network, however continue to get the error message. Sometimes a simulation will run for an entire year with no problem, sometimes it will run for a day or a month before kicking back with the error. I am modifying various HVAC system parameters such as fan flow rate, supply temp set point, total system capacity, duct length, duct U value, etc. The error is coming from a different thermal zone each time, but always seems to come from the zone outlet.

What values are feeding into the MA array? Is the model calculating 0 RH for a node?

spqr gravatar image spqr  ( 2016-03-28 15:42:22 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2016-04-15 07:13:18 -0600

spqr gravatar image

It turns out the issue was associated with our simple openings and the assumed value for "density difference for two way flow". Somehow a value of "1" had gotten into the file for each of our doorways, when a better value is 0.0001. I have tested the file now through a number of iterations and it seems to be working fine.

We are having success in using a 'leak' as the return path connecting the zone to an adjacent zone.

edit flag offensive delete link more

answered 2016-03-14 10:22:04 -0600

Lixing Gu gravatar image

If an nxn matrix has 0 value at any diagonal entity, this square matrix is not invertible and is called singular. The section of code is used to check singularity to prevent the solver from crashing. The main reason to cause singularity is that this node may not network correctly, as mentioned by Jason.

Hope this helps.

edit flag offensive delete link more


Thank you both for the input. The problem does seem to be sensitive to the total fan / system airflow rate. If I set this low to perfectly match the sum of terminal flows, I get the error almost immediately. If I set the total fan flow to be higher (say double the sum of terminals), I can get the simulation to run almost a full year before it gives me the error.

I am following your advice and fully defining the airflow network and ductwork at the moment. I will check back in if that fixes the issue.

spqr gravatar image spqr  ( 2016-03-15 06:50:49 -0600 )edit

@Lixing Gu I am still getting the error under various circumstances. I am creating and reviewing the *.dbg file and none of the HumRat values are at or near zero for the timestamp before the error.

  • What values are stored in the MA array that would be zero? What would cause the node to network correctly for a while (say a month), and then suddenly stop working?
spqr gravatar image spqr  ( 2016-04-01 10:15:52 -0600 )edit

The value stored in a diagonal entity in MA array is a sum of mass flow rates toward this node.

Lixing Gu gravatar image Lixing Gu  ( 2016-04-08 07:49:33 -0600 )edit

answered 2016-03-11 11:12:26 -0600

That's not an integer comparison, MA is a one dimensional array of floating point numbers:

This could be a bug, but I suspect that there is something about your network that is causing the problem. Incrementally connecting the network doesn't sound like a good idea to me. @Lixing Gu might be able to provide you with more information, but I'd try making sure that your network isn't unbalanced in some way.

edit flag offensive delete link more

Training Workshops

Question Tools

1 follower


Asked: 2016-03-11 08:34:58 -0600

Seen: 296 times

Last updated: Apr 15 '16