import compas_vibro from compas.datastructures import Network for i in range(60): print() # Structure mdl = Structure(name='beam_simple', path=compas_vibro.TEMP + '/') # Elements filepath = os.path.join(compas_vibro.DATA, 'network_10x10.json') network = Network.from_json(filepath) mdl.add_nodes_elements_from_network(network=network, element_type='BeamElement', elset='elset_lines', axes={'ex': [0, 0, 1]}) # Materials mdl.add(ElasticIsotropic(name='mat_elastic', E=20 * 10**9, v=0.3, p=1500)) # Sets mdl.add_set(name='load_pts', selection=[15, 14], type='node') # Section
import os from compas.datastructures import Network from compas.utilities import i_to_rgb from compas_rhino.artists import NetworkArtist HERE = os.path.dirname(__file__) FILE = os.path.join(HERE, 'clusters.json') network = Network.from_json(FILE) artist = NetworkArtist(network, layer="ITA20::Network") artist.clear_layer() nodecolor = { node: i_to_rgb(network.node_attribute(node, 'cluster') / 9) for node in network.nodes() } edgecolor = { edge: i_to_rgb(network.node_attribute(edge[0], 'cluster') / 9) for edge in network.edges() } artist.draw_nodes(color=nodecolor) artist.draw_edges(color=edgecolor)
from compas.datastructures import Network from compas.hpc import drx_numba from compas.numerical import drx_numpy from compas.viewers import VtkViewer from numpy import abs from numpy import array from numpy import max # Network path = '/home/al/downloads/BRG-visit-master/examples/' network = Network.from_json('{0}saddle.json'.format(path)) k_i = network.key_index() uv_i = network.uv_index() fixed = list(network.vertices_where({'is_fixed': True})) network.update_default_edge_attributes({'E': 0.00, 'A': 1, 'ct': 't', 's0': 1}) network.set_vertices_attributes(fixed, {'B': [0, 0, 0]}) # Run X, f, l = drx_numpy(network=network, tol=0.001, refresh=100, update=False, factor=2) X, f, l = drx_numba(network=network, tol=0.001, summary=1, update=True, factor=2)
import compas import compas_rhino # simple functions for assigning constraints from help import get_values from help import get_index from help import edge_constraints from help import map_value_to_all_edges from compas.datastructures import Network from compas.utilities import XFunc from compas_rhino.helpers import NetworkArtist network = Network.from_json('octagon.json') vertices = network.get_vertices_attributes('xyz') edges = list(network.edges()) fixed = list(network.vertices_where({'is_fixed': True})) # q_bnd=18.25 , q_valley=16.25 , q_ridge=13.75 , q_rest=1.0 q = network.get_edges_attribute('q') # edges to assign length constraint (bnd, ridge and valley) lengths = network.edges_where({'l': True}) # edges to assign force constraint (rest) forces = network.edges_where({'f': True}) # FDM with iterative computation of q # LU decomposition for solving lin. system # procedure ends by reaching the num. of steps # lengths from the first iteration step nc0, f0, q0 = XFunc('iter.multistepFDM')(vertices, edges, fixed, q, steps=1)
import compas import compas_rhino # simple functions for assigning constraints from help import get_values from help import get_index from help import edge_constraints from help import map_value_to_all_edges from compas.datastructures import Network from compas.utilities import XFunc from compas_rhino.helpers import NetworkArtist network= Network.from_json('saddle.json') vertices = network.get_vertices_attributes('xyz') edges = list(network.edges()) fixed = list(network.vertices_where({'is_fixed': True})) ## q = 1.0 q = network.get_edges_attribute('q') # force constraints as S=1.0 for all of the bars indexf=get_index(edges,edges) fs = map_value_to_all_edges(edges, 1.0) force_constraints = edge_constraints(indexf, fs) ##FDM with iterative computation of q - tolerance added for the termination of the outer loop ##LU decomposition for solving lin. system ##tolerance for force tol_f = 1.e-4 #nc_lu, f_lu, q_lu = XFunc('iter.multistepFDM_wtol')(vertices, edges, fixed, q, fcs=force_constraints, tol_f=1.e-4, steps=10000) #l_lu = XFunc('iter.list_of_element_lengths')(edges, nc_lu)
self.value = value or random.choice(range(20)) @property def data(self): return {'value': self.value} @data.setter def data(self, data): self.value = data['value'] network = Network() last_node = None for i in range(12): node = network.add_node(x=i // 3, y=i % 3, z=0) network.node_attribute(node, 'weight', Weight()) if last_node: network.add_edge(node, i - 1) last_node = node print(network.summary()) # print(network.to_data()) network.to_json(__file__ + '.json') network2 = Network.from_json(__file__ + '.json') print(network2.summary()) # print(network2.to_data())
import compas import compas_rhino # simple functions for assigning constraints from help import get_values from help import get_index from help import edge_constraints from help import map_value_to_all_edges from compas.datastructures import Network from compas.utilities import XFunc from compas_rhino.helpers import NetworkArtist network= Network.from_json('loop.json') vertices = network.get_vertices_attributes('xyz') edges = list(network.edges()) fixed = list(network.vertices_where({'is_fixed': True})) ## loop=2.0, bnd=10.0, rest=1.0 q = network.get_edges_attribute('q') # edges to assign length constraint (bnd, ridge and valley) lengths = network.edges_where({'l': True}) # edges to assign force constraint (rest) forces = network.edges_where ({'f': True}) #edges to assign unstrained length constraint unstrained = network.edges_where({'l0': True}) # FDM with iterative computation of q # LU decomposition for solving lin. system # procedure ends by reaching the num. of steps