About Branching

You create branches in the simulation flow by adding a gateway. You can also use a gateway to collect branches and return them to a single flow.

See Also
About Conditional Expressions in Branches
Inserting Gateways to Create Branches
Controlling the Execution of Branches

You can specify that a branch always runs, that a branch never runs, or that a branch runs only when a condition is true.

You can add a gateway to the process flow diagram by selecting from the action bar.

Tip: In general, you should try to work from left to right in the process flow diagram.

The example below shows a gateway on the left with three branches. Each branch performs a calculation that determines the value of an output parameter:

The user creates the following condition to specify that the first branch should run if the text parser determines the number of layers in the composite layup is three.

The user specifies similar conditions for the other two branches. For example, Branch2 runs if the number of layers in the composite layup is four; Branch3 runs if the number of layers in the composite layup is five.

The gateway on the right is set to always run. The gateway collects the output parameter from the branch that ran and passes the parameter to the Abaqus adapter.

Execution of Multiple Branches

In some cases, only one of the conditions will be satisfied, and only one branch will run. In other cases, more than one condition may be satisfied, and multiple branches will run.

If multiple conditions are satisfied, the availability of 3DOrchestrate system resources determines the order in which the branches run. You cannot control the order in which multiple branches run. Therefore, if you expect more than one branch to run after the conditions are applied, you should be careful to prevent multiple branches from defining the value of the same parameter.

If it is possible for all of the conditional branches to fail, it is recommended to insert an empty branch from the first gateway directly to the last gateway. This allows the data from before the first gateway to flow beyond the last gateway, even if all conditional branches fail, reducing chances of process failure. By default, empty gateways run without a condition.