Building Large, Complex Models
Lesson 5, page 2 of 15
As pointed out in Lesson 2, although some GoldSim models are simple, consisting of 50 elements The basic building blocks with which a GoldSim model is constructed. Each element represents a feature, pararamer, process or event in the model. or less, many GoldSim models have hundreds or even thousands of elements. (In fact, the largest model we are aware of has over 30,000 elements).
To facilitate this, GoldSim provides a number of powerful features that were specifically designed to facilitate the construction, maintenance, and presentation of very large, complex models.
We have already discussed in simple terms how Containers can be used to organize model elements into a hierarchy, providing a powerful tool for creating "top-down" models, in which the level of detail increases as you "push down" into the containment hierarchy.
Containers, however, are able to do much more than simply organize a model. Advanced Container An element that acts like a “box” or a “folder” into which other elements can be placed. It can be used to create hierarchical models. features include the following:
- Containers can be localized so that variable names can be repeated without causing conflicts. Localized Containers are particularly useful when your model contains numerous parallel systems (e.g., different divisions of a company), in which many of the equations and variable names would be identical. It also allows multiple people to work on different subsystems in a model without worrying about conflicting variable names.
- Containers can be made conditional. Conditionality allows you to make a Container and all of its contents inactive unless specific events occur and/or conditions are met. Conditional Containers are a very powerful feature, and can be used to 1) temporarily "turn off" certain parts of your model (e.g., during a testing phase); or 2) simulate processes or features which themselves only exist or are active during certain parts of your simulation.
- Containers can be "locked" (with a password) to prevent portions of the model from being inadvertently edited.
- You can apply dynamic adaptive timestepping to specific Containers.This allows you, for example, to specify different timesteps An element that generates discrete signals based on a specified rate of occurrence. for different parts (i.e., Containers) in your model.For example, if one part of your model represented dynamics that changed very rapidly (requiring a 1 day timestep), while the rest of the model represented dynamics that changed much more slowly (requiring a 10 day timestep), you could assign a 10 day timestep to the model globally, and a 1 day timestep to the Container representing the subsystem that changed rapidly.
In addition to advanced Container features, GoldSim provides other features for building and maintaining complex models, including:
- Powerful tools for navigating models, such as the ability to explore the interdependencies of the various elements (i.e., who affects who); and
- The ability to record versions (revisions) of a particular model file, so that you can identify the differences between the various versions of the file as the model is iteratively modified. (Which elements have changed? Which elements were deleted? Which elements have been added?)