Skip to main contentIBM Quantum Documentation


class qiskit.passmanager.FlowControllerLinear(tasks=(), *, options=None)

GitHub(opens in a new tab)

Bases: BaseController

A standard flow controller that runs tasks one after the other.

Create new flow controller.


options (dict(opens in a new tab)[str(opens in a new tab), Any] | None) – Option for this flow controller.



Alias of tasks for backward compatibility.



execute(passmanager_ir, state, callback=None)

GitHub(opens in a new tab)

Execute optimization task for input Qiskit IR.



Optimized Qiskit IR and state of the workflow.

Return type

tuple(opens in a new tab)[Any(opens in a new tab), qiskit.passmanager.compilation_status.PassManagerState]



GitHub(opens in a new tab)

A custom logic to choose a next task to run.

Controller subclass can consume the state to build a proper task pipeline. The updated state after a task execution will be fed back in as the “return” value of any yield statements. This indicates the order of task execution is only determined at running time. This method is not allowed to mutate the given state object.


  • state (PassManagerState) – The state of the passmanager workflow at the beginning of this flow controller’s execution.
  • state – the state of pass manager after the execution of the last task that was yielded. The generator does not need to inspect this if it is irrelevant to its logic, nor update it.


Task – Next task to run.

Return type

Generator(opens in a new tab)[Task, PassManagerState, None]

Was this page helpful?
Report a bug or request content on GitHub.