Exemplo n.º 1
0
    def test_cord2r_1(self):
        grid = ['GRID       20143       7 -9.31-4  .11841 .028296']
        coord = [
            'CORD2R         7           1.135 .089237  -.0676    .135 .089237  -.0676',
            '           1.135 .089237   .9324'
        ]

        model = BDF(debug=False)
        card = model._process_card(grid)
        model.add_card(card, card[0])

        card = model._process_card(coord)
        model.add_card(card, card[0])
        model.cross_reference()

        g = model.Node(20143)
        #print(g.Position(debug=False))

        # by running it through Patran...
        #GRID     20143          1.1067  .207647 -.068531
        diff = g.Position() - array([1.106704, .207647, -0.068531])

        msg = 'diff=%s' % diff
        assert allclose(diff, 0.), msg
        coord = model.Coord(7)
        coord.T()
        self.assertTrue(array_equal(coord.T(), coord.beta_n(2)))
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    def test_cord2r_02(self):
        grid = ['GRID       20143       7 -9.31-4  .11841 .028296']
        coord = [
            'CORD2R         7           1.135 .089237  -.0676    .135 .089237  -.0676',
            '           1.135 .089237   .9324'
        ]

        model = BDF(debug=False)
        card = model._process_card(grid)
        model.add_card(card, card[0])

        card = model._process_card(coord)
        model.add_card(card, card[0])
        model.cross_reference()
        coord = model.Coord(7)
        #print(coord.origin)
        #print(coord.i, coord.j, coord.k)

        node = model.Node(20143)
        xyzp1 = Position(node.xyz, node.cp, model)
        xyzp2 = Position(node.xyz, node.cp_ref, model)
        xyz = node.get_position()
        assert np.array_equal(xyz, xyzp1)
        assert np.array_equal(xyz, xyzp2)

        xyz_same = PositionWRT([1., 2., 3.], 100, 100, model)
        assert np.array_equal(xyz_same, [1., 2., 3.])

        xyz_wrt_p1 = PositionWRT(node.xyz, node.cp, 0, model)
        xyz_wrt_p2 = PositionWRT(node.xyz, node.cp_ref, 0, model)
        xyz_wrt = node.get_position_wrt(model, 0)
        assert np.array_equal(xyz, xyz_wrt_p1)
        assert np.array_equal(xyz, xyz_wrt_p2)
        assert np.array_equal(xyz, xyz_wrt)

        # by running it through Patran...
        #GRID     20143          1.1067  .207647 -.068531
        expected = array([1.106704, .207647, -0.068531])
        diff = xyz - expected

        msg = '\nexpected=%s \nactual  =%s \ndiff    =%s' % (expected, xyz, diff)
        assert allclose(diff, 0.), msg
        coord = model.Coord(7)
        coord.beta_n(1)
        coord.beta_n(2)
        coord.beta_n(3)
        coord.beta_n(6)
        with self.assertRaises(AttributeError):
            self.assertTrue(array_equal(coord.T(), coord.beta_n(2)))
        #with self.assertRaises(NotImplementedError):
            #self.assertTrue(array_equal(coord.T(), coord.beta_n(2)))

        model2 = BDF(debug=False)
        cid = 7
        origin = [1.135, .089237, -.0676]
        zaxis = [.135, .089237, -.0676]
        xzplane = [1.135, .089237, .9324]
        coord2 = model2.add_cord2r(cid, origin, zaxis, xzplane, rid=0, comment='cord2r')
        coord2.comment = ''
        assert coord == coord2, 'coord:\n%r\ncoord2:\n%r' % (str(coord), str(coord2))
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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')
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
    def test_dmig_06(self):
        lines = ['DMIG    ENFORCE 0       1       1       0']
        model = BDF(debug=False)
        card = model._process_card(lines)
        card_obj = BDFCard(card)

        size = 8
        dmi = DMIG.add_card(card_obj)
        dmi.write_card(size, 'dummy')
Exemplo n.º 10
0
    def test_dmi_01(self):
        """tests a DMI card"""
        lines = ['DMI,Q,0,6,1,0,,4,4']
        model = BDF(debug=False)
        card = model._process_card(lines)
        card_obj = BDFCard(card)

        size = 8
        dmi = DMI.add_card(card_obj)
        dmi.write_card(size, 'dummy')
Exemplo n.º 11
0
    def test_support1_01(self):
        lines = ['SUPORT1, 1,      126']
        bdf = BDF(debug=False)
        card = bdf._process_card(lines)
        cardi = BDFCard(card)

        size = 8
        con = SUPORT1.add_card(cardi)
        con.write_card(size, 'dummy')
        con.raw_fields()
