creation_operator

Graph.creation_operator(dimension, offset=0, *, name=None)

Create a creation operator in the truncated Fock space.

Parameters:
• dimension (int) – The size of the state representation in the truncated Fock space. By default, the Fock space is truncated as [0, dimension). If non-zero offset is passed, the space is then truncated at [offset, dimension + offset).

• offset (int, optional) – The lowest level of Fock state in the representation. Defaults to 0.

• name (str or None, optional) – The name of the node.

Returns:

A 2D tensor representing the creation operator.

Return type:

Tensor

annihilation_operator

Create an annihilation operator in the truncated Fock space.

coherent_state

Create a coherent state (or a batch of them).

fock_state

Create a Fock state (or a batch of them).

number_operator

Create a number operator in the truncated Fock space.

Examples

Generate a creation operator for a two-level system.

array([[0.+0.j, 0.+0.j],
[1.+0.j, 0.+0.j]])

Apply a creation operator on the ground state such that $$a^\dagger|0\rangle = |1\rangle$$.

>>> state = adagger @ graph.fock_state(2, 0)[:, None]
>>> state.name = "state"
>>> result = qctrl.functions.calculate_graph(graph=graph, output_node_names=["state"])
>>> result.output["state"]["value"]
array([[0.+0.j],
[1.+0.j]])

Generate a creation operator for a three-level system with an offset.

array([[0.+0.j, 0.+0.j, 0.+0.j],
[1.41421356+0.j, 0.+0.j, 0.+0.j],
[0.+0.j, 1.73205081+0.j, 0.+0.j]])

Apply a creation operator with an offset such that $$a^\dagger|1\rangle = \sqrt{2}|2\rangle$$.