Beispiel #1
0
    def testPlasticityRF(self):
        Fy = 4.0

        Fe = 1.0
        Fi = Fe
        self.assertEqual(util._plasticityRF(Fe, Fy), Fi)
        npt.assert_equal(util._plasticityRF(Fe * myones, Fy), Fi * myones)

        Fe = 3.0
        Fr = 4.0 / 3.0
        Fi = Fe * Fr * (1.0 + 3.75 * Fr**2)**(-0.25)
        self.assertEqual(util._plasticityRF(Fe, Fy), Fi)
        npt.assert_equal(util._plasticityRF(Fe * myones, Fy), Fi * myones)
    def testStressLimits(self):
        # Use the API 2U Appendix B as a big unit test!
        ksi_to_si = 6894757.29317831
        lbperft3_to_si = 16.0185
        ft_to_si = 0.3048
        in_to_si = ft_to_si / 12.0
        kip_to_si = 4.4482216 * 1e3

        R_od = 0.5*600 * np.ones((3,)) * in_to_si
        t_wall = 0.75 * np.ones((3,)) * in_to_si
        t_web = 5./8. * np.ones((3,)) * in_to_si
        h_web = 14.0 * np.ones((3,)) * in_to_si
        t_flange = 1.0 * np.ones((3,)) * in_to_si
        w_flange = 10.0 * np.ones((3,)) * in_to_si
        L_stiffener = 5.0 * np.ones((3,)) * ft_to_si
        h_section = 50.0 * np.ones((3,)) * ft_to_si
        E = 29e3 * ksi_to_si * np.ones((3,))
        nu = 0.3 * np.ones((3,))
        sigma_y = 50 * ksi_to_si * np.ones((3,))

        KthG = 0.5748
        FxeL, FreL, FxeG, FreG = util._compute_elastic_stress_limits(R_od, t_wall, h_section, h_web, t_web, w_flange, t_flange,
                                                                     L_stiffener, E, nu, KthG, loading='radial')
        npt.assert_almost_equal(FxeL, 16.074844135928885*ksi_to_si*np.ones((3,)), decimal=1)
        npt.assert_almost_equal(FreL, 19.80252150945599*ksi_to_si*np.ones((3,)), decimal=1)
        npt.assert_almost_equal(FxeG, 37.635953475479639*ksi_to_si*np.ones((3,)), decimal=1)
        npt.assert_almost_equal(FreG, 93.77314503852581*ksi_to_si*np.ones((3,)), decimal=1)

        FxcL = util._plasticityRF(FxeL, sigma_y)
        FxcG = util._plasticityRF(FxeG, sigma_y)
        FrcL = util._plasticityRF(FreL, sigma_y)
        FrcG = util._plasticityRF(FreG, sigma_y)
        npt.assert_almost_equal(FxcL, 1.0*16.074844135928885*ksi_to_si*np.ones((3,)), decimal=1)
        npt.assert_almost_equal(FrcL, 1.0*19.80252150945599*ksi_to_si*np.ones((3,)), decimal=1)
        npt.assert_almost_equal(FxcG, 0.799647237534*37.635953475479639*ksi_to_si*np.ones((3,)), decimal=1)
        npt.assert_almost_equal(FrcG, 0.444735273606*93.77314503852581*ksi_to_si*np.ones((3,)), decimal=1)