Route your streams
- Last UpdatedAug 11, 2025
- 15 minute read
Control the routing of your streams through mixers, splitters and manifolds from the Stream Routing pages. From here, you can also control the priority of your streams. To configure the number of inputs and outputs of your process units, see Configure the Streams for your Process Units.
Tip: Double-clicking on a splitter or manifold in the flowsheet opens the Stream Routing page.

Consider this example: during simulation, your refinery produces hydrotreated kerosene and diesel. Your diesel product could potentially contain some kerosene material, but the kerosene doesn't contain any diesel type material. In this case, your hydrotreated kerosene could be split between a kerosene sales pool and a diesel blending pool. You could then set the priority on both of these destinations.
If the kerosene sales pool had a higher priority, the kerosene would be diverted there in preference to the diesel blending pool. However, during optimization, if it were more economically favorable to blend the kerosene into diesel, the priority would be ignored and diesel would be used in the diesel blending (as long as any constraints on kerosene sale were still met).

Tip: It may be advisable to use manifolds as the preferred units for mixing and splitting. Manifolds support a clearer drawing interface for complex topologies, for example with multiple
inputs and outputs, and are more easily visualized on the canvas.
Double-clicking on a splitter or manifold in the flowsheet opens the Stream Routing page.
Receive feed from multiple sources
Process units or manifolds often receive feed from more than one source. If a connection (a pipe on the flowsheet) exists between a source and destination, the corresponding check box is selected in the connectivity grid on the Stream Routing > Modes tab.
Each upstream unit must have at least one active mode. If not, the diagnostic message Missing mode connectivity between Asset X and Asset Y is shown. To correct this error, allow flow through at least one mode.

Prevent or restrict flow
You can limit the number of active inputs and outputs of a unit from the Overview tab of the Stream Routing page. In the Input Sockets and Output Sockets panes, select the check box at the top of the pane and choose the number of active inputs or outputs you want to allow. For example, if you have a manifold with four outputs, you could constrain the optimization to use no more than two outputs.
Not that you cannot choose which outputs to activate, but just how many. The optimizer will activate the outputs that result in the highest objective function.
If you want to prevent or restrict flow to specific downstream units, you have the following options:
-
Clear the Active check box for the stream in the Splitting grid.
-
Create a constraint and set the maximum flow to 0.
-
Set the flow availability to the downstream routing to 0.
On your flowsheet, you could have a stream route that is physically possible, but that is not used during normal operation.
Consider this example. If you have two CDUs and two HVUs, it might be possible for CDU1 to feed HVU2, but for operational reasons you don't normally use this configuration. However, since a single supply chain model must share the same flowsheet (and this flowsheet should reflect your real refinery setup) this transfer must be allowed on your flowsheet, but deactivated for general operation.
So if the possibility exists, the check box must be marked as active for stream routing, allowing material to flow via this route when economically viable. To prevent this routing from actually occurring, the route must be constrained. You can do this by marking the availability as zero from the upstream unit.
For example, in the below image, the atmospheric residue from CDU1 can feed the HVU2 feed pool. However, the amount is fixed at 0%. This means that the HVU2 pool cannot accept feed from HVU1.

Splitting
The Stream Routing > Splitting grid has several different views. These allow settings for different calculation modes in Plan to be configured.


