def test_csschd(self): """checks the CSSCHD card""" #sid = 10 #aesid = 0 #lalpha = None #lmach = None #lschd = None sid = 5 aesid = 50 lalpha = 12 lmach = 15 lschd = 25 card = ['CSSCHD', sid, aesid, lalpha, lmach, lschd] bdf_card = BDFCard(card, has_none=True) csshcd1 = CSSCHD.add_card(bdf_card, comment='csschd card') csshcd1.validate() csshcd1.write_card() label = 'ELEV' cid1 = 0 alid1 = 37 aesurf = AESURF(aesid, label, cid1, alid1) aefact_sid = alid1 Di = [0., 0.5, 1.] aefact_elev = AEFACT(aefact_sid, Di) aefact_sid = lalpha Di = [0., 5., 10.] aefact_alpha = AEFACT(aefact_sid, Di) aefact_sid = lmach Di = [0., 0.7, 0.8] aefact_mach = AEFACT(aefact_sid, Di) aefact_sid = lschd Di = [0., 15., 30., 45.] aefact_delta = AEFACT(aefact_sid, Di) model = BDF() model._add_aesurf_object(aesurf) model._add_aefact_object(aefact_elev) model._add_aefact_object(aefact_alpha) model._add_aefact_object(aefact_mach) model._add_aefact_object(aefact_delta) csshcd1.cross_reference(model) csshcd1.write_card() csshcd1.uncross_reference() csshcd1.write_card() #----------- lalpha = None lmach = None csshcd2 = CSSCHD(sid, aesid, lschd, lalpha=lalpha, lmach=lmach, comment='cssch card') csshcd2.write_card() with self.assertRaises(RuntimeError): csshcd2.validate()
def test_aefact_1(self): """checks the AEFACT card""" data = ['AEFACT', 97, .3, 0.7, 1.0] log = SimpleLogger(level='warning') model = BDF(log=log) model.add_card(data, data[0], comment_bad, is_list=True) data = ['AEFACT', 97, .3, 0.7, 1.0] model.add_card(data, data[0], comment_bad, is_list=True) data = ['AEFACT', '98', '.3', '0.7', '1.0'] model.add_card(data, data[0], comment_good, is_list=True) msg = '$this is a bad comment\nAEFACT 97 .3 .7 1.\n' aefact97 = model.aefacts[97] aefact98 = model.aefacts[98] self.assertTrue(all(aefact97.Di == [.3, .7, 1.0])) self.assertTrue(all(aefact98.Di == [.3, .7, 1.0])) out = aefact97.write_card(8, None) self.assertEqual(msg, out) msg = '$this is a good comment\nAEFACT 98 .3 .7 1.\n' out = aefact98.write_card(8, None) self.assertEqual(msg, out) #data = ['AEFACT', 99, .3, 0.7, 1.0, None, 'cat'] #with self.assertRaises(SyntaxError): #model.add_card(data, data[0], comment_good, is_list=True) #data = ['AEFACT', 100, .3, 0.7, 1.0, 'cat'] #with self.assertRaises(SyntaxError): #model.add_card(data, data[0], comment_good, is_list=True) #data = ['AEFACT', 101, .3, 0.7, 1.0, 2] #with self.assertRaises(SyntaxError): #model.add_card(data, data[0], comment_good, is_list=True) Di = [1., 2., 3.] aefact = AEFACT(200, Di, comment='') aefact.validate() aefact.write_card()
def test_caero2_1(self): """checks the CAERO2/PAERO2/AERO/AEFACT card""" log = SimpleLogger(level='warning') model = BDF(log=log) eid = 1 pid = 10 cp = 4 nsb = 0 nint = 0 lsb = 3 lint = 6 igid = 0 p1 = [0., 1., 2.] x12 = 10. caero = CAERO2.add_card(BDFCard(['CAERO2', eid, pid, cp, nsb, nint, lsb, lint, igid, ] + p1 + [x12])) #--------------- caero = CAERO2(eid, pid, igid, p1, x12, cp=cp, nsb=0, nint=nint, lsb=0, lint=lint, comment='this is a caero') with self.assertRaises(ValueError): caero.validate() caero = CAERO2(eid, pid, igid, p1, x12, cp=cp, nsb=lsb, nint=0, lsb=lsb, lint=0, comment='this is a caero') with self.assertRaises(ValueError): caero.validate() #--------------- caero = CAERO2(eid, pid, igid, p1, x12, cp=cp, nsb=nsb, nint=nint, lsb=lsb, lint=lint, comment='this is a caero') caero.validate() caero.write_card() aefact = AEFACT.add_card(BDFCard(['AEFACT', lint, 0., 1., 2., 3., 4., 5.])) aefact = AEFACT(lint, [0., 1., 2., 3., 4., 5.]) aefact.validate() aefact.write_card() model.aefacts[lint] = aefact orient = 'Z' width = 10. AR = 2. lrsb = 0 lrib = 3 lth1 = 0 lth2 = 0 thi = [0] thn = [0] paero = PAERO2.add_card(BDFCard(['PAERO2', pid, orient, width, AR, lrsb, lrib, lth1, lth2] + thi + thn), comment='paero') paero = PAERO2(pid, orient, width, AR, lrsb, lrib, lth1, lth2, thi, thn) paero.validate() paero.write_card() model.paeros[pid] = paero coord = CORD2R.add_card(BDFCard(['CORD2R', cp, 0, 0., 0., 0., 0., 0., 1., 1., 0., 0.])) coord = CORD2R(cp, rid=0, origin=None, zaxis=None, xzplane=None, comment='') coord.validate() model.coords[cp] = coord aefact = AEFACT(lrib, [0., 1., 2., 3., 4., 5.]) aefact.validate() model.aefacts[lrib] = aefact acsid = 0 velocity = None cref = 1.0 rho_ref = 1.0 aero = AERO.add_card(BDFCard(['AERO', acsid, velocity, cref, rho_ref])) aero = AERO(velocity, cref, rho_ref, acsid=acsid, comment='') aero.validate() aero.write_card() model.aero = aero paero.cross_reference(model) caero.cross_reference(model) paero.raw_fields() caero.raw_fields() caero.uncross_reference() caero.raw_fields() caero.cross_reference(model) caero.get_points_elements_3d() caero.get_points() #caero.get_points_elements_3d() xyz, elems = caero.get_points_elements_3d() model.uncross_reference() model.safe_cross_reference() model.uncross_reference() model.write_bdf('aero.temp') os.remove('aero.temp') model.cross_reference() model.write_bdf('aero.temp') os.remove('aero.temp') nsb = 4 nint = 2 lsb = None lint = None caero2 = CAERO2(eid, pid, igid, p1, x12, cp=cp, nsb=nsb, nint=nint, lsb=lsb, lint=lint, comment='this is a caero') caero2.validate() caero2.cross_reference(model) caero2.write_card()
def test_caero1_1(self): """checks the CAERO1/PAERO1/AEROS/AEFACT card""" eid = 1 pid = 10 cp = 4 nspan = None lspan = 3 nchord = None lchord = 4 igid = 0 p1 = [0., 0., 0.] x12 = 5. p4 = [2., 3., 4.] x43 = 1. log = SimpleLogger(level='warning') model = BDF(log=log) caero = CAERO1.add_card(BDFCard(['CAERO1', eid, pid, cp, nspan, nchord, lspan, lchord, igid, ] + p1 + [x12] + p4 + [x43])) caero.validate() caero = CAERO1.add_card(BDFCard(['CAERO1', eid, pid, None, nspan, nchord, lspan, lchord, igid, ] + p1 + [x12] + p4 + [x43])) caero.validate() caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') caero.raw_fields() caero.validate() caero.write_card() model.caeros[eid] = caero p1 = [0., 0., 0.] p2 = [1., 0., 0.] p3 = [0.2, 1., 0.] p4 = [0.1, 1., 0.] nspan = 5 nchord = 10 igid = -1 caeroq = CAERO1.add_quad(eid, pid, cp, nspan, nchord, igid, p1, p2, p3, p4, spanwise='y', comment='') caeroq.validate() span = 0.1 chord = 0.05 igid = -1 caeroq = CAERO1.add_quad(eid, pid, cp, span, chord, igid, p1, p2, p3, p4, spanwise='y', comment='') caeroq.validate() p1 = [0., 0., 0.] p2 = [1., 0., 0.] p3 = [0.2, 0., 1.] p4 = [0.1, 0., 1.] span = 0.1 chord = 0.05 igid = -1 caeroq = CAERO1.add_quad(eid, pid, cp, span, chord, igid, p1, p2, p3, p4, spanwise='z', comment='') caeroq.validate() paero = PAERO1(pid, Bi=None, comment='') paero.validate() paero.write_card() model.paeros[pid] = paero coord = CORD2R(cp, rid=0, origin=None, zaxis=None, xzplane=None, comment='') coord.validate() model.coords[cp] = coord #acsid = 0. #velocity = None cref = 1.0 bref = 2.0 sref = 100. acsid = 0 rcsid = 0 aeros = AEROS(cref, bref, sref, acsid, rcsid, sym_xz=0, sym_xy=0, comment='') aeros.validate() aeros.write_card() model.aeros = aeros aefact = AEFACT(lspan, [0., 1., 2., 3., 4., 5.]) aefact.validate() model.aefacts[lspan] = aefact aefact = AEFACT(lchord, [2., 3., 4., 5., 6., 7.]) aefact.validate() model.aefacts[lchord] = aefact paero.cross_reference(model) caero.cross_reference(model) caero.get_npanel_points_elements() caero.get_points() caero.panel_points_elements() caero.write_card() model.uncross_reference() model.cross_reference() model.uncross_reference() #model.safe_cross_reference() caero.safe_cross_reference(model) caero.panel_points_elements() caero.raw_fields() min_max_eid = caero.min_max_eid self.assertEqual(min_max_eid, [1, 26]) #print('min_eid, max_eid', min_eid, max_eid) points = [ [0., 0., 0.], # p1 [10., 0., 0.], [10., 20., 0.], [5., 20., 0.], ] caero.set_points(points) caero.get_points() str(caero.write_card()) nspan = None lspan = None caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') with self.assertRaises(ValueError): caero.validate() nspan = 5 lspan = 5 caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') with self.assertRaises(ValueError): caero.validate() nspan = 5 nchord = None lchord = None caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') with self.assertRaises(ValueError): caero.validate() nchord = 10 lchord = 10 caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') with self.assertRaises(ValueError): caero.validate() lspan = None lchord = None nspan = 10 nchord = 10 p1 = [0., 0., 0., 0.] caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') with self.assertRaises(AssertionError): caero.validate() p1 = [0., 0., 0.] p4 = [1., 2., 3., 4.] caero = CAERO1(eid, pid, cp, nspan, lspan, nchord, lchord, igid, p1, x12, p4, x43, comment='caero1') with self.assertRaises(AssertionError): caero.validate()