Newer
Older
"""
This is an empty docstring.
"""
import numpy as np
class Constraint:
def __init__(self, free):
def is_free(self, c_component):
return self.free[c_component]
class Force:
def __init__(self, force_components):
self.components = np.array(force_components, dtype='float64')
def get_component(self, c_component):
return self.components[c_component]
class Node:
def __init__(self, position):
self.position = np.array(position, dtype='float64')
self.displacement = None
self.constraint = None
self.forces = None
self.dof_numbers = None
def set_constraint(self, new_constraint):
self.constraint = new_constraint
def set_force(self, new_force):
self.force = new_force
def get_position(self):
return self.position
def get_displacement(self):
return self.displacement
def get_constraint(self):
return self.constraint
if self.constraint == None: # corregir esto por un si no existe
self.dof_numbers = [current_dof, current_dof + 1, current_dof + 2]
if self.constraint.is_free(i) == None: # corregir esto por un si no existe
self.dof_numbers[i] = -1
else:
self.dof_numbers[i] = current_dof
current_dof = current_dof + 1
def __init__(self, elastic_modulus, area, node_1, node_2):
self.elastic_modulus = elastic_modulus
self. area = area
self.node_1 = node_1
self.node_2 = node_2
self.dof_numbers
def get_elastic_modulus(self):
return self.elastic_modulus
def get_area(self):
return self.area
def get_node_1(self):
return self.node_1
def get_node_2(self):
return self.node_2
def get_dofs(self):
return self.dof_numbers
K = np.empty((6, 6), dtype='float64')
diff = np.empty((3, 1), dtype='float64')
component_1 = np.empty((3, 3), dtype='float64')
component_2 = np.empty((3, 3), dtype='float64')
diff = self.node_2.get_position() - self.node_1.get_position()
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#component_1 =
#component_2 =
# other operations
def enumerate_dofs(self):
self.dof_numbers = np.concatenate([self.node_1.get_dof_numbers(),
self.node_1.get_dof_numbers()])
def compute_force(self):
position_node_1 = self.get_node_1().get_position()
position_node_2 = self.get_node_2().get_position()
displacement_node_1 = self.get_node_1().get_displacement()
displacement_node_2 = self.get_node_2().get_displacement()
# other operations
#def get_length(self):
class Visualizer:
"""
"""
def __init__(self, struct):
self.struct = struct
self.displacement_scale
self.symbol_scale
self.num_elements = self.struct.get_number_elements()
class Structure:
"""
"""
def __init__(self,):
self.nodes = list()
self.elements = list()
self.structure_displacement
def get_node(self, node_id):
self.nodes[node_id]
def get_element(self, element_id):
self.elements[element_id]
def get_number_elements(self):
return len(self.elements)
def add_node(self, position_new_node):
self.nodes.append(Node(position_new_node))
return self.get_node[-1]
def add_element(self, elastic_modulus, area, node_1_id, node_2_id):
self.elements.append(Element(elastic_modulus, area,
self.get_node[node_1_number],
self.get_node[node_2_number],))
return self.get_element[-1]