Skip to content

Commit 7a5adc7

Browse files
committed
[Examples] Cleaned 01_quick_start.py
1 parent af5a435 commit 7a5adc7

File tree

1 file changed

+10
-138
lines changed

1 file changed

+10
-138
lines changed

examples/01_quick_start.py

Lines changed: 10 additions & 138 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,6 @@
1414
from compas_cem.plotters import Plotter
1515

1616

17-
# ------------------------------------------------------------------------------
18-
# Parameters
19-
# ------------------------------------------------------------------------------
20-
21-
plot = False
22-
2317
# ------------------------------------------------------------------------------
2418
# Instantiate a topology diagram
2519
# ------------------------------------------------------------------------------
@@ -67,144 +61,22 @@
6761
# Compute a state of static equilibrium
6862
# ------------------------------------------------------------------------------
6963

70-
# form = static_equilibrium(topology, eta=1e-6, tmax=100, verbose=True)
71-
72-
# ------------------------------------------------------------------------------
73-
# Compute a state of static equilibrium
74-
# ------------------------------------------------------------------------------
75-
76-
import numpy as np
77-
import equinox as eqx
78-
79-
class EquilibriumModel(eqx.Module):
80-
pass
81-
82-
83-
# trails_sequences = topology.trails_sequences()
84-
# trails = {k: v[:] for k, v in topology.trails()}
85-
86-
nodes = list(topology.nodes())
87-
node_index = topology.key_index()
88-
89-
edges = list(topology.edges())
90-
edge_index = topology.uv_index()
91-
index_edge = topology.index_uv()
92-
93-
deviation_mask = []
94-
for edge in edges:
95-
mask_value = 0
96-
if topology.is_deviation_edge(edge):
97-
mask_value = 1
98-
deviation_mask.append(mask_value)
99-
100-
print(f"{edges=}")
101-
print(f"{deviation_mask=}")
102-
103-
# topology.shift_trail(2, 1)
104-
sequences = np.ones((
105-
topology.number_of_sequences(),
106-
topology.number_of_trails()),
107-
dtype=np.int32)
108-
sequences *= -1
109-
110-
for tidx, trail in enumerate(topology.trails()):
111-
for node in trail:
112-
seq = topology.node_sequence(node)
113-
sequences[seq][tidx] = node_index[node]
114-
115-
# trail_lengths = np.zeros(topology.number_of_edges())
116-
# for i, edge in enumerate(edges):
117-
# if topology.is_trail_edge(edge):
118-
# trail_lengths[i] = topology.edge_length_2(edge)
119-
120-
trail_lengths = np.zeros(topology.number_of_nodes())
121-
122-
for trail in topology.trails():
123-
for u, v in pairwise(trail):
124-
edge = (u, v)
125-
if edge not in edges:
126-
edge = (v, u)
127-
trail_lengths[u] = topology.edge_length_2(edge)
128-
129-
print(f"{trail_lengths=}")
130-
131-
raise
132-
133-
deviation_forces = np.zeros(topology.number_of_edges())
134-
for i, edge in enumerate(edges):
135-
if topology.is_deviation_edge(edge):
136-
deviation_forces[i] = topology.edge_force(edge)
137-
138-
print(f"{deviation_forces=}")
139-
140-
loads = list(topology.node_load(node) for node in nodes)
141-
loads = np.asarray(loads)
142-
143-
positions = list(topology.node_coordinates(node) for node in nodes)
144-
positions = np.asarray(positions)
145-
146-
residuals = []
147-
residual = np.zeros((topology.number_of_trails(), 3))
148-
149-
150-
def residual_vector(r, d, q):
151-
return r - d - q
152-
153-
def position_vector(p, r, l, t):
154-
return p + l * (r / t)
155-
156-
def trail_force(r):
157-
return np.linalg.norm(residual, axis=1, keepdims=True)
158-
159-
deviation = np.ones((topology.number_of_trails(), 3)) * -1.0
160-
161-
# iterate over sequences
162-
for sequence in sequences:
163-
load = loads[sequence, :]
164-
position_last = positions[sequence, :]
165-
# tlength = trail_lengths[sequence, :]
166-
167-
# deviation = deviation_vector(sequence, positions, adjacency, deviation_mask)
168-
residual = residual_vector(residual, deviation, load)
169-
residuals.append(residual)
170-
171-
tforce = trail_force(residual)
172-
tlength = 1.
173-
174-
position_new = position_vector(position_last, residual, tlength, tforce)
175-
176-
print(sequence)
177-
print(load)
178-
print(position_last)
179-
print(f"{position_last=}")
180-
print("residual\n", residual)
181-
print("trail force\n", tforce)
182-
print(f"{position_new=}")
183-
184-
print()
185-
position_last = position_new
186-
187-
print("ok")
64+
form = static_equilibrium(topology, eta=1e-6, tmax=100, verbose=True)
18865

18966
# ------------------------------------------------------------------------------
19067
# Plot results
19168
# ------------------------------------------------------------------------------
19269

193-
if plot:
194-
plotter = Plotter()
70+
plotter = Plotter()
19571

196-
# add topology diagram to scene
197-
artist = plotter.add(topology,
198-
nodesize=0.2,
199-
nodetext="sequence",
200-
nodecolor="sequence",
201-
show_nodetext=True)
72+
# add topology diagram to scene
73+
artist = plotter.add(topology, nodesize=0.2, show_nodetext=True, show_edgetext=True)
20274

20375

204-
# add shifted form diagram to the scene
205-
# form = form.transformed(Translation.from_vector([0.0, -1.0, 0.0]))
206-
# plotter.add(form, nodesize=0.2, show_edgetext=True, edgetext="sequence")
76+
# add shifted form diagram to the scene
77+
form = form.transformed(Translation.from_vector([0.0, -1.0, 0.0]))
78+
plotter.add(form, nodesize=0.2, show_nodetext=True, show_edgetext=True)
20779

208-
# show plotter contents
209-
plotter.zoom_extents()
210-
plotter.show()
80+
# show plotter contents
81+
plotter.zoom_extents()
82+
plotter.show()

0 commit comments

Comments
 (0)