def _read_mat2(self, data, n): """ MAT2(203,2,78) - record 3 """ ntotal = 68 # 17*4 s = Struct(self._endian + b'i15fi') nmaterials = (len(data) - n) // ntotal nbig_materials = 0 for i in range(nmaterials): edata = data[n:n+68] out = s.unpack(edata) if self.is_debug_file: self.binary_debug.write(' MAT2=%s\n' % str(out)) (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, tref, ge, St, Sc, Ss, mcsid) = out #print("MAT2 = ",out) mat = MAT2.add_op2_data(out) if 0 < mid <= 1e8: # just a checker for out of range materials self.add_op2_material(mat) else: nbig_materials += 1 self.big_materials[mid] = mat n += ntotal ncards = nmaterials - nbig_materials if ncards: self.card_count['MAT2'] = ncards return n
def _read_mat2(self, data: bytes, n: int) -> int: """ MAT2(203,2,78) - record 3 """ ndatai = len(data) - n if ndatai % 68 == 0: ntotal = 68 # 17*4 s = Struct(self._endian + b'i15fi') else: ntotal = (17 + 6) * 4 nleftover = ndatai % ntotal s = Struct(self._endian + b'i15fi 6i') self.log.warning( f'unexpected MAT2 format; ndatai={ndatai} ntotal={ntotal} nmaterials={ndatai // ntotal} ' f'leftover={ndatai % ntotal}') assert nleftover == 0, nleftover nmaterials = ndatai // ntotal nbig_materials = 0 for unused_i in range(nmaterials): edata = data[n:n + ntotal] out = s.unpack(edata) if self.is_debug_file: self.binary_debug.write(' MAT2=%s\n' % str(out)) if ntotal == 68: (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, tref, ge, St, Sc, Ss, mcsid) = out mat = MAT2.add_op2_data(out) else: (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, tref, ge, St, Sc, Ss, mcsid, *blanks) = out mat = MAT2.add_op2_data(out) self.log.debug(mat) #print("MAT2 = ",out) if 0 < mid <= 1e8: # just a checker for out of range materials self.add_op2_material(mat) else: nbig_materials += 1 self.big_materials[mid] = mat n += ntotal ncards = nmaterials - nbig_materials if ncards: self.card_count['MAT2'] = ncards return n
def readMAT2(self, data): """ MAT2(203,2,78) - record 3 """ #print "reading MAT2" while len(data) >= 68: # 17*4 data = data[68:] out = unpack('ifffffffffffffffi', data[:68]) (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, TRef, ge, St, Sc, Ss, mcsid) = out #print "MAT2 = ",out mat = MAT2(None, out) if mid > 1e8 or mid < 0: # just a checker for out of range materials self.bigMaterials[mid] = mat else: self.addOp2Material(mat)
def _read_mat2(self, data, n): """ MAT2(203,2,78) - record 3 """ ntotal = 68 # 17*4 s = Struct(b(self._endian + 'i15fi')) nmaterials = (len(data) - n) // ntotal for i in range(nmaterials): edata = data[n:n+68] out = s.unpack(edata) (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, tref, ge, St, Sc, Ss, mcsid) = out #print("MAT2 = ",out) mat = MAT2.add_op2_data(out) if 0 < mid <= 1e8: # just a checker for out of range materials self.add_op2_material(mat) else: self.big_materials[mid] = mat n += ntotal self.card_count['MAT2'] = nmaterials return n
def _read_mat2(self, data, n): """ MAT2(203,2,78) - record 3 """ ntotal = 68 # 17*4 s = Struct(b(self._endian + 'i15fi')) nmaterials = (len(data) - n) // ntotal for i in range(nmaterials): edata = data[n:n+68] out = s.unpack(edata) (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, TRef, ge, St, Sc, Ss, mcsid) = out #print "MAT2 = ",out mat = MAT2.add_op2_data(out) if mid > 1e8 or mid < 0: # just a checker for out of range materials self.big_materials[mid] = mat else: self.add_op2_material(mat) n += ntotal self.card_count['MAT2'] = nmaterials return n
def _readMAT2(self, data, n): """ MAT2(203,2,78) - record 3 """ #print "reading MAT2" ntotal = 68 # 17*4 s = Struct(b'i15fi') nmaterials = (len(data) - n) // ntotal for i in xrange(nmaterials): edata = data[n:n+68] out = s.unpack(edata) (mid, g1, g2, g3, g4, g5, g6, rho, aj1, aj2, aj3, TRef, ge, St, Sc, Ss, mcsid) = out #print "MAT2 = ",out mat = MAT2(None, out) if mid > 1e8 or mid < 0: # just a checker for out of range materials self.bigMaterials[mid] = mat else: self.addOp2Material(mat) n += ntotal self.card_count['MAT2'] = nmaterials return n