Reservoir elements are elements that accumulate flows. You use them to accumulate and track material, such as the quantity of water in a lake, the amount of soil in a stockpile, the number of people in a city, and the number of widgets in a warehouse.
Their default symbol is a container of water since this is an excellent analogy for the behavior of the element. Like a container of water, a Reservoir element has a current value (e.g., the volume of water in the container), inflows, withdrawals and overflows.A Reservoir is fundamentally similar to an Integrator (since both are Stocks), but is different in three important ways:
• Reservoirs are designed to integrate (accumulate) material; Integrators are designed to integrate information.
• Reservoirs explicitly differentiate between positive rates and discrete changes (additions) and negative rates and discrete changes (withdrawals).
• Reservoirs allow you to specify upper and lower bounds. Due to these bounds, a Reservoir has more than one output.
Note: If you are modeling a system that has multiple distinct withdrawals (particularly if the Reservoir can reach its Lower Bound), you likely will want to use a more powerful version of the Reservoir, referred to as a Pool.
Like an Integrator, a Reservoir requires an Initial Value and a Rate of Change. The Rate of Change, however, is specified in terms of two separate inputs, one representing the Rate of Addition and one representing the Rate of Withdrawal.
In the absence of Upper and Lower Bounds, the primary output of the Reservoir (its Value) is computed as follows:
The Rates of Addition and Withdrawal can, of course, be functions of time.
The Properties dialog for a Reservoir element looks like this:
By default, when you create a new Reservoir element, a Lower Bound of 0 is assumed. You can subsequently remove the Lower Bound, or modify it.
An example model which illustrates the use of Reservoir elements (Reservoir.gsm) can be found in the General Examples/Stocks folder in your GoldSim directory (accessed by selecting File | Open Example... from the main menu).
Learn more about:
How a Reservoir Element Computes its Primary Output
Specifying the Dimensions, Initial Value and Rates of Change for a Reservoir
Using the Withdrawal Rate Output of a Reservoir
Defining Upper and Lower Bounds for a Reservoir
How a Reservoir Computes the Overflow Rate
How a Reservoir Computes the Withdrawal Rate
Avoiding Oscillatory Behavior When Using Reservoirs
Using the Is_Full Output of a Reservoir
Specifying Discrete Additions and Withdrawals to a Reservoir