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 = []
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)