In contrast to the FlexSim Fluid Library, FloWorks are event-based instead of ticker-based. Material only moves at specified events, such as a rate change, a full or empty tank or a user-defined trigger. This greatly increases the accuracy and performance of systems with continuous flow over the ticker-based approach.
The graph below shows an example of the accuracy and performance of an event driven solution vs. time slicing. In this example, a 10 liter tank is filled and then emptied at a rate of 3 l/min. After repeating the process ten times, the time slicing solution with a resolution of 0.1 minutes has performed 682 calculations. The total error relative to the actual situation is 4 liters or 1.33 minutes (2%). In contrast, the event-based solution that FloWorks implements only requires 20 calculations (ten tank top events and ten tank bottom events) and provides the correct result up to the calculation precision of your computer (less than one in 10-8).
The amount of material that moves between objects at the end of each event is based on the (input and output) rates defined on each object, as well as the amount of material that is available to move and the amount of space available to move it to. The FloWorks objects have a standard way of moving material between themselves. The object's maximum rate is the maximum amount that will be allowed in or out through all of the ports combined in a time unit. Because FloWorks flow movement is evaluated one port at a time, this value may be used to stop certain ports from sending or receiving.