Exemplo n.º 12
0
    def test_support1_01(self):
        lines = ['SUPORT1, 1,      126']
        model = BDF(debug=False)
        card = model._process_card(lines)
        cardi = BDFCard(card)

        size = 8
        con = SUPORT1.add_card(cardi)
        con.write_card(size, 'dummy')
        con.raw_fields()
        save_load_deck(model)
Exemplo n.º 13
0
 def test_pbar_1(self):
     """tests the PBAR BDF add"""
     area = 0.0
     i11 = 4.9e-2
     i22 = 5.5e-2
     i12 = 6.6e-2
     j = 7.7e-2
     nsm = 1.0
     fields = [
         u'PBAR',
         1510998,
         1520998,
         area,
         i11,
         i22,
         j,
         nsm,
         None,
         0.0,
         0.0,
         0.0,
         0.0,
         0.0,
         0.0,
         0.0,
         0.0,
         None,
         None,
         i12,
     ]
     card = print_card_8(fields)
     #print(card)
     card = print_card_8(fields)
     lines = card.split('\n')
     model = BDF(debug=False)
     card = model._process_card(lines)
     cardi = BDFCard(card)
     pbar = PBAR.add_card(cardi)
     pbar.raw_fields()
     self.assertEqual(pbar.A, area)
     self.assertEqual(pbar.i1, i11)
     self.assertEqual(pbar.i2, i22)
     self.assertEqual(pbar.i12, i12)
     self.assertEqual(pbar.j, j)
     self.assertEqual(pbar.k1, None)
     self.assertEqual(pbar.k2, None)
     self.assertEqual(pbar.nsm, nsm)
     assert np.allclose(pbar.Area(), area)
     assert np.allclose(pbar.I11(), i11)
     assert np.allclose(pbar.I22(), i22)
     assert np.allclose(pbar.I12(), i12)
     assert np.allclose(pbar.J(), j)
     assert np.allclose(pbar.Nsm(), nsm)
Exemplo n.º 14
0
 def test_cord2_rcs_03(self):
     """
     all points are located at <30,40,50>
     """
     model = BDF(debug=False)
     cards = [
         [
             'CORD2S*                2               0              0.              0.',
             '*                     0.              0.              0.              1.*       ',
             '*                     1.              0.              1.',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 30 : rectangular in spherical',
             'CORD2R*               30               2             14.             30.',
             '*                    70.    13.431863852   32.1458443949   75.2107442927*       ',
             '*          14.4583462334   33.4569982885   68.2297989286',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 31 : cylindrical in spherical',
             'CORD2C*               31               2              3.             42.',
             '*                  -173.   2.86526881213   45.5425615252   159.180363517*       ',
             '*          3.65222385965   29.2536614627  -178.631312271',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 32 : spherical in spherical',
             'CORD2S*               32               2             22.             14.',
             '*                    85.   22.1243073983   11.9537753718   77.9978191005*       ',
             '*          21.0997242967   13.1806120497   88.4824763008',
         ],
         [
             'GRID*                 30              30   40.7437952957  -23.6254877994',
             '*           -33.09784854               0',
         ],
         [
             'GRID*                 31              31   62.9378078196   15.9774797923',
             '*          31.0484428362               0',
         ],
         [
             'GRID*                 32              32   53.8270847449   95.8215692632',
             '*          159.097767463               0',
         ],
     ]
     for lines in cards:
         card = model._process_card(lines)
         model.add_card(card, card[0])
     model.cross_reference()
     for nid in model.nodes:
         a = array([30., 40., 50.])
         b = model.Node(nid).Position()
         self.assertTrue(
             allclose(array([30., 40., 50.]),
                      model.Node(nid).Position()), str(a - b))
Exemplo n.º 15
0
 def test_cord2_rcs_02(self):
     """
     all points are located at <30,40,50>
     """
     model = BDF(debug=False)
     cards = [
         [
             'CORD2C*                1               0              0.              0.',
             '*                     0.              0.              0.              1.*       ',
             '*                     1.              0.              1.',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 20 : rectangular defined in cylindrical',
             'CORD2R*               20               1              7.             20.',
             '*                    -6.   7.07106781187   28.1301023542             -6.*       ',
             '*          7.70710678119             20.  -5.29289321881',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 21 : cylindrical defined in cylindrical',
             'CORD2C*               21               1             15.            -30.',
             '*                    12.   14.6565766735  -30.3177805524   12.9355733712*       ',
             '*          14.6234241583  -26.4257323272   11.9304419665',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 22 : spherical defined in cylindrical',
             'CORD2S*               22               1              5.            -75.',
             '*                    20.   5.66032384035  -82.9319986389   19.8502545865*       ',
             '*          4.88876051026  -73.8006653677   19.0116094889',
         ],
         [
             'GRID*                 20              20   64.2559135157  -14.9400459772',
             '*          27.3271005317               0',
         ],
         [
             'GRID*                 21              21   52.8328862418  -28.8729017195',
             '*           34.615939507               0',
         ],
         [
             'GRID*                 22              22   61.1042111232   158.773483595',
             '*           -167.4951724               0',
         ],
     ]
     for lines in cards:
         card = model._process_card(lines)
         model.add_card(card, card[0])
     model.cross_reference()
     for nid in model.nodes:
         a = array([30., 40., 50.])
         b = model.Node(nid).Position()
         self.assertTrue(
             allclose(array([30., 40., 50.]),
                      model.Node(nid).Position()), str(a - b))
