How a Pool Computes the Total Outflow

In the absence of a Lower Bound, the Total_Outflow output is equal to the Total_Request output (which simply sums the Outflow Requests). However, if a Lower Bound is specified, the Total_Outflow output represents the actual rate of outflow from the Pool, which may be less than the specified sum of the Outflow Requests (which can be thought of as the demand or requested rate of withdrawal).

   Note: The Total_Outflow is completely independent of and does not include the Overflow.  The Total_Outflow only only considers outflows resulting from the Outflow Requests on the Outflow tab.

GoldSim compares the sum of the Outflow Requests to the amount of material available, and only outflows what can actually be withdrawn from the Pool over the timestep. Hence, if the Quantity is above the Lower Bound throughout the timestep, the Total_Outflow output is exactly equal to the sum of the specified Outflow Requests. If the Quantity is at the Lower Bound throughout the timestep, the Total_Outflow output is equal to the sum of the specified Inflows.

If the Pool reaches (or leaves) the Lower Bound during the timestep, GoldSim uses logic similar to that for computing overflow rates in order to correctly compute the actual Total_Outflow.  In order to compute the Total_Outflow accurately, by default GoldSim inserts an “unscheduled update” when the Pool reaches a Lower Bound. Unscheduled updates are timesteps that are automatically inserted by GoldSim during the simulation in order to more accurately simulate the system.

To illustrate how GoldSim treats outflow rates, consider the following simple example. Assume we are modeling a pond with a Lower Bound of zero. Further assume that at time = 10 day, the pond contains 200 m3 of water. GoldSim computes the constant Inflows and the Outflow Requests for times greater than 10 days to be 100 m3/day and 300 m3/day, respectively.  Therefore, the pond will run out of water at 11 days. Let’s further assume that our model has a 2 day timestep (so that this occurs in the middle of the scheduled timesteps).

The Total_Outflow is computed as follows.  At 10 days, GoldSim will report a Total_Outflow of 300 m3/day.  A new timestep (an “unscheduled update”) is then inserted at 11 days when the pond becomes empty.  The Total_Outflow at this time will actually be internally calculated as 100 m3/day (since the pond is empty, the Total_Outflow can be no greater than the sum of the Inflows. However, because by default GoldSim only reports values at scheduled timesteps (e.g., 10 days, 12 days), the Total_Outflow will not be displayed as 100 m3/day until 12 days.

Hence, it is important to understand that the Total_Outflow represents the instantaneous outflow rate at the reported time.  You cannot assume that this rate is constant over the next scheduled timestep. That is, it would be incorrect to assume that the Total_Outflow was 300 m3/day between 10 and 12 days.  In fact, at 10 days, the Total_Outflow was indeed 300 m3/day, but it changed to 100 m3/day at 11 days (between the scheduled updates).  Because 11 days is an unscheduled timestep, you would not see this in a time history plot. However, if the Total_Outflow was integrated (using an Integrator or a Reservoir that represented the total amount of water that had outflowed), the following results would be obtained:

 

Time (days)

Reported Total Outflow (m3/day)

Total Water Outflowed (m3)

10

300

0

12

100

400

14

100

600

Note that the amount of water is properly conserved. At 12 days, the pond has been empty for 1 day (and hence the Total_Outflow during that period has been equal to the inflow rate of 100 m3/day), so that a total volume of 300 m3/day * 1 day + 100 m3/day * 1 day = 400 m3 has outflowed.  At 14 days, the pond as been empty for 3 days, so that a total volume of 300 m3/day * 1 day + 100 m3/day * 3 day = 600 m3 has outflowed. 

   Note: In some cases, it may be of interest to see the values (such as the Total_Outflow) that were computed at unscheduled updates. To facilitate this, GoldSim provides an option to do so (under a specified set of conditions) in the Advanced Time settings.

   Note: Most spreadsheet models implicitly compute average values (e.g., flows) over a step (or the change from one step to the next).  You can compute average values such as these (e.g., in order to compare GoldSim with a spreadsheet model) by using Goldsim’s Reporting Periods feature.

   Note: As noted above, by default, GoldSim inserts an unscheduled update when the Pool reaches a Lower Bound.  However, if desired, you can disable unscheduled updates (although it is generally not recommended).  If you do so, the reported Total_Outflow is the average rate over the next scheduled timestep and can be assumed to be constant. . (This option is accessed via the Advanced… button in the Time tab of the Simulation Setting dialog).

   Note: You can record when Pools hit or depart from their Upper and Lower Bounds in the model’s Run Log.  This logging can be activated via the General tab of the Options dialog (accessed via Model|Options from the main menu).

The calculation of a Total_Outflow can be further complicated because the Lower Bound can be specified to change with time (i.e., you could specify this input as being time-variable).

   Note: If the Lower Bound is constant, the Quantity in the Pool will never fall below the Lower Bound.  However, if the Lower Bound is changing with time, under some circumstances, it is possible for the Quantity of the Pool to fall below the Lower Bound.  The primary purpose of the Lower Bound is to accurately compute the Total_Outflow. If the Lower Bound exceeds the amount in the Pool (because the Lower Bound has changed during a timestep), the Pool will not permit any outflows until it returns to the Lower Bound (via additions).

As is the case with Upper Bounds, GoldSim carries out such calculations by assuming that bounds remain constant over a timestep. A simple example illustrating this is provided in the topic discussing how GoldSim computes the Overflow with a changing Upper Bound

   Note: Although GoldSim conserves mass when computing the actual outflow, it does not imply that the result is perfectly accurate. In fact, the accuracy of the result is a function of the timestep, since GoldSim is approximating continuously varying functions (i.e., rates and bounds) using stair-step functions. This approximation is discussed further in Appendix F of the GoldSim User’s Guide.

Related Topics…

Learn more about: