Flow Control

Overview and Key Concepts

The flow control is responsible for optimizing the flow through a network. Every object that is connected to the flow control is part of the network that this flow control will optimize. When the flow rates on an object have changed, that object may schedule a flow recalculation, for example at the time it predicts a tank full or empty, product reaching the end of a flow conveyor, or the mixer reaching the required amount for its current step. Some user actions trigger a recalculation instantly, for example when a flow port is opened or closed or a maximum flow rate is changed, FloWorks will signal the relevant flow control that it should re-optimize the flow through the network the changed object is part of.

Most models have one flow control that is automatically created when you add the first FloWorks object, such as a source or a tank, to the model. A newly created flow control has the 3D shape of an air traffic control tower. Since you will hardly interact with the object, it is possible to reduce it to a small flat object at ground level by selecting "Minimize control" from the flow control's properties.

Having objects not connected to a flow control

In general you will want every FloWorks object in the model, whether it is a fixed object such as a source or a tank or a flow item such as a vessel or truck, to be connected to exactly one flow control. It is possible to remove an object from its flow control's members list, but flow rates will no longer be calculated for that object. This option is only useful, for example, if you are running FloWorks in Express Mode, which has a limitation on the number of objects in a network, and you have many truck flow items waiting in a queue. In this case, the trucks do not need to have flow rates assigned until they actually connect to a tank, for example in a loading point, so you can disconnect all trucks except the active ones from the flow control, thereby reducing the number of members of the flow control.

Having more than one flow control

It is possible to have more than one flow control in your model. By default, when you drag a FloWorks object into your model from the library, it will automatically be connected to the first flow control in the model. If no flow control is present, one will be created at the location (0, 0, 0). Usually, having a single flow control that all the FloWorks objects in your model are connected to is sufficient. One reason to want to have more than one flow control, would be that you have multiple independent flow networks. In this case creating a separate flow control for each disjoint component of the network will speed up the calculations, as FloWorks will be able to optimize multiple networks with fewer objects and constraints, rather than one relatively large network. However, this is a refactoring step that you would usually only implement when you have already built your model and find that the optimization speed has an impact on the performance of your model.


The flow control has a minimal set of events: On Reset, On Message and On Draw. These are described on the Fixed Resource - Events page.

The Flow Control has the following additional event:

On Flow Rates Calculated

This event occurs each time after the FloWorks engine has recalculated and assigned all the flow rates for objects attached to this flow control.

This event has no parameters.


The flow control does not set any states, it will always be in the idle state.


The flow control does not keep track of any statistics.


The Flow Control object uses the following properties panels: