def add_load_case(self, lc, factor): """ Add a load case to the load combination. :param lc: (:class:`anastruct.fem.util.LoadCase`) :param factor: (flt) Multiply all the loads in this LoadCase with this factor. """ lc, factor = args_to_lists(lc, factor) for i in range(len(lc)): self.spec[lc[i].name] = [lc[i], factor[i]]
def moment_load(self, node_id, Ty): """ Apply a moment on a node. :param node_id: (int/ list) Nodes ID. :param Ty: (flt/ list) Moments acting on the node. """ node_id, Ty = args_to_lists(node_id, Ty) for i in range(len(node_id)): id_ = _negative_index_to_id(node_id[i], self.node_map.keys()) self.loads_moment[id_] = Ty[i]
def q_load(self, q, element_id, direction="element"): """ Apply a q-load to an element. :param element_id: (int/ list) representing the element ID :param q: (flt) value of the q-load :param direction: (str) "element", "x", "y" """ q, element_id, direction = args_to_lists(q, element_id, direction) for i in range(len(element_id)): id_ = _negative_index_to_id(element_id[i], self.element_map.keys()) self.plotter.max_q = max(self.plotter.max_q, abs(q[i])) self.loads_q[id_] = q[i] * self.orientation_cs * self.load_factor el = self.element_map[id_] el.q_load = q[i] * self.orientation_cs * self.load_factor el.q_direction = direction[i]
def point_load(self, node_id, Fx=0, Fy=0, rotation=0): """ Apply a point load to a node. :param node_id: (int/ list) Nodes ID. :param Fx: (flt/ list) Force in global x direction. :param Fy: (flt/ list) Force in global x direction. :param rotation: (flt/ list) Rotate the force clockwise. Rotation is in degrees. """ node_id, Fx, Fy, rotation = args_to_lists(node_id, Fx, Fy, rotation) for i in range(len(node_id)): id_ = _negative_index_to_id(node_id[i], self.node_map.keys()) self.plotter.max_system_point_load = max(self.plotter.max_system_point_load, (Fx[i] ** 2 + Fy[i] ** 2) ** 0.5) cos = math.cos(math.radians(rotation[i])) sin = math.sin(math.radians(rotation[i])) self.loads_point[id_] = (Fx[i] * cos + Fy[i] * sin, Fy[i] * self.orientation_cs * cos + Fx[i] * sin)