### Issue

Can a Reservoir element have negative values for Bounds, for Initial Value, and for Current Value?

### Resolution

An Initial Value, an Upper Bound, and a Lower Bound can be specified for a Reservoir element in the Properties dialog. * Figure 1* shows a Property dialog for a Reservoir element where the Initial Value, the Lower Bound, and the Upper Bound are set to negative values. The Current Value for the Reservoir is the value at the present time during the simulation. At elapsed time 0.0 days, the Current Value will equal the Initial Value. As a result,

*shows that the Current Value can be negative for a Reservoir element as well because the Initial Value is negative.*

**Figure 1****Figure 1: Reservoir element Properties dialog with negative bounds and negative Initial Value**

A Reservoir element can accept any units, and Reservoir elements are not limited to volumetric units (i.e. length cubed units). Because a Reservoir element can accept any units, the Initial Value, Current Value, Lower Bound, and Upper Bound will accept negative values. Although a Reservoir element can accept any units, negative volume is physically meaningless (except perhaps in the unusual case of tracking the volume difference relative to a baseline value), and a modeler would not want to tell GoldSim to use the Reservoir element configuration presented in * Figure 1* because a volume of -15.0 m

^{3}has no meaning as there is no such thing as negative volume. It is possible, however, that a modeler may wish to use the Reservoir element to accumulate velocity (e.g. units of m/s) which is a vector quantity and for which a negative value has a specific physical meaning. In this case, negative values for the Initial Value, Lower Bound, and Upper Bound may be desired.

* Figure 1* shows a Reservoir element configured to have negative values for the Upper and Lower Bound. In this case the Lower Bound < Upper Bound so that one might think that the accumulation capacity of the reservoir would be the Upper Bound less the Lower Bound (-10 - -100 = 90 in this case). The Upper and Lower Bounds are not, however, used together to calculate the capacity of the Reservoir. Rather, the Upper Bound provides a value that limits the upper range of the Current Value while the Lower Bound provides a value that limits the lower range of the Current Value. If the Current Value is below Lower Bound, no withdrawals are permitted from the Reservoir until the Current Value exceeds the Lower Bound. If the Current Value is above the Upper Bound (due to a moving boundary), then the Current Value is reduced over the time step to meet the Upper Bound limit. However, the Current Value is never changed with respect to accumulation capacity calculated as the difference between the Upper and Lower Bounds.

**Figure 2: Reservoir element Properties for changing Bound example simulation**

**Figure 3: Example simulation time settings including a "Basic Step" duration of 1 day**

An example simulation can provide some additional insight in to how Bounds are used in relation to the Current Value and of how negative Bound values are used in a simulation. For this simulation, a Reservoir element is configured as shown in* Figure 2* with a changing Lower Bound as shown in

*and with a changing Upper Bound as shown in*

**Figure 4***. The simulation time settings are provided in*

**Figure 5***. The Upper Bound and the Lower Bound change with time (see*

**Figure 3***and*

**Figure 4***); however, the difference between the Upper Bound and the Lower Bound is a constant 20.0 m*

**Figure 5**^{3}.

**Figure 4: "Changing_Lower_Bound" Time Series definition**

**Figure 5: "Changing_Upper_Bound" Time Series definition**

* Figure 6* presents simulation results for this example. In this figure, it is evident that the Upper and Lower Bounds change in sync to maintain a consistent difference between the boundaries. This difference is listed on

*as the capacity; however, GoldSim does not employ the values of the Bounds to calculate a capacity. Rather, GoldSim uses the Bounds to generate overflow (when Current Value > Upper Bound) and to limit withdrawals (when Current Value <= Lower Bound). In*

**Figure 6***, the Reservoir volume is always above the Lower Bound so that the Lower Bound has no limiting effect. However, the volume is above the Upper Bound starting on elapsed day 3.0 so that the Reservoir begins to overflow at a positive rate in order to meet, or honor, the specified Upper Bound. The impact of the Upper Bound triggering overflow is slightly more evident if this simulation is run with a Basic Step duration of 0.1 day.*

**Figure 6***presents the 0.1 day Basic Step simulation results. In this figure, the triggering of overflow to push the volume towards the changing Upper Bound value is readily apparent.*

**Figure 7****Figure 6: Simulation results with constant accumulation capacity and changing Bounds which go negative and "Basic Step" duration of 1 day**

**Figure 7: Simulation results with constant accumulation capacity and changing Bounds which go negative and "Basic Step" duration of 0.1 day**

Another illustrative example is provided by switching the bounding time series and re-running the simulation.* Figure 8*provides the Reservoir element configuration with the “Changing_Upper_Bound” Time Series specified for the Lower Bound and the “Changing_Lower_Bound” Time Series specified for the Upper Bound. The values for the “Changing_Lower_Bound” Time Series and the “Changing_Upper_Bound” Time Series are provided in

*and*

**Figure 4***, respectively. For this simulation, the Upper and Lower Bounds still move in sync; however, the Lower Bound is always 20 m*

**Figure 5**^{3}larger than the Upper Bound.

**Figure 8: Reservoir Properties dialog showing switched Time Series for Upper and Lower Bounds**

* Figure 9* displays the simulation results when the Upper and Lower Bounds are switched so that the Lower Bound value is always greater than the Upper Bound value. In this figure, overflow starts immediately because the Current Value is always greater than the Upper Bound. However, the overflow rate (i.e. part of the withdrawal rate) is limited because the Current Value cannot go below the Lower Bound even though the Lower Bound is larger than the Upper Bound. As a result, the Current Value (Reservoir volume in this case) approaches the Lower Bound but remains well above the Upper Bound. The control of the Current Value by the Lower Bound value in this scenario is even more obvious in simulation results using a Basic Step duration of 0.1 day (see

*).*

**Figure 10****Figure 9: Simulation results with Lower Bound set larger than Upper Bound and "Basic Step" duration of 1.0 day**

**Figure 10: Simulation results with Lower Bound set larger than Upper Bound and "Basic Step" duration of 0.1 day**

As a final note, negative volume values are used in the examples and figures presented in this discussion to facilitate a discussion of the function of Bounds in the Reservoir element and to demonstrate that GoldSim will work with negative Upper Bound, Lower Bound, and Initial Values because negative values for these Reservoir properties are perfectly acceptable in many cases.

A negative volume, however, does not have physical meaning and should not be specified by a modeler in an actual model. GoldSim is designed so that the Reservoir element can accumulate values with whatever units are specified, and GoldSim cannot differentiate or determine whether negative m3 are physically acceptable. GoldSim will, however, determine whether the units in the calculations are consistent. As a result, it is the responsibility of the modeler to determine the physical applicability of the chosen units.

## Comments