As discussed in the main page, a distinction is made between code-oriented programming vs. object-oriented programming. With the advent of greater computing power and in order to develop more user-friendly software object-oriented programing languages developed. Visual Basic is a prime example. In such an approach the programmer inserts objects, such as a click-button, in a window programming environment and then writes code for that object. When a user clicks on the click-button that code is executed. Stella is very much object oriented, with a very limited host of objects that can be combined to develop fairly sophisticated models.
Objects in Stella environment:
The code in Stella is very limited, and consists mainly of establishing mathematical relationships between the various components. However, it is the critical aspect. These are the rules of a system diagram. In addition, to mathematical relationships in the form of equations, one can also input graphical relationships between variables. You can think of it as a free form rule. This greatly extends the utility of Stella, and allows exploration of intuitive models.
The best way to understand is to go through some examples. The example here is of the volume of an eroding mountain. The idea trying to be captured is very simple. The amount of erosion is related to high the mountains are. As relief diminishes so does the rate of erosion. If we think of relief being represented in aggregate by mountain volume (as measured by the portion above sea level), then the erosion rate is a function of the mountain volume at any one time. In this particular case erosion rate = constant * (Mountain volume/initial mountain volume). The simple result is the simple curve below. Here it is the form of the response that is important. Obviously, mountain belts do not erode in 1000 years and this model does not capture much (it is mainly a starting point here). You might imagine the x axis units as millennia instead of years, and this might be more realistic. The model needs to be refined.
What would you add to this model to make it more realistic? It is natural to think of a list of components that would make it better. It can be argued that it is more fruitful to add a component at a time and to a produce a series of working models of increasing sophistication. For one, this approach will allow you to better understand the influence of each component on the system behavior.
Prey-predator relationships with Stella.
Exploring the Dynamics of Earth Systems a guide to constructing and experimenting with computer models of Earth systems using STELLA by Dave Bice, Dept. of Geology, Carleton College, Northfield, MN 55057. There is just a wealth of material here - a very good site.
In class exercise:
First, take the example for the eroding mountain belt above, and make a list of components to add that would more realistically model erosion of topography. Then decide on which component would be the best to add on next, and draw a diagram of what the object configuration might look like in Stella.
Stella is particularly good at exploring feedback loops. Think of one of the classic possibilities - how local snow/ice cover influences local temperatures which in turn influence local snow/ice cover. Here is one kernel for understanding glaciation and global climate change. In class, using Stella objects, model this phenomena. On one sheet of paper depict the object relationships. On the other describe the the relationship between the variables and inflows and outflows.
Carleton College's web site on the educational utility of Stella.
Link to Stella demo and purchase info.