def test_cord3g(self): """tests the CORD3G card""" cid = 1 #method_es = 'E313' method_es = 'E' method_int = 123 form = 'EQN' thetas = [110, 111, 112] rid = 0 cord3g_e = CORD3G(cid, method_es, method_int, form, thetas, rid, comment='cord3g') fields = BDFCard(cord3g_e.raw_fields()) cord3g_e.repr_fields() cord3g_e.add_card(fields) xyz = [0., 0., 0.] cord3g_e.coord3g_transform_to_global(xyz) method_es = 'S' cord3g_s = CORD3G(cid, method_es, method_int, form, thetas, rid, comment='cord3g') fields = BDFCard(cord3g_s.raw_fields()) cord3g_s.repr_fields() cord3g_s.add_card(fields) with self.assertRaises(NotImplementedError): # TODO: add me cord3g_s.coord3g_transform_to_global(xyz)
def test_gap_01(self): """tests a CGAP/PGAP""" log = get_logger(level='warning') model = BDF(log=log) lines = [ 'CGAP 899 90 21 99 0. 1. 0. 0' ] card = model._process_card(lines) card = BDFCard(card) cgap = CGAP.add_card(card, comment='cgap') node_ids = cgap.node_ids assert node_ids == [21, 99], node_ids self.assertEqual(cgap.eid, 899) self.assertEqual(cgap.Pid(), 90) cgap.write_card(size=8) cgap.raw_fields() lines = ['PGAP 90 1.E+5'] card = model._process_card(lines) card = BDFCard(card) pgap = PGAP.add_card(card, comment='pgap') pgap.write_card(size=8) pgap.write_card(size=16) self.assertEqual(pgap.Pid(), 90) pgap.raw_fields()
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) card = BDFCard(card) card = CORD2C(card) model.add_coord(card) lines = [ 'CORD2R 4 3 10. 0. 5. 10. 90. 5.', ' 10. 0. 6.' ] card = model.process_card(lines) card = BDFCard(card) card = CORD2R(card) model.add_coord(card) model.cross_reference() cord2r = model.Coord(3) self.assertEquals(cord2r.Cid(), 3) self.assertEquals(cord2r.Rid(), 0) cord2r = model.Coord(4) self.assertEquals(cord2r.Cid(), 4) self.assertEquals(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_dmi_01(self): lines = ['DMI,Q,0,6,1,0,,4,4'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = DMI(card) card.write_card(size, 'dummy')
def test_dmi_01(self): lines = ['DMI,Q,0,6,1,0,,4,4'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = DMI(card) card.write_bdf(size, 'dummy')
def test_set1_01(self): lines = ['SET1, 1100, 100, 101'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = SET1(card) card.write_card(size, 'dummy') card.raw_fields()
def test_aestat_01(self): lines = ['AESTAT 502 PITCH'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = AESTAT.add_card(card) card.write_card(size, 'dummy') card.raw_fields()
def test_dmig_06(self): lines = ['DMIG ENFORCE 0 1 1 0'] model = BDF(debug=False) card = model.process_card(lines) card = BDFCard(card) size = 8 card = DMIG(card) card.write_card(size, 'dummy')
def test_support1_01(self): lines = ['SUPORT1, 1, 126'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = SUPORT1(card) card.write_bdf(size, 'dummy') card.rawFields()
def test_pload4_02(self): lines = ['PLOAD4 1 101 1. 10000 10011'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = PLOAD4(card) card.write_card(size, 'dummy') card.raw_fields()
def test_dmig_06(self): lines = ['DMIG ENFORCE 0 1 1 0'] bdf = BDF(debug=False) card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = DMIG(card) card.write_bdf(size, 'dummy')
def test_cpenta_01(self): lines = ['CPENTA,85,22,201,202,203,205,206,207,+PN2', '+PN2,209,210,217, , , ,213,214,218'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CPENTA15(card) card.write_bdf(size, 'dummy') card.raw_fields()
def test_cdamp1_01(self): lines = ['CDAMP1, 2001, 20, 1001, 1'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CDAMP1(card) self.assertEquals(card.Eid(), 2001) self.assertEquals(card.Pid(), 20) card.write_bdf(size, 'dummy') card.rawFields()
def test_cord1c_01(self): lines = ["cord1c,2,1,4,3"] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CORD1C(card) self.assertEqual(card.Cid(), 2) self.assertEqual(card.Rid(), 0) card.write_card(size, "dummy") card.raw_fields()
def test_cpenta_01(self): lines = ["CPENTA,85,22,201,202,203,205,206,207,+PN2", "+PN2,209,210,217, , , ,213,214,", ",218"] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CPENTA15.add_card(card) card.write_card(size, "dummy") node_ids = card.node_ids assert node_ids == [201, 202, 203, 205, 206, 207, 209, 210, 217, None, None, None, 213, 214, 218], node_ids card.raw_fields()
def test_cord1s_01(self): lines = ['cord1s,2,1,4,3'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CORD1S(card) self.assertEqual(card.Cid(), 2) self.assertEqual(card.Rid(), 0) card.write_card(size, 'dummy') card.raw_fields()
def test_set1_01(self): lines = ['SET1, 1100, 100, 101'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = SET1.add_card(card) card.write_card(size, 'dummy') card.raw_fields() card2 = SET1(1100, [100, 101], is_skin=False, comment='') card2.write_card(size, 'dummy')
def test_cdamp1_01(self): lines = ['CDAMP1, 2001, 20, 1001, 1'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CDAMP1(card) self.assertEqual(card.Eid(), 2001) self.assertEqual(card.Pid(), 20) node_ids = card.node_ids assert node_ids == [1001, None], node_ids card.write_card(size, 'dummy') card.raw_fields()
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_pelas_01(self): lines = ['pelas, 201, 1.e+5'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = PELAS(card) card.write_bdf(size, 'dummy') card.rawFields() self.assertEquals(card.Pid(), 201) self.assertEquals(card.K(), 1e5)
def test_cbush_01(self): lines = ['cbush,101,102,1,,,,,0'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CBUSH(card) self.assertEquals(card.Eid(), 101) self.assertEquals(card.Pid(), 102) card.write_bdf(size, 'dummy') card.raw_fields()
def test_crod_01(self): lines = ['CROD 10 100 10 2'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CROD(card) card.write_bdf(size, 'dummy') card.rawFields() self.assertEquals(card.Eid(), 10) self.assertEquals(card.Pid(), 100)
def test_gap_01(self): """tests a CGAP/PGAP""" log = get_logger(level='warning') model = BDF(log=log) lines = [ 'CGAP 899 90 21 99 0. 1. 0. 0' ] card = model._process_card(lines) card = BDFCard(card) cgap = CGAP.add_card(card, comment='cgap') node_ids = cgap.node_ids assert node_ids == [21, 99], node_ids self.assertEqual(cgap.eid, 899) self.assertEqual(cgap.Pid(), 90) cgap.write_card(size=8) cgap.raw_fields() model.elements[899] = cgap lines = ['PGAP 90 1.E+5'] card = model._process_card(lines) card = BDFCard(card) pgap = PGAP.add_card(card, comment='pgap') pgap.write_card(size=8) pgap.write_card(size=16) self.assertEqual(pgap.Pid(), 90) pgap.raw_fields() model.properties[90] = pgap model.add_grid(3, [-1., 0., 0.]) model.add_grid(21, [0., 0., 0.]) model.add_grid(99, [1., 0., 0.]) eid = 100 pid = 90 nids = [21, 99] x = None g0 = 3 cid = None cgap = model.add_cgap(eid, pid, nids, x, g0, cid, comment='cgap') node_ids = cgap.node_ids assert node_ids == [21, 99], node_ids self.assertEqual(cgap.eid, 100) self.assertEqual(cgap.Pid(), 90) cgap.write_card(size=8) cgap.raw_fields() model.cross_reference() save_load_deck(model)
def test_rbe2_02(self): lines = [ 'RBE2 100045 166007 123456 117752 101899 117766 101898 117748', '+ 117765 117764 117763 109821 117743 117744 117750 117751', '+ 117745 117746 101902 ', ] card = bdf._process_card(lines) card = BDFCard(card) rbe = RBE2.add_card(card) fields = rbe.raw_fields() msg = print_card_8(fields).rstrip() lines_expected = [ 'RBE2 100045 166007 123456 117752 101899 117766 101898 117748', ' 117765 117764 117763 109821 117743 117744 117750 117751', ' 117745 117746 101902 0.' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg) dependent_nid_to_components = check_rbe(rbe) expected = { 117763: '123456', 117764: '123456', 117765: '123456', 117766: '123456', 101898: '123456', 101899: '123456', 101902: '123456', 117743: '123456', 117744: '123456', 117745: '123456', 117746: '123456', 117748: '123456', 117750: '123456', 117751: '123456', 117752: '123456', 109821: '123456' } assert dependent_nid_to_components == expected, dependent_nid_to_components model = BDF(debug=None, log=None, mode='msc') eid = rbe.eid gn = rbe.gn cm = rbe.cm Gmi = rbe.Gmi alpha = rbe.alpha model.add_rbe2(eid, gn, cm, Gmi, alpha=alpha, comment='rbe2') nids = [ 117752, 101899, 117766, 101898, 117748, 117765, 117764, 117763, 109821, 117743, 117744, 117750, 117751, 117745, 117746, 101902, 166007 ] for nid in nids: model.add_grid(nid, [0., 0., 0.]) save_load_deck(model)
def test_cord1s_01(self): lines = ['cord1s,2,1,4,3'] model = BDF(debug=False) card = model._process_card(lines) cardi = BDFCard(card) size = 8 card = CORD1S.add_card(cardi) self.assertEqual(card.Cid(), 2) self.assertEqual(card.Rid(), 0) card.write_card(size, 'dummy') card.raw_fields() model = BDF(debug=False) model.set_error_storage(nparse_errors=0, stop_on_parsing_error=True, nxref_errors=0, stop_on_xref_error=True) cid = 2 grid1, grid2, grid3 = 1, 4, 3 coord = model.add_cord1s(cid, grid1, grid2, grid3, comment='cord1c') coord.comment = '' assert coord == card, 'card:\n%r\ncoord:\n%r' % (str(coord), str(card)) make_tri(model) coord.cross_reference(model) model2 = deepcopy(model) model2.cross_reference() save_load_deck(model2, run_renumber=False) unused_cord2s = coord.to_cord2x(model, rid=0) model.pop_parse_errors() model.pop_xref_errors() model.coords[cid] = coord model.cross_reference() save_load_deck(model, run_renumber=False)
def test_pbeam_06(self): """tests a nasty PBEAM""" bdf = BDF(debug=False) lines = [ 'PBEAM 1 1 1. 60. 1. PBEAM1', '+BEAM1 5. -5. PBEAM2', '+BEAM2 YES 1. 2. 240. PBEAM3', '+BEAM3 10. -10. PBEAM4', '+BEAM4 -.666667', ] card = bdf.process_card(lines) cardi = BDFCard(card) card2 = PBEAM.add_card(cardi) fields = card2.raw_fields() lines_expected = [ 'PBEAM 1 1 1. 60. 1. 0. 0. 0.', ' 5. 0. -5. 0. 0. 0. 0. 0.', ' YES 1. 2. 240. 1. 0. 0. 0.', ' 10. 0. -10. 0. 0. 0. 0. 0.', ' 1. 1.-.666667 0. 0. 0. 0. 0.', ' 0. 0. 0. 0. 0. 0. 0. 0.', ] self._compare(fields, lines_expected)
def test_aeros_1(self): """checks the AEROS card""" #acsid = 0. #velocity = None cref = 1.0 bref = 2.0 sref = 100. acsid = 0 rcsid = 0 aeros = AEROS.add_card(BDFCard(['AERO', acsid, rcsid, cref, bref, sref])) aeros = AEROS(cref, bref, sref, acsid, rcsid, sym_xz=0, sym_xy=0, comment='aeros card') aeros.validate() aeros.write_card() aeros.raw_fields() acsid = None rcsid = None sym_xz = None sym_xy = None aeros = AEROS(cref, bref, sref, acsid, rcsid, sym_xz=sym_xz, sym_xy=sym_xy, comment='aeros card') aeros.validate() aeros.write_card() aeros.raw_fields()
def test_rbe3_01(self): lines = [ 'rbe3,6, ,3,123456,1.0,123456,41,4,+rbe3', '+rbe3,alpha,2.0e-4', ] card = bdf._process_card(lines) card = BDFCard(card) rbe = RBE3.add_card(card) fields = rbe.raw_fields() msg = print_card_8(fields).rstrip() lines_expected = [ 'RBE3 6 3 123456 1. 123456 41 4', ' ALPHA .0002' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg) dependent_nid_to_components = check_rbe(rbe) #print('dependent_nid_to_components = ', dependent_nid_to_components) assert dependent_nid_to_components == { 3: '123456' }, dependent_nid_to_components
def test_mat1_01(self): """tests MAT1 initialization from a BDFCard""" # #MAT5 1 700. 300. 900. 400. 200. 600. 90.+ #+ .1 mid = 1 E = 2e7 G = 3e7 nu = 0.4 rho = 1e-50 fields = ['MAT1', mid, E, G, nu, rho] card = BDFCard(fields) mat1 = MAT1.add_card(card) self.assertEqual(mid, mat1.Mid()) self.assertEqual(E, mat1.E()) self.assertEqual(G, mat1.G()) self.assertEqual(nu, mat1.Nu()) self.assertEqual(rho, mat1.Rho()) size = 8 msg = mat1.write_card(size, 'dummy') self.assertEqual(msg, 'MAT1 1 2.+7 3.+7 .4 1.-50\n') size = 16 expected = 'MAT1* 1 20000000. 30000000. .4\n* 1.-50\n' actual = mat1.write_card(size, is_double=False) msg = 'actual=\n%s\nexpected=\n%s' % (actual, expected) self.assertEqual(actual, expected, msg)
def test_pbeam_02(self): lines = [ 'PBEAM,39,6,2.9,3.5,5.97', ' , , ,2.0,-4.0', ' ,YES,1.0,5.3,56.2,78.6', ' , , ,2.5,-5.0', ' ,YES,1.0,5.3,56.2,78.6', ' , , ,2.5,-5.0', ' ,YES,1.0,5.3,56.2,78.6', ' , , ,2.5,-5.0', ' , , ,1.1, ,2.1,,0.21', ' , , , , ,0.5,,0.0', ] card = bdf.process_card(lines) card = BDFCard(card) card2 = PBEAM(card) fields = card2.raw_fields() lines_expected = [ 'PBEAM 39 6 2.9 3.5 5.97 0. 0. 0.', ' 0. 0. 2. -4. 0. 0. 0. 0.', ' YES 1. 5.3 56.2 78.6 0. 0. 0.', ' 0. 0. 2.5 -5. 0. 0. 0. 0.', ' YES 1. 5.3 56.2 78.6 0. 0. 0.', ' 0. 0. 2.5 -5. 0. 0. 0. 0.', ' YES 1. 5.3 56.2 78.6 0. 0. 0.', ' 0. 0. 2.5 -5. 0. 0. 0. 0.', ' 1. 1. 1.1 0. 2.1 2.1 .21 .21', ' 0. 0. 0. 0. .5 .5 0. 0.' ] self._compare(fields, lines_expected)
def test_mat11_01(self): """tests MAT11""" lines = [ 'MAT11 1 1.+75000000. 700000. .1 .13 .267000000.+', '+ 9000000.3000000. .1 1.-5 7.-6 8.-6 50.', ] lines_expected = [ 'MAT11 1 1.+75000000. 700000. .1 .13 .267000000.', ' 9000000.3000000. .1 .00001 .000007 .000008 50.' ] model = BDF(debug=False) card = model.process_card(lines) cardi = BDFCard(card) card2 = MAT11.add_card(cardi) fields = card2.raw_fields() msg = print_card_8(fields) #f = StringIO.StringIO() size = 8 msg = card2.write_card(size, 'dummy') #msg = f.getvalue() #print(msg) lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) #print(msg) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): msg = '\nactual = %r\n' % actual msg += 'expected = %r' % expected self.assertEqual(actual, expected, msg)
def test_rbe1_01(self): lines = [ 'RBE1 10201 10201 123 10202 456', ' UM 10201 456 10202 123', ] card = bdf._process_card(lines) #print(print_card_8(card)) card = BDFCard(card) rbe = RBE1.add_card(card) fields = rbe.raw_fields() msg = print_card_8(fields).rstrip() lines_expected = [ 'RBE1 10201 10201 123 10202 456', ' UM 10201 456 10202 123' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg) dependent_nid_to_components = check_rbe(rbe) assert dependent_nid_to_components == { 10201: '456', 10202: '123' }, dependent_nid_to_components
def test_rbe1_03(self): lines = [ 'rbe1,46,3,123456, , , , , ,+rbe46', '+rbe46,UM,4,123456,5,123456,2.0-6' ] card = bdf._process_card(lines) card = BDFCard(card) rbe = RBE1.add_card(card) fields = rbe.raw_fields() msg = print_card_8(fields).rstrip() lines_expected = [ 'RBE1 46 3 123456', ' UM 4 123456 5 123456 .000002' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg) dependent_nid_to_components = check_rbe(rbe) assert dependent_nid_to_components == { 4: '123456', 5: '123456' }, dependent_nid_to_components
def test_pbeam_01(self): """tests a nasty PBEAM""" lines = [ 'PBEAM,39,6,2.9,3.5,5.97', ' , , ,2.0,-4.0', ' ,YES,1.0,5.3,56.2,78.6', ' , , ,2.5,-5.0', ' , , ,1.1, ,2.1,,0.21', ' , , , , ,0.5,,0.0', ] bdf = BDF(debug=False) card = bdf.process_card(lines) #print(print_card_8(card)) cardi = BDFCard(card) card2 = PBEAM.add_card(cardi) fields = card2.raw_fields() lines_expected = [ 'PBEAM 39 6 2.9 3.5 5.97 0. 0. 0.', ' 0. 0. 2. -4. 0. 0. 0. 0.', ' YES 1. 5.3 56.2 78.6 0. 0. 0.', ' 0. 0. 2.5 -5. 0. 0. 0. 0.', ' 1. 1. 1.1 0. 2.1 2.1 .21 .21', ' 0. 0. 0. 0. .5 .5 0. 0.' ] self._compare(fields, lines_expected)
def test_cord1s_01(self): lines = ['cord1s,2,1,4,3'] model = BDF(debug=False) card = model._process_card(lines) cardi = BDFCard(card) size = 8 card = CORD1S.add_card(cardi) self.assertEqual(card.Cid(), 2) self.assertEqual(card.Rid(), 0) card.write_card(size, 'dummy') card.raw_fields() model = BDF(debug=False) cid = 2 grid1, grid2, grid3 = 1, 4, 3 coord = model.add_cord1s(cid, grid1, grid2, grid3, comment='cord1c') coord.comment = '' assert coord == card, 'card:\n%r\ncoord:\n%r' % (str(coord), str(card)) model.add_grid(1, [0., 0., 0.]) model.add_grid(3, [0., 0., 1.]) model.add_grid(4, [1., 0., 1.]) coord.cross_reference(model) unused_cord2s = coord.to_cord2x(model, rid=0)
def test_rbe2_02(self): lines = [ 'RBE2 100045 166007 123456 117752 101899 117766 101898 117748', '+ 117765 117764 117763 109821 117743 117744 117750 117751', '+ 117745 117746 101902 ', ] card = bdf.process_card(lines) card = BDFCard(card) #print(card) card2 = RBE2(card) fields = card2.raw_fields() msg = print_card(fields).rstrip() #print(msg) lines_expected = [ 'RBE2 100045 166007 123456 117752 101899 117766 101898 117748', ' 117765 117764 117763 109821 117743 117744 117750 117751', ' 117745 117746 101902 0.' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg)
def test_rbe1_01(self): lines = [ 'RBE1 10201 10201 123 10202 456', ' UM 10201 456 10202 123', ] card = bdf.process_card(lines) #print(print_card(card)) card = BDFCard(card) #print(card) card2 = RBE1(card) fields = card2.raw_fields() msg = print_card(fields).rstrip() #print(msg) lines_expected = [ 'RBE1 10201 10201 123 10202 456', ' UM 10201 456 10202 123' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg)
def test_cbush_01(self): """tests a CBUSH""" log = get_logger(level='warning') model = BDF(log=log) lines = ['cbush,101,102,1,,,,,0'] card = model._process_card(lines) card = BDFCard(card) size = 8 elem = CBUSH.add_card(card) self.assertEqual(elem.eid, 101) self.assertEqual(elem.Pid(), 102) elem.write_card(size, 'dummy') elem.raw_fields() pid = 101 k_tables = [201] b_tables = [202] ge_tables = [203] kn_tables = [204] model.add_pbusht(pid, k_tables, b_tables, ge_tables, kn_tables, comment='pbusht') save_load_deck(model)
def test_rbe1_03(self): lines = [ 'rbe1,46,3,123456, , , , , ,+rbe46', '+rbe46,UM,4,123456,5,123456,2.0-6' ] card = bdf.process_card(lines) #print(print_card(card)) card = BDFCard(card) #print(card) card2 = RBE1(card) fields = card2.raw_fields() msg = print_card(fields).rstrip() #print(msg) lines_expected = [ 'RBE1 46 3 123456', ' UM 4 123456 5 123456 .000002' ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg)
def test_cpenta_01(self): lines = [ 'CPENTA,85,22,201,202,203,205,206,207,+PN2', '+PN2,209,210,217, , , ,213,214,', ',218' ] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CPENTA15(card) card.write_card(size, 'dummy') node_ids = card.node_ids assert node_ids == [201, 202, 203, 205, 206, 207, 209, 210, 217, None, None, None, 213, 214, 218], node_ids card.raw_fields()
def test_mat11_01(self): lines = [ # fails 'MAT11 1 1.+75000000. 700000. .1 .13 .267000000.+', '+ 9000000.3000000. .1 1.-5 7.-6 8.-6 50.', ] lines_expected = [ 'MAT11 1 1.+75000000. 700000. .1 .137000000.9000000.', ' 3000000. .1 .00001 .000007 .000008 50.' ] card = bdf.process_card(lines) card = BDFCard(card) card2 = MAT11(card) fields = card2.raw_fields() msg = print_card(fields) #f = StringIO.StringIO() size = 8 msg = card2.write_bdf(size, 'dummy') #msg = f.getvalue() #print(msg) lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) #print(msg) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): msg = 'actual = %r\n' % actual msg += 'expected = %r' % expected self.assertEqual(actual, expected, msg)
def test_mat1_01(self): # #MAT5 1 700. 300. 900. 400. 200. 600. 90.+ #+ .1 mid = 1 E = 2e7 G = 3e7 nu = 0.4 rho = 1e-50 fields = ['MAT1', mid, E, G, nu, rho] card = BDFCard(fields) mat1 = MAT1(card) self.assertEquals(mid, mat1.Mid()) self.assertEquals(E, mat1.E()) self.assertEquals(G, mat1.G()) self.assertEquals(nu, mat1.Nu()) self.assertEquals(rho, mat1.Rho()) size = 8 msg = mat1.write_bdf(size, 'dummy') self.assertEquals( msg, 'MAT1 1 2.+7 3.+7 .4 1.-50\n') size = 16 msg = mat1.write_bdf(size, 'dummy') self.assertEquals( msg, 'MAT1* 1 20000000. 30000000. .4\n* 1.-50\n' )
def test_rbe1_02(self): lines = [ 'RBE1 1001 1000 123456', ' UM 1002 123 1003 123 1004 123', ' 1005 123 1006 123 1008 123', ' 1009 123 1010 123 1011 123', ' 1012 123', ] card = bdf.process_card(lines) #print(print_card_8(card)) card = BDFCard(card) rbe = RBE1.add_card(card) fields = rbe.raw_fields() msg = print_card_8(fields).rstrip() lines_expected = [ 'RBE1 1001 1000 123456', ' UM 1002 123 1003 123 1004 123', ' 1005 123 1006 123 1008 123', ' 1009 123 1010 123 1011 123', ' 1012 123', ] lines_actual = msg.rstrip().split('\n') msg = '\n%s\n\n%s\n' % ('\n'.join(lines_expected), msg) msg += 'nlines_actual=%i nlines_expected=%i' % (len(lines_actual), len(lines_expected)) self.assertEqual(len(lines_actual), len(lines_expected), msg) for actual, expected in zip(lines_actual, lines_expected): self.assertEqual(actual, expected, msg)
def test_cpenta_01(self): """tests a cpenta15""" lines = [ 'CPENTA,85,22,201,202,203,205,206,207,+PN2', '+PN2,209,210,217, , , ,213,214,', ',218' ] bdf = BDF(debug=False) card = bdf.process_card(lines) card = BDFCard(card) solid = CPENTA15.add_card(card, comment='cpenta15') solid.write_card(size=8, is_double=False) solid.write_card(size=16, is_double=False) solid.raw_fields() node_ids = solid.node_ids assert node_ids == [ 201, 202, 203, 205, 206, 207, 209, 210, 217, None, None, None, 213, 214, 218 ], node_ids nids = [ 201, 202, 203, 205, 206, 207, 209, 210, 217, None, None, None, 213, 214, 218 ] CPENTA15.add_card(card, comment='spike') eid = 85 pid = 22 bdf.add_cpenta(eid, pid, nids, comment='spike')
def test_pgap_01(self): lines = ['PGAP 90 1.E+5'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = PGAP(card) card.write_card(size, 'dummy') self.assertEqual(card.Pid(), 90) card.raw_fields()
def test_crod_01(self): lines = ['CROD 10 100 10 2'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CROD(card) card.write_bdf(size, 'dummy') card.raw_fields() self.assertEquals(card.Eid(), 10) self.assertEquals(card.Pid(), 100)
def test_pelas_01(self): lines = ['pelas, 201, 1.e+5'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = PELAS(card) card.write_card(size, 'dummy') card.raw_fields() self.assertEqual(card.Pid(), 201) self.assertEqual(card.K(), 1e5)
def test_cgap_01(self): lines = ['CGAP 899 90 21 99 0. 1. 0. 0'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CGAP(card) self.assertEquals(card.Eid(), 899) self.assertEquals(card.Pid(), 90) card.write_bdf(size, 'dummy') card.rawFields()
def test_cbush_01(self): lines = ['cbush,101,102,1,,,,,0'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CBUSH(card) self.assertEqual(card.Eid(), 101) self.assertEqual(card.Pid(), 102) card.write_card(size, 'dummy') card.raw_fields()
def test_darea_01(self): # #DAREA SID P1 C1 A1 P2 C2 A2 #DAREA 3 6 2 8.2 15 1 10.1 lines = ['DAREA,3,6,2,8.2,15,1,10.1'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = DAREA(card) card.write_card(size, 'dummy') card.raw_fields()
def test_cgap_01(self): lines = ['CGAP 899 90 21 99 0. 1. 0. 0'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CGAP(card) node_ids = card.node_ids assert node_ids == [21, 99], node_ids self.assertEqual(card.Eid(), 899) self.assertEqual(card.Pid(), 90) card.write_card(size, 'dummy') card.raw_fields()
def test_crod_01(self): lines = ['CROD 10 100 10 2'] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CROD(card) card.write_card(size, 'dummy') card.raw_fields() self.assertEqual(card.Eid(), 10) self.assertEqual(card.Pid(), 100) node_ids = card.node_ids assert node_ids == [10, 2], node_ids # probably wrong
def test_conrod_01(self): eid = 10 nid1 = 2 nid2 = 3 mid = 5 A = 27.0 lines = ['conrod,%i, %i, %i, %i, %f' % (eid, nid1, nid2, mid, A)] card = bdf.process_card(lines) card = BDFCard(card) size = 8 card = CONROD(card) card.write_bdf(size, 'dummy') card.raw_fields() self.assertEquals(card.Eid(), eid) self.assertEquals(card.Mid(), mid)