Simulation view
The additional columns in the Simulation view are as follows.
|
Item |
Description |
|---|---|
|
Priority |
Priority is only used during simulation and optimize blend run modes. The importance of the pipe as a destination for the split material. Pipes with higher priority receive material in preference to pipes with lower priorities, given the capacity of the destination units. For example, a splitter may divert propane to an LPG pool and the fuel gas pool. If the LPG pool had a priority of 10, and the fuel gas pool a priority of 1, then the LPG pool would receive propane up until any constraints were met, and then fuel gas pool would receive the remainder. |
|
Availability |
The proportion of time the unit is available for. |
|
Availability UoM |
The unit of measure for the availability value. |
|
Marginal (Blend Optimization View only) |
The marginal value associated with the constraint. |
Optimization view
The additional columns in the optimization view are as follows:
-
Min: The minimum flow through the selected unit, expressed in terms of the constraint unit of measure.
-
Max: The maximum flow through the selected unit, expressed in terms of the constraint unit of measure.
-
Fixed: The fixed flow through the selected unit, expressed in terms of the constraint unit of measure.
-
Constraint UoM: The unit of measure for the constraint.
-
Marginal: The marginal value associated with the constraint.
Edit your splitting configuration
You can edit the configuration of a splitter directly in the grid.
To disable a splitter's output in a particular case, during simulation:
-
Make sure the Simulation view is shown.
-
Set the stream availability to 0.
To disable a splitter's output in a particular case, during optimization:
-
Make sure the Optimization view is shown.
-
Set the stream availability to 0. A marginal value will still be returned, but it is not possible to trigger infeasibility breakers on split availability therefore constrained split ratios may cause model infeasibilities.
Alternatively:
-
Make sure the Optimization view is shown.
-
De-activate the splitter output (no marginal value will be returned).
Lock your split solution or ratio
Solution values can be locked during subsequent runs. This means that a solution value will not change in any subsequent run, even if other input to the run is changed.

Example: The flow of naphtha from a crude could be locked, and in subsequent runs it would not be able to change. Therefore, if a fixed swing cut point was changed and the model re-run, the crude blend would have to change in order to match the fixed flow rate.
Locking a solution value acts in a similar way to fixing the value. The advantage over fixing a value is that the lock can be clearly seen in the user interface, so it is simpler to distinguish true fixed values from those which are temporarily locked.
To lock one or more solution values, select the corresponding rows in the table and do either of the following:
-
Click Lock Solution in the Behaviour group of the Home ribbon tab.
-
Right-click on the table and choose Locking > Lock from the context menu.
To unlock one or more solution values, select them and either click Unlock Solution in the ribbon or choose Locking > Unlock from the context menu.
Pooling
You can use a manifold or mixer to blend two or more streams, and then send the blended material to different units. Pooling units must be added to the flowsheet before they can be configured in the Pooling tab.

The Pooling grid has several different views, to configure settings for different calculation modes in Plan.

Priority in pooling
Pooling priority is only relevant for the Simulation mode, where you are responsible for deciding the flow of material around the plant. In Optimization mode, the optimizer routes material according to the constraints defined in the case.
The feed stream with the highest priority will be used in preference to the other feed streams.
Suppose you have a manifold with three inputs, as shown in the image below. If the HVU input has a priority of 20, the atmospheric residue has a priority of 10, and the HGO has a priority of 5, then the HVU will be used in preference until any constraints are met. After this point, the atmospheric residue will be used in preference to the HGO feed until, again, any constraints are met.

Disable a stream in a case
To disable a mixer's output in a particular case, set the stream availability to zero.
Add a new mode to an asset
To add a new mode to an asset:
-
Make sure the required asset is selected in the Asset menu.
-
Do either of the following:
-
Click Add in the Modes group of the Home ribbon tab.
-
Right-click in the Modes pane and choose Add Mode from the context menu.
-
-
In the Create Mode dialog, enter a Name and optionally a Description for the mode.
-
Click OK. The new mode is added to the list.

Configure the streams for your process units (inputs and outputs)
The Process Units > Model Structure > Stream Associations page shows the inputs and outputs of the selected process model. You can use this page to map your model connections to the pipes on your flowsheet.
Select the correct process model via the Process Unit, Mode and Process Model drop-down lists at the top of the tab.

