예제 #1
0
    def _read_real_eigenvalue_4(self, data: bytes, ndata: int):
        """parses the Real Eigenvalues Table 4 Data"""
        if self.read_mode == 1:
            return ndata
        nmodes = ndata // 28
        n = 0
        ntotal = 28
        #assert self.isubcase != 0, self.isubcase
        lama = RealEigenvalues(self.title, self.table_name, nmodes=nmodes)

        if self.table_name in [b'LAMA', b'LAMAS']:
            result_name = 'eigenvalues'
        elif self.table_name == b'LAMAF':
            result_name = 'eigenvalues_fluid'
        else:  # pragma: no cover
            raise NotImplementedError(self.table_name)
        slot = getattr(self, result_name)
        #assert self.title not in slot, f'{result_name}: table={self.table_name_str} title={self.title!r} optimization_count={self._count}'
        slot[self.title] = lama

        structi = Struct(self._endian + b'ii5f')
        for i in range(nmodes):
            edata = data[n:n + 28]
            out = structi.unpack(edata)
            if self.is_debug_file:
                self.binary_debug.write('  eigenvalue%s - %s\n' %
                                        (i, str(out)))
            #(imode, extract_order, eigenvalue, radian, cycle, gen_mass, gen_stiffness) = out
            lama.add_f06_line(out, i)
            n += ntotal
        return n
예제 #2
0
    def _read_real_eigenvalue_4(self, data, ndata):
        """parses the Real Eigenvalues Table 4 Data"""
        op2 = self.op2
        if self.read_mode == 1:
            return ndata

        op2_reader = self.op2_reader
        #self.show_data(data)
        nmodes = ndata // 28
        n = 0
        ntotal = 28
        #assert op2.isubcase != 0, op2.isubcase
        lama = RealEigenvalues(op2.title, nmodes=nmodes)
        op2.eigenvalues[op2_reader.title] = lama
        structi = Struct(self._endian + b'ii5f')
        for i in range(nmodes):
            edata = data[n:n + 28]
            out = structi.unpack(edata)
            if self.is_debug_file:
                self.binary_debug.write('  eigenvalue%s - %s\n' %
                                        (i, str(out)))
            #(imode, extract_order, eigenvalue, radian, cycle, gen_mass, gen_stiffness) = out
            lama.add_f06_line(out, i)
            n += ntotal
        return n
예제 #3
0
 def _read_real_eigenvalue_4(self, data, ndata):
     """parses the Real Eigenvalues Table 4 Data"""
     if self.read_mode == 1:
         return ndata
     #self.show_data(data)
     nModes = ndata // 28
     n = 0
     ntotal = 28
     #assert self.isubcase != 0, self.isubcase
     lama = RealEigenvalues(self.title)
     self.eigenvalues[self.title] = lama
     s = Struct('ii5f')
     for i in range(nModes):
         edata = data[n:n+28]
         out = s.unpack(edata)
         if self.is_debug_file:
             self.binary_debug.write('  eigenvalue%s - %s\n' % (i, str(out)))
         #(imode, order, eigen, omega, freq, mass, stiff) = out
         (imode, extract_order, eigenvalue, radian, cycle, genM, genK) = out
         lama.add_f06_line(out)
         n += ntotal
     return n
예제 #4
0
 def _read_real_eigenvalue_4(self, data, ndata):
     """parses the Real Eigenvalues Table 4 Data"""
     if self.read_mode == 1:
         return ndata
     #self.show_data(data)
     nModes = ndata // 28
     n = 0
     ntotal = 28
     #assert self.isubcase != 0, self.isubcase
     lama = RealEigenvalues(self.title)
     self.eigenvalues[self.title] = lama
     s = Struct('ii5f')
     for i in range(nModes):
         edata = data[n:n + 28]
         out = s.unpack(edata)
         if self.is_debug_file:
             self.binary_debug.write('  eigenvalue%s - %s\n' %
                                     (i, str(out)))
         #(imode, order, eigen, omega, freq, mass, stiff) = out
         (imode, extract_order, eigenvalue, radian, cycle, genM, genK) = out
         lama.add_f06_line(out)
         n += ntotal
     return n