Exemple #1
0
 def _read_mat9(self, data, n):
     """
     MAT9(2603,26,300) - record 9
     """
     ntotal = 140
     s = Struct(self._endian + b'i 30f iiii')
     nmaterials = (len(data) - n) // ntotal
     for i in range(nmaterials):
         out = s.unpack(data[n:n + ntotal])
         if self.is_debug_file:
             self.binary_debug.write('  MAT9=%s\n' % str(out))
         assert len(out) == 35, out
         (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13, g14,
          g15, g16, g17, g18, g19, g20, g21, rho, a1, a2, a3, a4, a5, a6,
          tref, ge, blank1, blank2, blank3, blank4) = out
         assert blank1 == 0, blank1
         data_in = [
             mid,
             [
                 g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13,
                 g14, g15, g16, g17, g18, g19, g20, g21
             ], rho, [a1, a2, a3, a4, a5, a6], tref, ge
         ]
         mat = MAT9.add_op2_data(data_in)
         self.add_op2_material(mat)
         n += ntotal
     self.card_count['MAT9'] = nmaterials
     return n
Exemple #2
0
    def _read_mat9(self, data: bytes, n: int) -> int:
        """
        MAT9(2603,26,300) - record 9
        """
        #self.log.info('skipping MAT9')
        #return len(data)
        ndatai = len(data) - n
        if ndatai % 140 == 0:
            s2 = Struct(self._endian + b'i 30f iiii')
            ntotal = 140
        else:  # pragma: no cover
            self.log.warning('unexpected MAT9 format...')
            ntotal = (35 + 21) * 4  # 35
            s2 = Struct(self._endian + b'i 30f iiii 21i')
            #ntotal = 56 * 4
            #s1 = Struct(self._endian + b'i 21f 34i')
            #s2 = Struct(self._endian + b'i 21f 34f')
        nmaterials = ndatai // ntotal
        assert ndatai % ntotal == 0, f'ndatai={ndatai} ntotal={ntotal} nmaterials={nmaterials} leftover={ndatai % ntotal}'

        if self.is_debug_file:
            self.binary_debug.write(
                '  MAT9=(mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, '
                'g11, g12, g13, g14, g15, g16, g17, g18, g19, g20, g21, '
                'rho, a1, a2, a3, a4, a5, a6, tref, ge, '
                'blank1, blank2, blank3, blank4)\n')
        for unused_i in range(nmaterials):
            out = s2.unpack(data[n:n + ntotal])
            if self.is_debug_file:
                self.binary_debug.write('    MAT9=%s\n' % str(out))
            if len(out) == 35:
                #print(out)
                (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13,
                 g14, g15, g16, g17, g18, g19, g20, g21, rho, a1, a2, a3, a4,
                 a5, a6, tref, ge, blank1, blank2, blank3, blank4) = out
            else:
                (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13,
                 g14, g15, g16, g17, g18, g19, g20, g21, rho, a1, a2, a3, a4,
                 a5, a6, tref, ge, blank1, blank2, blank3, blank4,
                 *blanks) = out
                self.show_data(data[n:n + ntotal], types='if')
                self.log.debug(blanks)
            assert blank1 == 0, blank1
            data_in = [
                mid,
                [
                    g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13,
                    g14, g15, g16, g17, g18, g19, g20, g21
                ], rho, [a1, a2, a3, a4, a5, a6], tref, ge
            ]
            mat = MAT9.add_op2_data(data_in)
            try:
                self.add_op2_material(mat)
            except AssertionError:
                print(mat)
                self.card_count['MAT9'] = nmaterials
                return len(data)
            n += ntotal
        self.card_count['MAT9'] = nmaterials
        return n
Exemple #3
0
    def _read_mat9(self, data, n):
        """
        MAT9(2603,26,300) - record 9
        """
        #self.log.info('skipping MAT9')
        #return len(data)
        #if 1:
        ntotal = 140  # 35
        s2 = Struct(self._endian + b'i 30f iiii')
        #else:  # pragma: no cover
        #ntotal = 56 * 4
        #s1 = Struct(self._endian + b'i 21f 34i')
        #s2 = Struct(self._endian + b'i 21f 34f')
        nmaterials = (len(data) - n) // ntotal
        #assert nmaterials % ntotal == 0, self.numwide

        if self.is_debug_file:
            self.binary_debug.write(
                '  MAT9=(mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, '
                'g11, g12, g13, g14, g15, g16, g17, g18, g19, g20, g21, '
                'rho, a1, a2, a3, a4, a5, a6, tref, ge, '
                'blank1, blank2, blank3, blank4)\n')
        for unused_i in range(nmaterials):
            #self.show_data(data[n:n+ntotal], types='if')
            out = s2.unpack(data[n:n + ntotal])
            if self.is_debug_file:
                self.binary_debug.write('    MAT9=%s\n' % str(out))
            assert len(out) == 35, out
            #print(out)
            (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13, g14,
             g15, g16, g17, g18, g19, g20, g21, rho, a1, a2, a3, a4, a5, a6,
             tref, ge, blank1, blank2, blank3, blank4) = out
            assert blank1 == 0, blank1
            data_in = [
                mid,
                [
                    g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13,
                    g14, g15, g16, g17, g18, g19, g20, g21
                ], rho, [a1, a2, a3, a4, a5, a6], tref, ge
            ]
            #print(data_in)
            mat = MAT9.add_op2_data(data_in)
            self.add_op2_material(mat)
            n += ntotal
        self.card_count['MAT9'] = nmaterials
        return n
Exemple #4
0
 def _readMAT9(self, data, n):
     """
     MAT9(2603,26,300) - record 9
     .. todo:: buggy
     """
     #print "reading MAT9"
     s = Struct(b'22i9f4i')
     nmaterials = (len(data) - n) // 140
     for i in xrange(nmaterials):
         out = s.unpack(data[n:n+140])
         (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13, g14, g15, g16, g17, g18, g19, g20, g21,
          rho, a1, a2, a3, a4, a5, a6, TRef, ge, blank1, blank2, blank3, blank4) = out
         dataIn = [mid, [g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13, g14, g15, g16, g17, g18, g19, g20, g21],
                   rho, [a1, a2, a3, a4, a5, a6],
                   TRef, ge]
         #print "dataIn = ",dataIn
         self.addOp2Material(MAT9(None, dataIn))
         n += 140
     self.card_count['MAT9'] = nmaterials
Exemple #5
0
    def readMAT9(self, data):
        """
        MAT9(2603,26,300) - record 9
        .. todo:: buggy
        """
        #print "reading MAT9"
        while len(data) >= 140:  # 35*4
            data = data[140:]
            out = unpack('iiiiiiiiiiiiiiiiiiiiiifffffffffiiii', data[:140])

            (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13, g14,
             g15, g16, g17, g18, g19, g20, g21, rho, a1, a2, a3, a4, a5, a6,
             TRef, ge, blank1, blank2, blank3, blank4) = out
            dataIn = [
                mid,
                [
                    g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11, g12, g13,
                    g14, g15, g16, g17, g18, g19, g20, g21
                ], rho, [a1, a2, a3, a4, a5, a6], TRef, ge
            ]
            #print "dataIn = ",dataIn
            self.addOp2Material(MAT9(None, dataIn))
 def _read_mat9(self, data, n):
     """
     MAT9(2603,26,300) - record 9
     """
     ntotal = 140
     s = Struct(b(self._endian + 'i 30f iiii'))
     nmaterials = (len(data) - n) // ntotal
     for i in range(nmaterials):
         out = s.unpack(data[n:n+ntotal])
         assert len(out) == 35, out
         (mid, g1, g2, g3, g4, g5, g6, g7, g8, g9, g10,
          g11, g12, g13, g14, g15, g16, g17, g18, g19, g20, g21,
          rho, a1, a2, a3, a4, a5, a6, TRef, ge,
          blank1, blank2, blank3, blank4) = out
         assert blank1 == 0, blank1
         data_in = [mid, [g1, g2, g3, g4, g5, g6, g7, g8, g9, g10,
                          g11, g12, g13, g14, g15, g16, g17, g18, g19, g20, g21],
                    rho, [a1, a2, a3, a4, a5, a6],
                    TRef, ge]
         mat = MAT9.add_op2_data(data_in)
         self.add_op2_material(mat)
         n += ntotal
     self.card_count['MAT9'] = nmaterials
     return n