Overview and Key Concepts
The flow tank is the most general and widely used fluid container in FloWorks. It can receive and send material at the same time. You can specify the maximum capacity of the tank, or let FloWorks calculate the capacity of a cylindrical or rectangular tank based on the actual size in the model. Apart from triggers that fire when the tank is full or empty, you may define additional triggers which fire when the content of the tank reaches a certain percentage.
An initial content can be specified for the tank - the content will be set to this initial value every time the model is reset. This is very useful if your model only requires a specific amount of material that needs to be released into the system (immediately or eventually) but no more material will ever be created. If, on the other hand, you need a (potentially) unlimited stream of incoming material, use a flow source instead.
The flow tank is very flexible in its visualization. Some basic shapes have been provided, such as a cylindrical and rectangular tank, common applications such as silos and IBC (intermediate bulk containers) and specific shapes such as a conical flow pile. Please see the Tank Visualization page for more information.
The flow tank uses the standard events that are common to almost all FloWorks objects. See FloWorks Triggers for an explanation of these events.
The flow tank has the following additional events.
This event occurs every time the content of the tank reaches zero where it was not zero before. Usually this will happen because the outflow exceeded the inflow and the tank ran out of content, but the event also triggers when the content was non-zero and you set it to zero by a trigger option or code. Note that when the content was already zero, the trigger will never fire; this includes when the tank resets to an empty state at the start of the simulation.
It has the following parameters:
This event occurs every time the content of the tank reaches the maximum content. Usually this will happen because the inflow exceeded the outflow and the tank ran out of ullage, but the event also triggers when the content was below the maximum content and you set it to the maximum by a trigger option or code. Note that when the tank was already full, the trigger will never fire; this includes when the tank resets to a full state at the start of the simulation.
It has the following parameters:
On Trigger Level
This event occurs after at least one content level trigger has been executed. It is provided mostly as a hook for attaching event listeners, such as a Process Flow Wait For Event activity, to those triggers because they may be dynamic in number.
The event has the following parameters:
|level||The content level reached which caused one or more trigger levels to execute.|
|mode||Whether the content is
For statistical purposes, the flow tank's FloWorks state profile will be in one of the following states at various points during a simulation run. The current state can be viewed by clicking on the object and then viewing the Statistics pane in Properties.
The tank is empty and there is no net flow (the flow is zero or inflow rate is equal to the outflow rate).
The tank is full and there is no net flow (the flow is zero or inflow rate is equal to the outflow rate).
The tank is not full and the inflow rate exceeds the outflow rate.
The tank is not empty and the outflow rate exceeds the inflow rate.
The tank is neither empty nor full but there is no net flow (the flow is zero or inflow rate is equal to the outflow rate).
The flow tank tracks the following statistics. These can be viewed by clicking on the object and then viewing the Statistics panel in Properties.
Input / Output
The total number amount of flow, measured in fluid units, that has entered or exited the tank.
The current input and output rate of the tank, measured in fluid units per time unit.
The current content of the tank, which is the difference between the output amount and the input amount.
The flow tank objects use the following properties panels:
You may control the behavior of the flow source dynamically by writing FlexScript, for example in a Script window or by changing the code behind one of the options in an object trigger.
The flow tanks are instances of the
FlowTank class, see the class reference
for information about its properties.