Note: The number of inputs and outputs can only be edited if the process model is editable.
Associate model connections with flowsheet pipes
Process unit models have Model Connections, either inputs or outputs. Each connection must be associated with a Flowsheet Pipe for the model to function correctly. When you drag a process model onto the flowsheet, by default the asset's pipes are given the same name as the underlying model's connections, and no further editing is usually necessary.
However, it is also possible to route several model outputs to the same flowsheet pipe, that is, to pool the model outputs into a single pipe so that each material exists as a separate substream within the pipe. Each model output is tracked separately within the flowsheet pipe, and if necessary can be depooled and routed to a specific destination downstream in the flowsheet (See: Pooling Model Outputs).
Select the pipe to associate with a model connection by clicking in the list and selecting from the list of available pipes.

To change the flowsheet stream connected to a model port:
-
Click in the Flowsheet Pipes column for the model connection you want to change.
-
Select the required flowsheet stream from the list of available pipes.

Note: If several models are associated with a process unit, these are shown in the Process Model menu. Each model must have its stream associations configured separately.
Pooling and depooling input streams
The process model connections on a process unit are associated with flowsheet pipes. Each pipe may carry more than one stream of material within it. Each substream is tracked separately. Normally, when these substreams of material reach a process unit, the streams are blended together based on their flows, and the bulk material is fed into the process model contained within that process unit.

When a process unit contains several process models, you can feed different substreams to these different process models. The Input Stream Associations dialog allows the connections between substreams of a pipe and process models to be configured. The dialog shows the pipes which are connected to the process unit, and for each pipe the upstream units which feed into this pipe are shown. Where a unit has more than one operational mode, each of the unit modes is listed separately. When a check box is selected in the dialog, it indicates that the substream in that flowsheet pipe is pooled with the other materials and fed into the process model via the associated model connection.
For example, a kerosene hydrotreater model may output hydrogen sulfide, several light end molecules and desulfurized kerosene.

In a typical refinery the hydrogen sulfide and light ends are typically carried in a single pipe to a saturated gas plant where they are further separated. In Plan this topology can be represented by feeding the H2S and light ends into a single pipe, that is pooling these material into a single pipe. Therefore, the process unit would have two output pipes - one carrying desulfurized kerosene and the other carrying the saturated sour gas.
When the saturated sour gas reaches the sat gas plant process unit, the model associated with this unit handles the material. The saturated gas plant process unit could contain two process models, one handling the light ends, and the other handling the H2S. The different components of the saturated sour gas need to be separated and depooled so that they can be fed to an appropriate process model. Using the Input Stream Associations dialog the individual substreams of the sat gas feed pipe can be directed to the appropriate process model inside the Gas Plant process unit.
To set the input flowsheet pipe substreams which feed a process model connection:
-
Select the Model Connection that should be fed with a particular substream.
-
Click the
next to the Inputs list.
-
In the Input Stream Associations dialog select the substreams of the unit inputs which should be directed to that particular model connection.
Consider this example:

An alkylation unit reacts isobutane with small olefin molecules to produce high octane alkylate. Typically the units can be fed with propylene or butylene alkenes. However these different olefins react different and produce different alkylate. Therefore it is necessary to represent their reactions using different process models; one for propylene feed and another for butylene feed.

However, in a refinery the olefins might not be carried separately through the plant and could be carried in a single pipe to the alkylation unit. Once this mixed stream reaches the alkylation unit, the stream needs to be separated to feed the appropriate components to the appropriate model. Inside the Alkylation Model Structure it is possible to use the Input Stream Associations dialog to ensure the appropriate alkene is directed to the appropriate process model.
In the Lake Charles model the alkylation unit receives a feed of mixed propylene and butylene. This feed is depooled when it enters the process unit and directed to the correct process model.
Feedstock depooling
Depooling is used to separate individual substreams of materials within a pipe in order to direct specific materials to specific process models. These substreams are often the result of the output of an upstream process model pooling its products into a single pipe.
An example is a hydrotreater pooling all of the light ends into a single pipe. However it is also possible that these substreams are a result of crude distillation.
Distillation models in Plan also treat the different feedstocks to a distillation unit as separate components, and each separate feedstock sent to a distillation model results in a separate set of product flows from the model. For example, a crude distillation unit may have products including kerosene. If this distillation unit is fed with two different feedstocks, then the five products from each feedstock are treated separately. Thus, if the distillation unit is fed with Arab Light and Nemba, then the kerosene product actually contains two substreams: the Arab Light kerosene product, and the Nemba kerosene product. The bulk properties of the kerosene stream seen in the tooltip and Watch Window are the result of blending these two substreams together using their respective flows.

