beam = Beam( loads, reactions, l=a + b + c, E=E, Jz=1., ) Rs = beam.get_reactions() print('reactions:\n R_A = {:.2e}N\n R_B = {:.2e}N'.format(Rs[0], Rs[1])) ### computation and plots of bending force and moment ### n = 12 * 5 + 1 x = np.linspace(0, a + b + c, n) plt.plot(x, [beam.force(xi) for xi in x], '.-', label='force') Mo = np.array([beam.moment(xi) for xi in x]) plt.plot(x, Mo, '.-', label='moment') plt.legend(loc='best') plt.grid() ### actual dimensions of the cross-section ### # sigma = Mmax/Wo = Mmax/(Jz/(H/2)) <= sigD # Jz >= H/2*Mmax/sigD # [rectangular cross-section] # Jz = 1/12*B*H**3 = (H/B=2) = # = 1/24*H**4 # H**4 >= 24*H/2*Mmax/sigD # H >= (12*Mmax/sigD)**(1/3)
# going to compute the actual dimensions based on the values # of reaction forces. beam = Beam(loads, reactions, l = a+b+c, E = E, Jz = 1., ) Rs = beam.get_reactions() print('reactions:\n R_A = {:.2e}N\n R_B = {:.2e}N'.format(Rs[0], Rs[1])) ### computation and plots of bending force and moment ### n = 12*5+1 x = np.linspace(0, a+b+c, n) plt.plot(x, [beam.force(xi) for xi in x], '.-', label='force') Mo = np.array([beam.moment(xi) for xi in x]) plt.plot(x, Mo, '.-', label='moment') plt.legend(loc='best') plt.grid() ### actual dimensions of the cross-section ### # sigma = Mmax/Wo = Mmax/(Jz/(H/2)) <= sigD # Jz >= H/2*Mmax/sigD # [rectangular cross-section] # Jz = 1/12*B*H**3 = (H/B=2) = # = 1/24*H**4 # H**4 >= 24*H/2*Mmax/sigD # H >= (12*Mmax/sigD)**(1/3)