Flow Processor

Overview and Key Concepts

Flow processors are objects for which the input rate is always equal to the output rate. FloWorks supports various shapes of flow processors such as flow pumps and flow valves. In practice pumps are active components while valves are passive. In FloWorks, the two objects are functionally identical, you can decide which one you use based on reality or your preference.

Pumps and valves

Pumps and valves are typically used for the following purposes:

  • For realistic modelling. By default, the flow rate for the flow pump and a flow valve are set to be non-constraining. Therefore they do not influence the flow rates in the model. You may still want to include these objects because you have a model background or are modelling a situation where there would be a pump or a valve in reality.
  • To restrict flow rates. Depending on the situation, it may be convenient to have a single point in the model where you can define the maximum flow rate through (part of) the fluid network. For example, a pump or valve can serve as the exit point for a tank pool, where you can set the outflow rate from the tank pool on the pump or valve, regardless of the active tank, rather than setting it on all tanks in the pool separately.
  • For collecting statistics. Each object collects its own statistics, but it is not possible to collect statistics for each port separately. Consider the case to the left below, where three connections are entering a sink, and assume that each of those connections actually represents a complex sub-network where it is hard to find a single point to measure the total flow. If you want to measure how much is flowing into the sink through each port, you can insert three pumps or valves and log their throughput, as shown to the right.


The blender is similar to the pump and valve, except that it has its inflow rule set to "Balanced flow on rate %" by default. The blender always makes sure it is collecting the correct percentages. If the inflow rate is reduced on one of the input ports, all other ports will be reduced to keep the ratio between the inflow rates fixed. This implies in particular that if an upstream object is starving one input port, that the blender will also stop the flow through all other input ports.


The splitter does the same on the output side: it has its output rule set to "Balanced flow on rate %" by default. It always makes sure it is releasing the correct percentages. If the outflow rate is reduced on one of the output ports, all other ports will be reduced to keep the ratio between the outflow rates fixed. This implies in particular that if a downstream object is blocking on one output port, that the splitter will also stop the flow through all other output ports.


The flow processor uses the standard events that are common to almost all FloWorks objects. See FloWorks Triggers for an explanation of these events.


For statistical purposes, the flow processor's FloWorks state profile will be in one of the following states at various points during a simulation run:


The flow processor does not have any flow.


Material is flowing at a non-zero flow rate.


The flow processor object uses the following properties panels:

Custom coding

You may control the behavior of a flow pump or flow valve dynamically by writing FlexScript, for example in a Script window or by changing the code behind one of the options in an object trigger.

Flow processors are instances of the FlowObject class, see the class reference for information about its properties.

Note that flow processors will never store material and therefore their input rate must be equal to their output rate. The maximum flow rate can be set either on the input, or on the output; the other value will automatically be changed too.