Courses: Introduction to GoldSim:

Unit 7 - Modeling Material Flows

Lesson 1 - Unit 7 Overview

"Everything is in motion. Everything flows. Everything is vibrating."

- William Hazlitt

Simulation models are developed in order to track the movement or changes in material or “stuff” (i.e., tangible things), such as water, money, people, and widgets, or the evolution of the state of intangible things (e.g., the price of a stock or a commodity, the public acceptance or perception of a particular policy decision). As a result, GoldSim includes a number of specialized elements to facilitate this. 

In this Unit, we will focus on tracking the movement or changes in tangible (material) things.  In fact, we have already started to do this in the last Unit, when we tracked the accumulation of rain water running off the ground surface.

The simplest element for tracking tangible things is the Reservoir element, which we were introduced to in the last Unit.  In this Unit, we will explore some more of the capabilities of this element.  In addition, we will learn about several other elements (Splitters and Allocators) that are commonly used in conjunction with Reservoirs when modeling material flows. Finally, we will discuss an important shortcoming of Reservoirs (dealing with multiple withdrawals), and how this can be overcome by using a more powerful version of the Reservoir: the Pool element.

When tangible things move through or change within a system, the dynamics can actually be conceptualized in two different ways: continuously or discretely. Things that move continuously can be thought of as flowing.  An example of this is the movement of water.  Other things move or happen discretely (e.g., such that they must be tracked individually).  Examples of this include financial transactions or the movement of items through a factory.

Although it makes sense that something like water should be treated continuously (i.e., as a flow), you should not assume that something that is discrete in nature (e.g., items in a factory) must necessarily be treated discretely. If there are millions of items moving through a system, for example, it might be appropriate to treat them as “flowing” through the system (i.e., such that individual items are not specifically tracked). Similarly, just because something is considered to flow (like water), it does not mean that all of the dynamics for that system can be treated as being continuous.  For example, if water is flowing from one pond to another (via a pump), and the pump suddenly breaks down, that is a “discrete event”, and must be treated in an appropriate manner.

Although GoldSim is most commonly used to model dynamics that are primarily continuous, it provides powerful capabilities for representing discrete dynamics as well.  In fact, most real-world systems are best described using a combination of continuous and discrete dynamics. In the next several Units, however, we will focus on representing continuous dynamics.  A later Unit will focus entirely on GoldSim’s capabilities for representing discrete dynamics.

In this Unit we will discuss the following:

  • Understanding elements with multiple outputs;
  • Modeling an overflowing Reservoir;
  • Timestepping details: understanding unscheduled timesteps;
  • Understanding the withdrawal rate from a Reservoir;
  • Redirecting flows using the Splitter element;
  • Allocating flows using the Allocator element;
  • Summing flows (and other variables) using the Sum element;
  • Modeling multiple withdrawals from a stock of material;
  • The Pool element (a more powerful version of a Reservoir); and
  • Managing multiple (and potentially competing) outflows from a Pool.

This Unit also includes three Exercises.

This Unit has a total of 14 Lessons (including this overview and a summary at the end). Because this Unit deals with a number of important topics in some detail, and includes three Exercises, it will take you substantially longer to complete than any of the previous Units.