Beispiel #1
0
    def test_spcoff(self):
        """tests SPCOFF/SPCOFF1"""
        model = BDF(debug=False)
        with self.assertRaises(KeyError):
            model.EmptyNodes([1, 2], msg='')
        #model.add_spcoff()
        card_lines = ['SPCOFF', 1]
        model.add_card(card_lines,
                       'SPCOFF',
                       comment='spcoff',
                       is_list=True,
                       has_none=True)
        spcoff = model.spcoffs['SPCOFF'][0]
        spcoff.write_card(size=8)
        spcoff.write_card(size=16)
        spcoff.raw_fields()
        with self.assertRaises(KeyError):
            spcoff.cross_reference(model)
        model.add_grid(1, [0., 0., 0.])
        spcoff.cross_reference(model)

        card_lines = ['SPCOFF1', 24, 43]
        model.add_card(card_lines,
                       'SPCOFF1',
                       comment='spcoff1',
                       is_list=True,
                       has_none=True)

        card_lines = ['SPCOFF1', 5, 50, 'THRU', 52]
        model.add_card(card_lines,
                       'SPCOFF1',
                       comment='spcoff1',
                       is_list=True,
                       has_none=True)

        model.pop_parse_errors()
        model.pop_xref_errors()
        spcoff1 = model.spcoffs['SPCOFF1'][0]
        spcoff1.write_card(size=8)
        spcoff1.write_card(size=16)
        spcoff1.raw_fields()
        model.uncross_reference()

        with self.assertRaises(KeyError):
            spcoff1.cross_reference(model)
        model.add_grid(43, [0., 0., 0.])
        spcoff1.cross_reference(model)
        model.uncross_reference()

        model.add_grid(50, [0., 0., 0.])
        model.add_grid(51, [0., 0., 0.])
        model.add_grid(52, [0., 0., 0.])
        model.cross_reference()
        model.uncross_reference()
        model.validate()
        model.safe_cross_reference()

        save_load_deck(model,
                       run_remove_unused=False,
                       run_save_load_hdf5=False)
Beispiel #2
0
    def safe_cross_reference(self, model: BDF, xref_errors):
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ', which is required by CELAS4 eid=%s' % self.eid
        self.nodes_ref = model.EmptyNodes(self.node_ids, msg=msg)
Beispiel #3
0
    def cross_reference(self, model: BDF) -> None:
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ', which is required by CELAS4 eid=%s' % (self.eid)
        self.nodes_ref = model.EmptyNodes(self.nodes, msg=msg)
Beispiel #4
0
    def cross_reference(self, model: BDF) -> None:
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ' which is required by %s' % self.type
        self.ids_ref = model.EmptyNodes(self.node_ids, msg=msg)
Beispiel #5
0
    def cross_reference(self, model: BDF) -> None:
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ', which is required by CQUADX8 eid=%s' % self.eid
        self.nodes_ref = model.EmptyNodes(self.node_ids, msg=msg)
        self.pid_ref = model.Property(self.Pid(), msg=msg)
Beispiel #6
0
    def safe_cross_reference(self, model: BDF, xref_errors):
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ', which is required by %s eid=%s' % (self.type, self.eid)
        self.nodes_ref = model.EmptyNodes(self.nodes, msg=msg)
        self.pid_ref = model.safe_property(self.pid,
                                           self.eid,
                                           xref_errors,
                                           msg=msg)
Beispiel #7
0
    def cross_reference(self, model: BDF) -> None:
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ', which is required by CBUSH eid=%s' % self.eid
        self.nodes_ref = model.EmptyNodes(self.node_ids, msg=msg)
        self.pid_ref = model.Property(self.pid, msg=msg)
        if self.g0 is not None:
            self.g0_ref = model.Node(self.g0, msg=msg)
        if self.cid is not None:
            self.cid_ref = model.Coord(self.cid, msg=msg)
        if self.ocid is not None and self.ocid != -1:
            self.ocid_ref = model.Coord(self.ocid, msg=msg)
Beispiel #8
0
    def cross_reference(self, model: BDF) -> None:
        """
        Cross links the card so referenced cards can be extracted directly

        Parameters
        ----------
        model : BDF()
            the BDF object
        """
        msg = ', which is required by CDAMP1 eid=%s' % self.eid
        self.nodes_ref = model.EmptyNodes(self.nodes, msg=msg)

        pid = self.pid
        if pid in model.properties:
            self.pid_ref = model.Property(pid, msg=msg)
        elif pid in model.pdampt:
            self.pid_ref = model.pdampt[pid]
        else:
            pids = model.properties.keys() + model.pdampt.keys()
            pids.sort()
            msg = ('pid=%i not found which is required by CDAMP1 eid=%i.  '
                   'Allowed Pids=%s' % (self.pid, self.eid, pids))
            raise KeyError(msg)