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
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
        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())
Exemplo n.º 7
0
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