diff --git a/abp/fancy.py b/abp/fancy.py index 712d5b5..9f8de33 100644 --- a/abp/fancy.py +++ b/abp/fancy.py @@ -4,6 +4,7 @@ import numpy as np import websocket from socket import error as socket_error import graphstate +import clifford import util class GraphState(graphstate.GraphState, networkx.Graph): @@ -33,6 +34,9 @@ class GraphState(graphstate.GraphState, networkx.Graph): if not all(("position" in node) for node in self.node.values()): self.layout() + if not all(("vop" in node) for node in self.node.values()): + self.add_vops() + # Send data to browser and rate-limit self.ws.send(json.dumps(self.to_json())) time.sleep(delay) @@ -45,4 +49,10 @@ class GraphState(graphstate.GraphState, networkx.Graph): for key, (x, y, z) in pos.items(): self.node[key]["position"] = util.xyz(x, y, z) + def add_vops(self): + """ Automatically add vops if they're not present """ + for key in self.node: + if not "vop" in self.node[key]: + self.node[key]["vop"] = clifford.by_name["identity"] + diff --git a/examples/lattice_demo.py b/examples/lattice_demo.py index 4e4ba43..8109916 100644 --- a/examples/lattice_demo.py +++ b/examples/lattice_demo.py @@ -30,7 +30,7 @@ def lattice(unit_cell, size): return nodes, edges # s = VisibleGraphState() -nodes, edges = lattice(square_unit_cell, (4, 4)) +nodes, edges = lattice(square_unit_cell, (10, 10)) psi = GraphState() for node in nodes: diff --git a/examples/mix_graph_and_networkx.py b/examples/mix_graph_and_networkx.py index e414344..f4a33ac 100644 --- a/examples/mix_graph_and_networkx.py +++ b/examples/mix_graph_and_networkx.py @@ -1,6 +1,6 @@ from abp.fancy import GraphState g = GraphState() -n = 10 +n = 100 g.add_nodes_from(range(n)) g.add_edges_from([i, i+1] for i in range(n-1))