Description
The draw_chimera function takes a NetworkX graph as input. The docstring says "Should be a Chimera graph or a subgraph of a Chimera graph" which can mean either that its edges must be a Chimera lattice subset or that the NetworkX graph must be generated by chimera_graph, it's unclear which is the intention.
Assuming the former, if the NX graph is missing some chimera_index attributes, the function returns the obscure NetworkXError: Found infinite path length because the graph is not connected error because draw_chimera tries to calculate the graph's diameter in https://github.com/dwavesystems/dwave-networkx/blob/a4a1eb6176399f6e2aaac8bf9b1b84815320a52d/dwave_networkx/generators/chimera.py#L272
To Reproduce
>>> G = nx.Graph()
>>> G.add_nodes_from([0, 3, 4, 7])
>>> G.add_edges_from([(0, 4), (0, 5), (5, 13)])
>>> dnx.draw_chimera(G, with_labels=True)
If I either add the chimera_index to nodes in the two-tile NX graph or stick to the nodes of a single tile (due to https://github.com/dwavesystems/dwave-networkx/blob/a4a1eb6176399f6e2aaac8bf9b1b84815320a52d/dwave_networkx/generators/chimera.py#L288), the function works fine.
Expected behavior
- Clarify if
draw_chimera should accept any NX graph that is a subgraph of a Chimera lattice
- If yes, either require that nodes have
chimera_index or add them without an error for more than two unit cells
- If no, specify in the docstring that the NX graph must be produced by
chimera_graph
Environment:
- OS: WIN
- Python version: 3.7.0
Description
The
draw_chimerafunction takes a NetworkX graph as input. The docstring says "Should be a Chimera graph or a subgraph of a Chimera graph" which can mean either that its edges must be a Chimera lattice subset or that the NetworkX graph must be generated bychimera_graph, it's unclear which is the intention.Assuming the former, if the NX graph is missing some
chimera_indexattributes, the function returns the obscureNetworkXError: Found infinite path length because the graph is not connectederror becausedraw_chimeratries to calculate the graph's diameter in https://github.com/dwavesystems/dwave-networkx/blob/a4a1eb6176399f6e2aaac8bf9b1b84815320a52d/dwave_networkx/generators/chimera.py#L272To Reproduce
If I either add the
chimera_indexto nodes in the two-tile NX graph or stick to the nodes of a single tile (due to https://github.com/dwavesystems/dwave-networkx/blob/a4a1eb6176399f6e2aaac8bf9b1b84815320a52d/dwave_networkx/generators/chimera.py#L288), the function works fine.Expected behavior
draw_chimerashould accept any NX graph that is a subgraph of a Chimera latticechimera_indexor add them without an error for more than two unit cellschimera_graphEnvironment: