Determining if an Event Has Occurred

GoldSim provides a special function that can be useful in discrete event modeling: the "Occurs" function. The Occurs function accepts a single argument which must be a discrete event signal A discrete signal indicating that something (e.g., an accident, an earthquake, a bank deposit) has occurred..

The Occurs function returns a condition (True or False). If the argument (the discrete event signal) has occurred during the current update, the value is True, otherwise it is False.

This can be useful in situations where you need to reference whether or not two events have occurred simultaneously. For example, suppose that there are two events in your simulation (Event1 and Event2), and you want to trigger a response if and only if Event1 occurs and Event2 does not (i.e., you do not want to trigger the response if both events occur simultaneously). A good way to do this is to use the Occurs function in the Required Condition field for each element.

The Trigger dialog that captures this behavior would look like this:

Note: If you try to plot an Expression defined using the occurs operator, the Expression will always show False (unless the event occurs exactly at a scheduled update point), since by default, GoldSim only records results at the scheduled plot points Points in time at which the value of outputs are saved for plotting time history data., and not at the unscheduled timesteps inserted by events (which are the only points at which the Expression would be evaluate to True). Note, however, that GoldSim provides an option to include unscheduled updates Timesteps that are inserted automatically by GoldSim during a simulation and are not directly specified by the user prior to running the model. in time history displays (under a specified set of conditions) in the Advanced Time settings.