def test_cord2c_01(self): lines = [ 'CORD2C* 3 0 0. 0.', '* 0. 0. 0. 1.*', '* 1. 0. 1.' ] model = BDF(debug=False) card = model.process_card(lines) cardi = BDFCard(card) coord = CORD2C.add_card(cardi) model.add_coord(coord) lines = [ 'CORD2R 4 3 10. 0. 5. 10. 90. 5.', ' 10. 0. 6.' ] card = model.process_card(lines) cardi = BDFCard(card) coord = CORD2R.add_card(cardi) model.add_coord(coord) model.cross_reference() cord2r = model.Coord(3) self.assertEqual(cord2r.Cid(), 3) self.assertEqual(cord2r.Rid(), 0) cord2r = model.Coord(4) self.assertEqual(cord2r.Cid(), 4) self.assertEqual(cord2r.Rid(), 3) self.assertTrue(allclose(cord2r.i, array([0., 0., 1.]))) delta = cord2r.j - array([1., 1., 0.]) / 2**0.5 self.assertTrue(allclose(cord2r.j, array([1., 1., 0.]) / 2**0.5), str(delta)) delta = cord2r.k - array([-1., 1., 0.]) / 2**0.5 self.assertTrue(allclose(cord2r.k, array([-1., 1., 0.]) / 2**0.5), str(delta))
def test_caero3_1(self): """checks the CAERO3/PAERO3""" eid = 100 pid = 200 cp = 4 list_w = 5 list_c1 = 6 list_c2 = 7 p1 = [0., 0., 0.] x12 = 10. p4 = [5., 10., 0.] x43 = 3. nbox = 10 ncontrol_surfaces = 0 x = None y = None log = SimpleLogger(level='warning') model = BDF(log=log) 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 paero = PAERO3(pid, nbox, ncontrol_surfaces, x, y) model.paeros[pid] = paero card = ['CAERO3', 2000, 20001, 0, 22, 33, None, None, None, 1.0, 0.0, 0., 100., 17., 130., 0., 100.] bdf_card = BDFCard(card, has_none=True) caero3a = CAERO3.add_card(bdf_card, comment='msg') caero3a.validate() caero3a.write_card() caero3a.raw_fields() caero3b = CAERO3(eid, pid, cp, list_w, list_c1, list_c2, p1, x12, p4, x43, comment='caero3') model.caeros[pid] = caero3b caero3b.write_card() caero3b.cross_reference(model) caero3b.write_card() caero3a.raw_fields() caero3b.uncross_reference() caero3b.write_card() caero3a.raw_fields()
def test_cord2c_01(self): """simple CORD2R/CORD2C input/output test""" lines = [ 'CORD2C* 3 0 0. 0.', '* 0. 0. 0. 1.*', '* 1. 0. 1.' ] model = BDF(debug=False) card = model.process_card(lines) cardi = BDFCard(card) cord2c = CORD2C.add_card(cardi) model._add_coord_object(cord2c) lines = [ 'CORD2R 4 3 10. 0. 5. 10. 90. 5.', ' 10. 0. 6.' ] card = model.process_card(lines) cardi = BDFCard(card) cord2r = CORD2R.add_card(cardi) model._add_coord_object(cord2r) model.cross_reference() cord2r_b = model.Coord(3) self.assertEqual(cord2r_b.Cid(), 3) self.assertEqual(cord2r_b.Rid(), 0) cord2r_c = model.Coord(4) self.assertEqual(cord2r_c.Cid(), 4) self.assertEqual(cord2r_c.Rid(), 3) self.assertTrue(allclose(cord2r_c.i, array([0., 0., 1.]))) delta = cord2r_c.j - array([1., 1., 0.]) / 2**0.5 self.assertTrue(allclose(cord2r_c.j, array([1., 1., 0.]) / 2**0.5), str(delta)) delta = cord2r_c.k - array([-1., 1., 0.]) / 2**0.5 self.assertTrue(allclose(cord2r_c.k, array([-1., 1., 0.]) / 2**0.5), str(delta))
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()