def test_dynamic_with_BladeStiff2D(): print('Testing dynamic analysis with TStiff2D') spb = StiffPanelBay() spb.a = 2. spb.b = 1. spb.stack = [0, 90, 90, 0] spb.plyt = 1e-3*0.125 spb.laminaprop = (142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9) spb.model = 'plate_clt_donnell_bardell' spb.m = 10 spb.n = 10 spb.mu = 1.3e3 spb.add_panel(y1=0, y2=spb.b/2., plyt=spb.plyt) spb.add_panel(y1=spb.b/2., y2=spb.b, plyt=spb.plyt) bb = spb.b/5. bf = bb stiff = spb.add_bladestiff2d(ys=spb.b/2., bf=bf, bb=bb, fstack=[0, 90, 90, 0]*2, fplyt=spb.plyt*1., flaminaprop=spb.laminaprop, bstack=[0, 90, 90, 0]*1, bplyt=spb.plyt*1., blaminaprop=spb.laminaprop, mf=10, nf=10) k0 = spb.calc_k0() M = spb.calc_kM() eigvals, eigvecs = freq(k0, M, silent=True) spb.plot_skin(eigvecs[:, 0], filename='tmp_test_bladestiff2d_dynamic_skin.png', colorbar=True) spb.plot_stiffener(eigvecs[:, 0], si=0, region='flange', filename='tmp_test_bladestiff2d_dynamic_stiff_flange.png', colorbar=True) assert np.isclose(eigvals[0], 25.865835238236173, atol=0.01, rtol=0.001)
def test_static_with_BladeStiff2D(): print('Testing linear statics with BladeStiff2D') spb = StiffPanelBay() spb.a = 2. spb.b = 1. spb.m = 12 spb.n = 13 spb.stack = [0, +45, -45, 90, -45, +45, 0] spb.plyt = 1e-3 * 0.125 spb.laminaprop = (142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9) spb.add_panel(y1=0, y2=spb.b / 2., plyt=spb.plyt) spb.add_panel(y1=spb.b / 2., y2=spb.b, plyt=spb.plyt) bb = spb.b / 5. bf = bb stiff = spb.add_bladestiff2d(ys=spb.b / 2., bf=bf, bb=bb, fstack=[0, 90, 90, 0] * 8, fplyt=spb.plyt * 1., flaminaprop=spb.laminaprop, bstack=[0, 90, 90, 0] * 4, bplyt=spb.plyt * 1., blaminaprop=spb.laminaprop, mf=17, nf=16) stiff.flange.forces.append( [stiff.flange.a / 2., stiff.flange.b, 0., 0., 1000.]) spb.calc_k0() fext = spb.calc_fext() inc, cs = static(spb.k0, fext, silent=True) wpanelmin = spb.uvw_skin(cs[0])[2].min() #NOTE repeated call on purpose to evaluate if cs[0] is being messed up # somewhere wpanelmin = spb.uvw_skin(cs[0])[2].min() wflangemax = spb.uvw_stiffener(cs[0], 0, region='flange')[2].max() #NOTE repeated call on purpose wflangemax = spb.uvw_stiffener(cs[0], 0, region='flange')[2].max() assert np.isclose(wpanelmin, -0.30581458201781481, atol=1.e-4, rtol=0.001) assert np.isclose(wflangemax, 0.331155797371884, atol=1.e-4, rtol=0.001) spb.plot_skin(cs[0], filename='tmp_test_bladestiff2d_static_skin.png', colorbar=True, vec='w', clean=False) spb.plot_stiffener( cs[0], si=0, region='flange', filename='tmp_test_bladestiff2d_stiff_static_flange.png', colorbar=True, clean=False)
def test_bladestiff2d_lb(): print('Testing linear buckling with BladeStiff2D') spb = StiffPanelBay() spb.a = 2. spb.b = 1. spb.stack = [0, +45, -45, 90, -45, +45] spb.plyt = 1e-3 * 0.125 spb.laminaprop = (142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9) spb.model = 'plate_clt_donnell_bardell' spb.m = 17 spb.n = 16 Nxx = -50. spb.add_panel(y1=0, y2=spb.b / 2., plyt=spb.plyt, Nxx=Nxx) spb.add_panel(y1=spb.b / 2., y2=spb.b, plyt=spb.plyt, Nxx=Nxx) bb = spb.b / 5. bf = bb stiff = spb.add_bladestiff2d(ys=spb.b / 2., bf=bf, bb=bb, fstack=[0, 90, 90, 0] * 8, fplyt=spb.plyt * 1., flaminaprop=spb.laminaprop, bstack=[0, 90, 90, 0] * 4, bplyt=spb.plyt * 1., blaminaprop=spb.laminaprop, mf=17, nf=16) spb.calc_k0() spb.calc_kG0() eigvals, eigvecs = lb(spb.k0, spb.kG0, silent=True) spb.plot_skin(eigvecs[:, 0], filename='tmp_test_bladestiff2d_lb_skin.png', colorbar=True) spb.plot_stiffener(eigvecs[:, 0], si=0, region='flange', filename='tmp_test_bladestiff2d_lb_stiff_flange.png', colorbar=True) calc = eigvals[0] * Nxx spb.plot_skin(eigvecs[:, 0], filename='tmp_test_bladestiff2d_lb_skin.png', colorbar=True, vec='w', clean=False) assert np.isclose(calc, -759.05689868085778, atol=0.0001, rtol=0.001)
def test_dynamic_with_BladeStiff2D(): print('Testing dynamic analysis with TStiff2D') spb = StiffPanelBay() spb.a = 2. spb.b = 1. spb.stack = [0, 90, 90, 0] spb.plyt = 1e-3 * 0.125 spb.laminaprop = (142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9) spb.model = 'plate_clt_donnell_bardell' spb.m = 10 spb.n = 10 spb.mu = 1.3e3 spb.add_panel(y1=0, y2=spb.b / 2., plyt=spb.plyt) spb.add_panel(y1=spb.b / 2., y2=spb.b, plyt=spb.plyt) bb = spb.b / 5. bf = bb stiff = spb.add_bladestiff2d(ys=spb.b / 2., bf=bf, bb=bb, fstack=[0, 90, 90, 0] * 2, fplyt=spb.plyt * 1., flaminaprop=spb.laminaprop, bstack=[0, 90, 90, 0] * 1, bplyt=spb.plyt * 1., blaminaprop=spb.laminaprop, mf=10, nf=10) k0 = spb.calc_k0() M = spb.calc_kM() eigvals, eigvecs = freq(k0, M, silent=True) spb.plot_skin(eigvecs[:, 0], filename='tmp_test_bladestiff2d_dynamic_skin.png', colorbar=True) spb.plot_stiffener( eigvecs[:, 0], si=0, region='flange', filename='tmp_test_bladestiff2d_dynamic_stiff_flange.png', colorbar=True) assert np.isclose(eigvals[0], 25.865835238236173, atol=0.01, rtol=0.001)
def test_static_with_TStiff2D(): print('Testing static analysis with TStiff2D') spb = StiffPanelBay() spb.a = 2. spb.b = 1. spb.stack = [0, +45, -45, 90, -45, +45, 0] spb.plyt = 1e-3*0.125 spb.laminaprop = (142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9) spb.model = 'plate_clt_donnell_bardell' spb.m = 12 spb.n = 13 spb.add_panel(y1=0, y2=spb.b/2., plyt=spb.plyt) spb.add_panel(y1=spb.b/2., y2=spb.b, plyt=spb.plyt) bb = spb.b/5. bf = bb stiff = spb.add_tstiff2d(ys=spb.b/2., bf=bf, bb=bb, fstack=[0, 90, 90, 0]*8, fplyt=spb.plyt*1., flaminaprop=spb.laminaprop, bstack=[0, 90, 90, 0]*4, bplyt=spb.plyt*1., blaminaprop=spb.laminaprop, mb=14, nb=13, mf=13, nf=12) stiff.flange.forces.append([spb.a/2., bf, 0., 0., 1000.]) k0 = spb.calc_k0() fext = spb.calc_fext() inc, cs = static(spb.k0, fext, silent=True) wpanelmin = spb.uvw_skin(cs[0])[2].min() wbasemin = spb.uvw_stiffener(cs[0], 0, region='base')[2].min() wflangemax = spb.uvw_stiffener(cs[0], 0, region='flange')[2].max() spb.plot_skin(cs[0], filename='tmp_test_tstiff2d_static_skin.png', colorbar=True, vec='w', clean=False) spb.plot_stiffener(cs[0], si=0, region='base', filename='tmp_test_tstiff2d_static_stiff_base.png', colorbar=True, vec='w', clean=False) spb.plot_stiffener(cs[0], si=0, region='flange', filename='tmp_test_tstiff2d_static_stiff_flange.png', colorbar=True, clean=False)
def test_static_with_BladeStiff2D(): print('Testing linear statics with BladeStiff2D') spb = StiffPanelBay() spb.a = 2. spb.b = 1. spb.m = 12 spb.n = 13 spb.stack = [0, +45, -45, 90, -45, +45, 0] spb.plyt = 1e-3*0.125 spb.laminaprop = (142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9) spb.add_panel(y1=0, y2=spb.b/2., plyt=spb.plyt) spb.add_panel(y1=spb.b/2., y2=spb.b, plyt=spb.plyt) bb = spb.b/5. bf = bb stiff = spb.add_bladestiff2d(ys=spb.b/2., bf=bf, bb=bb, fstack=[0, 90, 90, 0]*8, fplyt=spb.plyt*1., flaminaprop=spb.laminaprop, bstack=[0, 90, 90, 0]*4, bplyt=spb.plyt*1., blaminaprop=spb.laminaprop, mf=17, nf=16) stiff.flange.forces.append([stiff.flange.a/2., stiff.flange.b, 0., 0., 1000.]) spb.calc_k0() fext = spb.calc_fext() inc, cs = static(spb.k0, fext, silent=True) wpanelmin = spb.uvw_skin(cs[0])[2].min() #NOTE repeated call on purpose to evaluate if cs[0] is being messed up # somewhere wpanelmin = spb.uvw_skin(cs[0])[2].min() wflangemax = spb.uvw_stiffener(cs[0], 0, region='flange')[2].max() #NOTE repeated call on purpose wflangemax = spb.uvw_stiffener(cs[0], 0, region='flange')[2].max() assert np.isclose(wpanelmin, -0.30581458201781481, atol=1.e-4, rtol=0.001) assert np.isclose(wflangemax, 0.331155797371884, atol=1.e-4, rtol=0.001) spb.plot_skin(cs[0], filename='tmp_test_bladestiff2d_static_skin.png', colorbar=True, vec='w', clean=False) spb.plot_stiffener(cs[0], si=0, region='flange', filename='tmp_test_bladestiff2d_stiff_static_flange.png', colorbar=True, clean=False)