Exemplo n.º 16
0
    def test_cbush_01(self):
        """tests a CBUSH"""
        model = BDF(debug=False)
        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()
Exemplo n.º 17
0
    def test_cord1r_01(self):
        """simple CORD1R input/output test"""
        lines = ['cord1r,2,1,4,3']
        model = BDF(debug=False)
        card = model._process_card(lines)
        card = BDFCard(card)

        size = 8
        coord = CORD1R.add_card(card)
        self.assertEqual(coord.Cid(), 2)
        self.assertEqual(coord.Rid(), 0)
        coord.write_card(size, 'dummy')
        coord.raw_fields()
Exemplo n.º 18
0
    def test_pelas_01(self):
        """tests PELAS"""
        lines = ['pelas, 201, 1.e+5']
        model = BDF(debug=False)
        card = model._process_card(lines)
        card = BDFCard(card)

        size = 8
        elem = PELAS.add_card(card)
        elem.write_card(size, 'dummy')
        elem.raw_fields()
        self.assertEqual(elem.Pid(), 201)
        self.assertEqual(elem.K(), 1e5)
Exemplo n.º 19
0
    def test_set1_01(self):
        bdf = BDF(debug=False)
        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')
Exemplo n.º 20
0
    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))
Exemplo n.º 21
0
    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()
Exemplo n.º 22
0
    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_object(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_object(card)
        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))
Exemplo n.º 23
0
    def test_cdamp1_01(self):
        """tests a CDAMP1"""
        model = BDF(debug=False)
        lines = ['CDAMP1, 2001, 20, 1001, 1']
        card = model._process_card(lines)
        card = BDFCard(card)

        size = 8
        elem = CDAMP1.add_card(card)
        self.assertEqual(elem.eid, 2001)
        self.assertEqual(elem.Pid(), 20)
        node_ids = elem.node_ids
        assert node_ids == [1001, None], node_ids
        elem.write_card(size, 'dummy')
        elem.raw_fields()
Exemplo n.º 24
0
 def test_cord2_rcs_01(self):
     """
     all points are located at <30,40,50>
     """
     model = BDF(debug=False)
     cards = [
         [
             #'$ Femap with NX Nastran Coordinate System 10 : rectangular defined in a rectangular',
             'CORD2R*               10               0             10.              5.',
             '*                     3.   10.3420201433   4.53015368961   3.81379768136*       ',
             '*          10.7198463104   5.68767171433   3.09449287122',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 11 : cylindrical defined in rectangular',
             'CORD2C*               11               0              7.              3.',
             '*                     9.   7.64278760969   2.73799736977   9.71984631039*       ',
             '*          7.75440650673   3.37968226211   8.46454486422',
         ],
         [
             #'$ Femap with NX Nastran Coordinate System 12 : spherical defined in rectangular',
             'CORD2S*               12               0             12.              8.',
             '*                     5.   12.6427876097   7.86697777844   5.75440650673*       ',
             '*          12.6634139482   8.58906867688   4.53861076379',
         ],
         [
             'GRID*                 10              10   42.9066011565   34.2422137135',
             '*          28.6442730262               0',
         ],
         [
             'GRID*                 11              11   48.8014631871   78.8394787869',
             '*          34.6037164304               0',
         ],
         [
             'GRID*                 12              12   58.0775343829   44.7276544324',
             '*          75.7955331161               0',
         ],
     ]
     for lines in cards:
         card = model._process_card(lines)
         model.add_card(card, card[0])
     model.cross_reference()
     for nid in model.nodes:
         a = array([30., 40., 50.])
         b = model.Node(nid).get_position()
         self.assertTrue(
             allclose(array([30., 40., 50.]),
                      model.Node(nid).get_position()), str(a - b))