Consider this example:


In the configuration shown above, a coker process unit has three attached process models: one for hydrocracker bottoms feed, one for vacuum residue from light crudes, and one for vacuum residue from heavy crudes. The feed from the hydrocracker is fed exclusively to the HC Bottoms coker process model. The vacuum residue pipe from the HVU actually carries four substreams originating from the four different crudes fed to the upstream CDU. When these substreams reach the coker feed pool manifold they are depooled into separate models. The light crudes are directed toward the light crudes coker model, while the heavy crude is directed toward the heavy crude model. Thus, the heavy crudes coker model only receives the properties and flow originating from the Dalia feed, while the light crude model receives feed that is the blend of the vacuum residue originating from the light crudes, where the feed flow and properties are calculated by blending the individual vacuum residues from these feeds with respect to their relative flows.
Feedstock compositions can only be tracked up until the pipe reaches a base delta model. After this point, the feedstock composition is lost. For example, feedstocks are tracked separately through the CDU and attached HVU, and so the individual components reach the coker model. However, when these are depooled and routed to the appropriate coker model the individual components are lost and the product of the coker model is a single stream for each product whose properties are calculated based on the blend of the individual feedstock components.

The streams selected in the Input Stream Associations dialog are additive. Each stream in the dialog is separate, and selecting the check box adds it to the list of substreams directed to the selected process unit.
In the above example, the LGO splitter and distillate splitter output is directed to the same process model.
Although it is possible, mixing substreams from base delta models and substreams from feedstocks is not advised. In the screenshot above the routing does not indicate to only take the splitter output originating from the selected crudes.
Each substream in a pipe must be directed to a single process unit. If you do not direct a particular stream to a process unit Plan generates a warning input component is not used by any process model. The identified component should be routed to a single process unit. Similarly if a substream is directed to more than one process model the warning input component is associated with multiple process models is generated. The identified component should be edited to be directed to a single process model.
For this reason, mixing substreams from Base + Delta models with substreams from feedstocks should be avoided, as it is very easy to route components to more than one model in this setup, which leads to errors in building the supply chain model.
If you want to track components originating from a single feedstock all the way through the plant, including through separate process units, then you must segregate these components using modes and manage the routing using the modal connections options. For example, when modeling lubricant production, it is common to treat each crude oil separately and model the production of lubricant from each of these oils separately. That is, for every crude oil used in lubricant production, each of the separate processes used for production has its own process model. Thus, for the solvent extraction step of production there is a separate process model for each lubricant feed, and for the solvent dewaxing step, there is a separate process model for each lubricant feed. In order to feed these separate process models with the appropriate information for the original crude feedstock, it is necessary to segregate the crude feedstocks all the way back to the process unit and use modes to track their processing.
Associate fixed materials to outputs
The properties of the output streams of a process unit are usually calculated by the process model associated with that unit. Sometimes it is necessary to override some or all of the properties for a particular stream. This can be achieved by associating a model output with a fixed material. When the supply chain model is run, the calculated properties of the model output are replaced with the properties of the fixed material.
To associate a model output with a fixed material:
-
From the Process Units > Model Structure > Stream Associations page, select the output you want to override.
-
Click the
icon next to the list of outputs.
-
In the Fixed Material Association dialog, select the fixed material to associate with this output.

This dialog lists all globally defined fixed materials. If you need to add more materials to this list, see this topic.