Ejemplo n.º 1
0
    def test_mpc_01(self):
        card = ['MPC', 1, 1002, 1, 1., 1000, 1, -3.861003861]
        card = BDFCard(card)
        mpc = MPC(card)
        #print ' %r' % str(mpc)
        #print '%r' % mpc.write_bdf2(size=8)
        #msg = mpc.write_bdf2(size=8, double=False)
        self.assertEqual(
            'MPC            1    1002       1      1.    1000       1  -3.861\n',
            mpc.write_bdf2(size=8))

        model = BDF()

        card = [
            'MPC            1    1002       4      1.    1000       4-.129394',
            '                    1000       5-7.152-3    1000       6-.013655'
        ]
        msgA = (
            'MPC            1    1002       4      1.    1000       4-.129394\n'
            '                    1000       5-7.152-3    1000       6-.013655\n'
        )

        card = model.add_card(card, 'MPC', is_list=False)
        mpc = MPC(card)
        print('u%r' % msgA)
        print('%r' % mpc.write_bdf2(size=8))
        self.assertEqual(msgA, mpc.write_bdf2(size=8))
        print(mpc, type(mpc))

        card = []
Ejemplo n.º 2
0
def __mirror_mpcs(model: BDF, mirror_model: BDF, nid_offset: int) -> None:
    """mirrors model.rigid_elements"""
    for sid, mpcs in sorted(model.mpcs.items()):
        assert isinstance(mpcs, list), type(mpcs)
        mpcs_new = []
        for mpc in mpcs:
            if mpc.type == 'MPC':
                # coefficients : [1.0, 1.0]
                # components : ['123', '123']
                # node_ids : [1, 4]
                # nodes  : [1, 4]
                new_nids = [
                    nid + nid_offset if nid is not None else None
                    for nid in mpc.node_ids
                ]
                components = deepcopy(mpc.components)
                coefficients = deepcopy(mpc.coefficients)
                mpc_new = MPC(sid, new_nids, components, coefficients)
                mpcs_new.append(mpc_new)
            else:
                mirror_model.log.warning('skipping MPC:\n%s' % str(mpc))
        #print(f'adding {len(mpcs_new)} mpcs')
        model.mpcs[sid].extend(mpcs_new)