Exemplo n.º 25
0
    def test_mat8_01(self):  # should fail...
        """tests MAT8"""
        #lines = [  # fails???
        #    'MAT8*    4700007        1675.47         1675.47         .33             *   LHIG',
        #    '*   LHIG28.2            210000.         78000.                          *   LHIH',
        #    '*   LHIH1.32-5          1.32-5          75.             1.943           *   LHII',
        #    '*   LHII1.943           1.943           1.943           3.35',
        #]
        lines = [  # fails
            'MAT8*    4700010        2.83+6          1.14+6          .55             *   LHIJ',
            '*   LHIJ717000.         285194.         285194.                         *   LHIK',
            '*   LHIK9.17-6          2.606-5         70.                             *   LHIL',
            '*   LHIL',
        ]
        lines_expected = [
            'MAT8*            4700010        2830000.        1140000.             .55',
            '*                717000.         285194.         285194.',
            '*              .00000917       .00002606             70.',
            '*',
        ]

        log = get_logger(level='warning')
        model = BDF(log=log)
        card = model._process_card(lines)
        #print(print_card_8(card))
        cardi = BDFCard(card)
        card2 = MAT8.add_card(cardi)

        fields = card2.raw_fields()
        msg = print_card_8(fields)
        size = 16
        msg = card2.write_card(size, 'dummy')

        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)
Exemplo n.º 26
0
    def test_cord1c_01(self):
        lines = ['cord1c,2,1,4,3']
        model = BDF(debug=False)
        card = model._process_card(lines)
        cardi = BDFCard(card)

        size = 8
        card = CORD1C.add_card(cardi)
        self.assertEqual(card.Cid(), 2)
        self.assertEqual(card.Rid(), 0)
        card.write_card(size, 'dummy')
        card.raw_fields()

        model = BDF()
        cid = 2
        grid1, grid2, grid3 = 1, 4, 3
        coord = model.add_cord1c(cid, grid1, grid2, grid3, comment='cord1c')
        coord.comment = ''
        assert coord == card, 'card:\n%r\ncoord:\n%r' % (str(coord), str(card))
Exemplo n.º 27
0
    def test_set2_01(self):
        """checks the SET2 card"""
        bdf = BDF(debug=False)
        lines = ['SET2,     110,      10,   -0.1,    1.1,   -0.1,     1.1']
        card = bdf._process_card(lines)
        card = BDFCard(card)

        size = 8
        card = SET2.add_card(card)
        card.write_card(size, 'dummy')
        card.raw_fields()

        card2 = SET2(110, 10, -0.1, 1.1, -0.1, 1.1, comment='')
        card2.write_card(size, 'dummy')
        card2.raw_fields()

        card3 = bdf.add_set2(110, 10, -0.1, 1.1, -0.1, 1.1)
        card3.write_card(size, 'dummy')
        card3.raw_fields()
Exemplo n.º 28
0
    def test_cdamp1_01(self):
        """tests a CDAMP1"""
        log = get_logger(level='warning')
        model = BDF(log=log)
        lines = ['CDAMP1, 2001, 20, 1001, 1']
        card = model._process_card(lines)
        card = BDFCard(card)

        size = 8
        elem = CDAMP1.add_card(card)
        self.assertEqual(elem.eid, 2001)
        self.assertEqual(elem.Pid(), 20)
        node_ids = elem.node_ids
        assert node_ids == [1001, None], node_ids
        elem.write_card(size, 'dummy')
        elem.raw_fields()

        pid = 1
        tbid = 2
        model.add_pdampt(pid, tbid, comment='pdampt')
        save_load_deck(model)
Exemplo n.º 29
0
    def test_damper_01(self):
        """tests PDAMP"""
        lines = ['pdamp, 201, 1.e+5']
        log = get_logger(level='warning')
        model = BDF(log=log)
        card = model._process_card(lines)
        card = BDFCard(card)

        size = 8
        elem = PDAMP.add_card(card)
        elem.write_card(size, 'dummy')
        elem.raw_fields()
        self.assertEqual(elem.Pid(), 201)
        self.assertEqual(elem.B(), 1e5)

        fields = ['pelas', 201, 1.e+5, None, None, 202, 2.e+5]
        card_name = fields[0]
        model.add_card(fields, card_name, comment='', is_list=True,
                       has_none=True)
        assert len(model.properties) == 2, model.properties
        save_load_deck(model)
Exemplo n.º 30
0
    def test_mat11_01(self):
        """tests MAT11"""
        log = get_logger(level='warning')
        model = BDF(log=log)
        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.'
        ]
        card = model._process_card(lines)
        cardi = BDFCard(card)
        mat = MAT11.add_card(cardi)

        fields = mat.raw_fields()
        msg = print_card_8(fields)
        #f = StringIO.StringIO()
        size = 8
        msg = mat.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)

        save_load_deck(model,
                       xref='standard',
                       punch=True,
                       run_remove_unused=False)