cluster_sim package¶
- class cluster_sim.ClusterState(num_nodes)¶
Bases:
objectAdapter class containing a GraphRegister object.
- Parameters:
num_nodes (
int)
- add_edge(qubit1, qubit2)¶
- property adjacency_list¶
- property adjacency_matrix¶
- apply_VOP(qubit, vop)¶
Apply vertex operators.
- draw(label_func=<function ClusterState.<lambda>>, **kwargs)¶
- duplicate(targets=None)¶
Generate a copy of the selection and return a larger object.
- edge_local_complementation(edge)¶
Apply an edge local complementation.
- classmethod from_cytoscape(data)¶
Load a simulator from cytoscape.
- classmethod from_json(json_data)¶
Convert the graph state to a JSON-serializable format.
- Returns:
A JSON-serializable representation of the graph state.
- classmethod from_networkx(graph)¶
- Parameters:
graph (
Graph)
- classmethod from_rustworkx(graph)¶
Create a graph state from rustworkx.
- Parameters:
graph (
PyGraph|PyDiGraph) – rustworkx graph.- Returns:
class object
- Return type:
- classmethod from_text(text, return_log=False)¶
Create a cluster state from a text-based representation of operations.
- fusion_gate(qubit1, qubit2, gate_control='I', gate_target='I', mode='success', force=0)¶
Apply a fusion gate.
Type II fusion of the form XXZZ corresponds to gate_control = I and gate_target = I. Type II fusion of the form XZZX corresponds to gate_control = H and gate_target = I.
For more details, see https://arxiv.org/pdf/2312.02377.
- Parameters:
qubit1 (
int) – which qubit to applyqubit2 (
int) – which qubit to applygate_control (str) – either I or H
gate_target (str) – either I or H or SH
mode (str, optional) – Either “success”, “failure”, or “random”. Defaults to “success”.
force (int) – Force the measurements according to the following mapping: - 0 : Qubit 1 = 0, Qubit 2 = 0 - 1 : Qubit 1 = 0, Qubit 2 = 1 - 2 : Qubit 1 = 1, Qubit 2 = 0 - 3 : Qubit 1 = 1, Qubit 2 = 1 - -1 : Random measurement
- local_complementation(qubit)¶
Apply a local complementation.
- Parameters:
qubit (int) – which qubit to apply
- measure(qubit, force=-1, basis='Z')¶
Measure a node in the graph state.
- classmethod random_graph(num_nodes, p=0.5, local_cliffords=False)¶
Generate a random graph.
- remove_edge(qubit1, qubit2)¶
- property stabilizers¶
- subgraph(targets=None)¶
Generate a copy and return a larger object.
This does not copy any edges out of the selection.
- to_cytoscape(export_elements=False)¶
Export to cytoscape.
- to_json()¶
Convert the graph state to a JSON-serializable format.
- Returns:
A JSON-serializable representation of the graph state.
- to_networkx(options={'neighbors': False, 'stabilizer': False, 'vop': True})¶
Export data from the underlying state.
Turning off vop = True may lead to unintended behaviour when recreating the state.
- Parameters:
options (dict, optional) – Default options. Defaults to {“stabilizer” : False, “vop”: True}.
- Returns:
networkx representation
- Return type:
nx.Graph
- to_rustworkx(options={'neighbors': False, 'stabilizer': False, 'vop': True})¶
Export data from the underlying state.
Turning off vop = True may lead to unintended behaviour when recreating the state.
- Parameters:
options (dict, optional) – Default options. Defaults to {“stabilizer” : False, “vop”: True}.
- Returns:
rustworkx representation
- Return type:
rx.PyGraph
- toggle_edge(qubit1, qubit2)¶
- property vertex_operators¶
Subpackages¶
- cluster_sim.app package
BrowserStateBrowserState.camera_stateBrowserState.from_json()BrowserState.layoutBrowserState.logBrowserState.offsetBrowserState.p_errBrowserState.path_clicksBrowserState.plot_optionsBrowserState.removed_nodesBrowserState.seedBrowserState.shapeBrowserState.to_json()BrowserState.xoffsetBrowserState.yoffsetBrowserState.zoffset
Grid3Dgrid_graph_3d()rx_graph_to_plot()update_plot_cytoscape()update_plot_plotly()- Submodules
- cluster_sim.app.layout module
- cluster_sim.app.state module
BrowserStateBrowserState.camera_stateBrowserState.from_json()BrowserState.layoutBrowserState.logBrowserState.offsetBrowserState.p_errBrowserState.path_clicksBrowserState.plot_optionsBrowserState.removed_nodesBrowserState.seedBrowserState.shapeBrowserState.to_json()BrowserState.xoffsetBrowserState.yoffsetBrowserState.zoffset
- cluster_sim.app.utils module
- cluster_sim.simulator package
ClusterStateClusterState.CX()ClusterState.CZ()ClusterState.H()ClusterState.I()ClusterState.M()ClusterState.MX()ClusterState.MY()ClusterState.MZ()ClusterState.S()ClusterState.SH()ClusterState.S_DAG()ClusterState.X()ClusterState.Y()ClusterState.Z()ClusterState.add_edge()ClusterState.add_node()ClusterState.adjacency_listClusterState.adjacency_matrixClusterState.apply_VOP()ClusterState.draw()ClusterState.duplicate()ClusterState.edge_local_complementation()ClusterState.from_cytoscape()ClusterState.from_json()ClusterState.from_networkx()ClusterState.from_rustworkx()ClusterState.from_text()ClusterState.fusion_gate()ClusterState.local_complementation()ClusterState.measure()ClusterState.random_graph()ClusterState.remove_edge()ClusterState.remove_node()ClusterState.stabilizersClusterState.subgraph()ClusterState.to_cytoscape()ClusterState.to_json()ClusterState.to_networkx()ClusterState.to_rustworkx()ClusterState.toggle_edge()ClusterState.vertex_operators
- Submodules
- cluster_sim.simulator.cluster_state module
ClusterStateClusterState.CX()ClusterState.CZ()ClusterState.H()ClusterState.I()ClusterState.M()ClusterState.MX()ClusterState.MY()ClusterState.MZ()ClusterState.S()ClusterState.SH()ClusterState.S_DAG()ClusterState.X()ClusterState.Y()ClusterState.Z()ClusterState.add_edge()ClusterState.add_node()ClusterState.adjacency_listClusterState.adjacency_matrixClusterState.apply_VOP()ClusterState.draw()ClusterState.duplicate()ClusterState.edge_local_complementation()ClusterState.from_cytoscape()ClusterState.from_json()ClusterState.from_networkx()ClusterState.from_rustworkx()ClusterState.from_text()ClusterState.fusion_gate()ClusterState.local_complementation()ClusterState.measure()ClusterState.random_graph()ClusterState.remove_edge()ClusterState.remove_node()ClusterState.stabilizersClusterState.subgraph()ClusterState.to_cytoscape()ClusterState.to_json()ClusterState.to_networkx()ClusterState.to_rustworkx()ClusterState.toggle_edge()ClusterState.vertex_operators