예제 #1
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"])
예제 #2
0
 def test_inclined_roll_force(self):
     ss = se.SystemElements()
     x = [0, 1, 2]
     y = [0, 0, 0]
     ss.add_element_grid(x, y)
     ss.add_support_hinged(1)
     ss.add_support_roll(3, angle=45)
     ss.point_load(2, Fy=-100)
     ss.solve()
     self.assertAlmostEqual(50, ss.get_node_results_system(3)["Fx"])
예제 #3
0
 def test_inclined_roll_force(self):
     ss = se.SystemElements()
     x = [0, 1, 2]
     y = [0, 0, 0]
     ss.add_element_grid(x, y)
     ss.add_support_hinged(1)
     ss.add_support_roll(3, angle=45)
     ss.point_load(2, Fy=-100)
     ss.solve()
     self.assertAlmostEqual(50, ss.get_node_results_system(3)['Fx'])
예제 #4
0
 def test_rotational_roller_support(self):
     ss = se.SystemElements()
     ss.add_element(location=[(0, 0), (0, 1)])
     ss.add_support_fixed(node_id=1)
     ss.add_support_roll(node_id=2, direction="x", rotate=False)
     ss.q_load(q=-1000, element_id=1, direction="x")
     ss.point_load(node_id=2, Fy=-100)
     ss.solve()
     self.assertAlmostEqual(0.0083333, ss.get_node_results_system(2)["ux"])
     self.assertAlmostEqual(0.0, 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"])
예제 #5
0
파일: test.py 프로젝트: pavloae/anaStruct
 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"])
예제 #6
0
 def test_load_cases(self):
     ss = se.SystemElements()
     ss.add_truss_element(location=[[0, 0], [1000, 0]])
     ss.add_truss_element(location=[[0, 0], [500, 500]])
     ss.add_truss_element(location=[[500, 500], [1000, 0]])
     ss.add_support_hinged(node_id=2)
     ss.add_support_roll(node_id=1, direction="x", angle=None)
     lc_dead = LoadCase("dead")
     lc_dead.point_load(node_id=[1], Fx=10)
     combination = LoadCombination("ULS")
     combination.add_load_case(lc_dead, factor=1.4)
     results = combination.solve(ss)
     self.assertAlmostEqual(0, results["dead"].get_node_results_system(1)["Fx"])
     self.assertAlmostEqual(14, results["dead"].get_node_results_system(2)["Fx"])
예제 #7
0
 def test_inclined_roll_equal_to_horizontal_roll(self):
     ss = se.SystemElements()
     x = [0, 1, 2]
     y = [0, 1, 0]
     ss.add_element_grid(x, y)
     ss.add_support_hinged(1)
     ss.add_support_roll(3, "x")
     ss.point_load(2, Fy=-100)
     ss.solve()
     u1 = ss.get_node_results_system(3)
     ss = se.SystemElements()
     ss.add_element_grid(x, y)
     ss.add_support_hinged(1)
     ss.add_support_roll(3, angle=0)
     ss.point_load(2, Fy=-100)
     ss.solve()
     u2 = ss.get_node_results_system(3)
     for k in u1:
         self.assertTrue(np.isclose(u1[k], u2[k]))
예제 #8
0
 def test_inclined_roll_equal_to_horizontal_roll(self):
     ss = se.SystemElements()
     x = [0, 1, 2]
     y = [0, 1, 0]
     ss.add_element_grid(x, y)
     ss.add_support_hinged(1)
     ss.add_support_roll(3, 'x')
     ss.point_load(2, Fy=-100)
     ss.solve()
     u1 = ss.get_node_results_system(3)
     ss = se.SystemElements()
     ss.add_element_grid(x, y)
     ss.add_support_hinged(1)
     ss.add_support_roll(3, angle=0)
     ss.point_load(2, Fy=-100)
     ss.solve()
     u2 = ss.get_node_results_system(3)
     for k in u1:
         self.assertTrue(np.isclose(u1[k], u2[k]))