Skip to content

Commit

Permalink
Minor updates
Browse files Browse the repository at this point in the history
  • Loading branch information
mattbit committed Jul 12, 2022
1 parent a59f037 commit c9d7aea
Show file tree
Hide file tree
Showing 8 changed files with 30,250 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
__pycache__
.env
.idea
.pytest_cache
resources/data
Expand Down
75 changes: 74 additions & 1 deletion er/graph/generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ def hexagonal_lattice(num_nodes, periodic=False):
if "contraction" in data:
del data["contraction"]


# Split the position in two distinct keys
for node, data in lattice.nodes(data=True):
data["x"], data["y"] = data["pos"]
Expand All @@ -76,6 +75,80 @@ def hexagonal_lattice(num_nodes, periodic=False):
return _relabel_nodes_by_distance(lattice, spatial_center=True)


def hex_tri_lattice():
m = 60
n = 120

graph = nx.generators.triangular_lattice_graph(m, n)

graph.graph["label"] = "Hexagonal + triangular lattice"

# Split the position in two distinct keys
for node, data in graph.nodes(data=True):
data["x"], data["y"] = data["pos"]
del data["pos"]

# Periodicity
for i in range(n // 2 + 1):
node = (i, 0)
graph.add_edges_from([(node, n) for n in graph.adj[(i, m)]])

for i in range(n // 2 + 1):
graph.remove_node((i, m))

for i in range(n // 4 + 2, n // 2, 3):
for j in range(1, m, 2):
try:
graph.remove_node((i, j))
except nx.NetworkXError:
pass
for i in range(n // 4 + 1, n // 2, 3):
for j in range(0, m + 1, 2):
try:
graph.remove_node((i, j))
except nx.NetworkXError:
pass

return _relabel_nodes_by_distance(graph, spatial_center=True)


def hex_connectivity_lattice():
m = 60
n = 120

graph = nx.generators.triangular_lattice_graph(m, n)

graph.graph["label"] = "Hexagonal + triangular lattice"

# Split the position in two distinct keys
for node, data in graph.nodes(data=True):
data["x"], data["y"] = data["pos"]
del data["pos"]

# Periodicity
for i in range(n // 2 + 1):
node = (i, 0)
graph.add_edges_from([(node, n) for n in graph.adj[(i, m)]])

for i in range(n // 2 + 1):
graph.remove_node((i, m))

for i in range(n // 4 + 2, n // 2, 3):
for j in range(1, m, 2):
try:
graph.remove_node((i, j))
except nx.NetworkXError:
pass
for i in range(n // 4 + 1, n // 2, 3):
for j in range(0, m + 1, 2):
try:
graph.remove_node((i, j))
except nx.NetworkXError:
pass

return _relabel_nodes_by_distance(graph, spatial_center=True)


def from_matfile(filename, adj_key="C", nodes_key="nodes"):
"""Generates a graph based on a Matlab file (.mat).
Expand Down
2 changes: 1 addition & 1 deletion er/plot/graph.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def _length(edge):

return np.hypot(*np.subtract(x_u, x_v))

return [edge for edge in graph.edges if _length(edge) > 1.5]
return [edge for edge in graph.edges if _length(edge) > 2]


def heatmap(graph: nx.Graph, node_values=None, edge_values=None, cmap=None,
Expand Down
2 changes: 1 addition & 1 deletion er/simulation/simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ def _run(self, id=None):
fpt = np.full(network.size(), np.inf)
fpt[self.walker.node] = self.walker.time

times = np.array([w.time for w in walkers], dtype=np.float)
times = np.array([w.time for w in walkers], dtype=float)

steps = 0
while times.min() < fpt.max():
Expand Down
4 changes: 2 additions & 2 deletions er/simulation/trajectory.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def trajectories(self, num_walkers, max_time, start_nodes=None,
walkers[i].start = node
walkers[i].node = node

times = np.array([w.time for w in walkers], dtype=np.float)
times = np.array([w.time for w in walkers], dtype=float)

trajs = [Trajectory([w.node], [w.time], id=k)
for k, w in enumerate(walkers)]
Expand Down Expand Up @@ -115,7 +115,7 @@ def trajectories_to_target(self, num_walkers, target, keep=None,
walkers = np.array([copy(self.walker) for _ in range(num_walkers)])

active_idx = set(range(num_walkers))
times = np.array([w.time for w in walkers], dtype=np.float)
times = np.array([w.time for w in walkers], dtype=float)

paths = np.array([Trajectory([w.node], times=[w.time], id=i)
for i, w in enumerate(walkers)])
Expand Down
Loading

0 comments on commit c9d7aea

Please sign in to comment.