Using Looping Containers

In some models, you may want to carry out an iterative calculation at each timestep.  This might be useful, for example, if you have a coupled system of equations that must be solved every timestep by iterating. 

You can define a Container as a looping Container by selecting the Looping Capability feature in the Container dialog.  When you do so, a Looping tab is added to the Container dialog:

Looping Containers are represented in the graphics pane as follows:

   Note: When you specify a Container as having Looping Capability, you cannot also define an Internal Clock for the Container (these two options are mutually exclusive).

 Note: Looping Containers are useful when the looping calculation necessarily involves multiple elements (e.g., Reservoirs).   For a calculation requiring simpler looping requirements (defining an array, or iterating to a solution for a simple equation), a Script element would often provide a more transparent and easier solution.

   Warning: When you specify a Container as a looping Container, the Treat as SubSystem feature is also automatically selected (and cannot be deselected unless you first turn off Looping Capability).  That is, a looping Container, by definition, is treated as a SubSystem. Because a looping Container is treated as a SubSystem, this puts certain limitations on how these Containers can be used.

Related Topics…

Learn more about: