Example #1
0
 def test_vertical_spring(self):
     ss = se.SystemElements(mesh=250)
     ss.add_element(
         location=[(0.0, 0), (10.0, 0)], EA=356000.0, EI=1332.0000000000002
     )
     ss.add_support_hinged(node_id=1)
     ss.add_support_spring(node_id=2, translation=2, k=50, roll=False)
     ss.q_load(q=-1.0, element_id=1, direction="y")
     ss.solve()
     self.assertAlmostEqual(0.1, ss.get_node_results_system(2)["uy"])
Example #2
0
 def test_inclined_roll_and_qload(self):
     ss = se.SystemElements(EA=356000, EI=1330)
     ss.add_element(location=[[0, 0], [10, 0]])
     ss.add_support_hinged(node_id=1)
     ss.add_support_roll(node_id=-1, angle=45)
     ss.q_load(q=-1, element_id=1, direction="element")
     ss.solve()
     self.assertAlmostEqual(-5, ss.get_node_results_system(1)["Fx"])
     self.assertAlmostEqual(-5, ss.get_node_results_system(1)["Fy"])
     self.assertAlmostEqual(-5, ss.get_element_results(1)["N"])
Example #3
0
 def test_rotational_support(self):
     ss = se.SystemElements()
     ss.add_element(location=[(0, 0), (1, 0)])
     ss.add_support_fixed(node_id=1)
     ss.add_support_rotational(node_id=2)
     ss.q_load(q=-1000, element_id=1, direction="y")
     ss.point_load(node_id=2, Fx=-100)
     ss.solve()
     self.assertAlmostEqual(0.0066667, ss.get_node_results_system(2)["ux"])
     self.assertAlmostEqual(0.0083333, ss.get_node_results_system(2)["uy"])
     self.assertAlmostEqual(0.0, ss.get_node_results_system(2)["phi_y"])
     self.assertAlmostEqual(-166.6667083, ss.get_node_results_system(2)["Ty"])
Example #4
0
 def test_parallel_trapezoidal_load(self):
     ss = se.SystemElements()
     ss.add_element([0, 1])
     ss.add_element([0, 2])
     ss.add_support_hinged(1)
     ss.add_support_roll(3, "y")
     ss.q_load([0, -0.5], 1, "y")
     ss.q_load([-0.5, -1], 2, "y")
     ss.solve()
     self.assertAlmostEqual(-0.75, ss.get_element_results(2)["Nmin"])
     self.assertAlmostEqual(0, ss.get_element_results(2)["Nmax"])
     self.assertAlmostEqual(-1, ss.get_node_results_system(1)["Fy"])
Example #5
0
 def test_q_and_q_perp(self):
     ss = se.SystemElements()
     ss.add_element([2, 2])
     ss.add_support_hinged(1)
     ss.add_support_hinged(2)
     ss.q_load([-2, -2], 1, "element", q_perp=[-1, -1])
     ss.solve()
     self.assertAlmostEqual(-3, ss.get_node_results_system(1)["Fy"], 6)
     self.assertAlmostEqual(1, ss.get_node_results_system(1)["Fx"], 6)
     self.assertAlmostEqual(np.sqrt(2), ss.get_element_results(1)["Nmax"])
     self.assertAlmostEqual(2 * np.sqrt(2),
                            ss.get_element_results(1)["Qmax"])
Example #6
0
 def test_internal_hinge_symmetry(self):
     ss = se.SystemElements()
     ss.add_element(location=[[0, 0], [5, 0]], spring={2: 0})
     ss.add_element(location=[[5, 0], [10, 0]])
     ss.q_load(element_id=1, q=-9)
     ss.q_load(element_id=2, q=-9)
     ss.add_support_fixed(node_id=1)
     ss.add_support_fixed(node_id=3)
     ss.solve()
     self.assertAlmostEqual(
         ss.get_node_results_system(1)["Fy"],
         ss.get_node_results_system(3)["Fy"])
     self.assertAlmostEqual(
         ss.get_element_results(1)["Mmax"],
         ss.get_element_results(2)["Mmax"])
Example #7
0
 def test_perpendicular_trapezoidal_load(self):
     ss = se.SystemElements()
     ss.add_element(location=[(0, 0), (1, 0)])
     ss.add_element(location=[(1, 0), (2, 1.5)])
     ss.add_support_fixed(node_id=1)
     ss.add_support_fixed(node_id=2)
     ss.q_load(q=(0.1, 1), element_id=2, direction="element")
     ss.point_load(node_id=1, Fx=15)
     ss.point_load(node_id=2, Fy=-5)
     ss.moment_load(node_id=3, Ty=-7)
     ss.solve()
     self.assertAlmostEqual(-0.1, ss.get_element_results(2)["q"][0])
     self.assertAlmostEqual(-1, ss.get_element_results(2)["q"][1])
     self.assertAlmostEqual(0, ss.get_node_results_system(1)["Fy"])
     self.assertAlmostEqual(15, ss.get_node_results_system(1)["Fx"])
     self.assertAlmostEqual(-4.45, ss.get_node_results_system(2)["Fy"])
     self.assertAlmostEqual(-0.825, ss.get_node_results_system(2)["Fx"])
     self.assertAlmostEqual(0, ss.get_node_results_system(1)["Ty"])
     self.assertAlmostEqual(-5.8625, ss.get_node_results_system(2)["Ty"])