You are here

Discrete event-based modelling : Squirt arrow

Squirt arrow

How to add a Squirt arrow

See Adding arrow-type elements.


The squirt arrow is used to specify where event occurrences cause sudden changes to the value of a compartment. If the squirt arrow enters a compartment, it specifies a positive step change to that compartment. If it leaves the compartment, it specifies a negative step change (unless the magnitude of the squirt occurrence is negative in which case these directions are reversed, as for a negative flow value). Many aspects of using squirts are similar to using flows.

If your model needs to keep track of changes in the amount of a substance but you are not interested in where it comes from or goes to, your squirt arrow may start or finish on a blank part of the model diagram. In this case a "cloud" will be drawn at the end point, indicating that the amount of substance there plays no role in the model. Each cloud may only have one flow or squirt connected to it.

Influences to and from a squirt arrow are attached to a "target" (or "bulb") symbol which is positioned on the squirt arrow. This represents the point that generates the transfer. Influences from a squirt arrow start from this point and are used in the same way as those from an event symbol, and must go to other squirts, events or states.

In most respects, a squirt is treated just like a derived event. You can use the full range of the equation language when you enter an equation for the squirt, including the trigger_magnitude() and after() functions, just as you can do for a derived event. The two differences are that:

  • a squirt is the only way you can express an instantaneous change term for a compartment; and
  • a squirt cannot be a time series event or a limit event.


  • A squirt arrow can only be drawn into and/or out of a compartment.
  • Influences can be drawn to a squirt's bulb, and must include one from another squirt or event symbol.
  • Influences can be drawn from a squirt's bulb to other squirts, events or states.
  • The units for a squirt value must be of the same dimensions as the units of the corresponding compartment(s) that it is linked to. For example, if you have a squirt going into a compartment whose units are kg, and the unit of time for the model is a year, then the units for the squirt can be kg, g, lb etc. An automatic conversion will be performed if necessary. The time units do not matter (unlike flow units) because the transfer is instantaneous.

In: Contents >> Graphical Modelling >> Discrete-event based