visit
Learning how to program as an engineer or a student in engineering will help you build structural analyses and finite element tools that might become a startup company like Viktor.
We are going to be using a Python library called . anastructis a Python implementation of the 2D finite element method for structures. It allows you to do a structural analysis of frames and trusses. It helps you to compute the forces and displacements in the structural elements.
Materials
We are going to be computing and plotting the following:
pip install anastruct
from anastruct import SystemElements
We are now going to create our structural element object(ss) by instantiating our SystemElement class that we imported like this:
ss = SystemElements()
Now, we are going to use the add _element method from the systemElement class. What this does is add different members into a frame connected at nodes and the argument locations to add various spans or lengths of the members.
ss.add_element(location=[[0, 0], [0, 2]])
ss.add_element(location=[[0, 2], [0, 4]])
ss.add_element(location=[[0, 4], [3, 4]])
ss.add_element(location=[[3, 4], [4, 4]])
ss.add_element(location=[[4, 4], [6, 4]])
ss.add_element(location=[[6, 4], [7, 4]])
From the original question, We have two internal hinges at nodes 3(B) and 5(2). So, we are adding the internal hinges using the add_inernal_hinges method.
ss.add_internal_hinge(node_id=3)
ss.add_internal_hinge(node_id=5)
ss.add_support_fixed(node_id=1)
ss.add_support_roll(node_id=4)
ss.add_support_roll(node_id=6)
We add horizontal point load at node2 using the point_load method passing the node location, and the magnitude of the load as an argument. Also, for the other point load.
For the uniformly distributed using q_load method is used, and passing the element_id the load is acting on with the magnitude of the load q. The — sign in the load magnitude q signifies the load is acting downward.
ss.point_load(node_id=2,Fx=+5)
ss.q_load(q=-2,element_id=3)
ss.q_load(q=-2,element_id=4)
ss.point_load(node_id=7,Fy=-10)
We use the solve method to compute the reaction forces, bending stresses, shear forces, and axial forces of the frame.
We use the show_reaction_force method to plot the frame with the reaction forces at the supports:
ss.solve()
ss.show_reaction_force()
We use the show bending moment method to plot the bending moment diagram of the frame.
ss.show_bending_moment()
.
To plot the shear force diagram, we use the show shearforce method. The Python plotting is on the left, and the diagram from the manual solution is on the right.
ss.show_shear_force()
ss.show_axial_force()
Also published