Example #1
0
 def _read_multipoles(self, f):
     """ Read the atomic multipoles """
     self.multipole_list = AtomicMultipoleList()
     # Eat the next 3 lines
     f.readline()
     f.readline()
     f.readline()
     line = f.readline()
     for i in range(self.pointers['npole']):
         try:
             int(line[0:6])
             at = int(line[9:15]) - 1
             # Collect the rest of the arguments, kept as strings
             frame = [line[16:23], line[23:30], line[30:37]]
             typestr = line[40:48]
             moments = [line[50:59]]
             # Next numbers are on the next line
             line = f.readline()
             moments.extend([line[50:59], line[59:68], line[68:77]])
             line = f.readline()
             moments.append(line[50:59])
             line = f.readline()
             moments.extend([line[50:59], line[59:68]])
             line = f.readline()
             moments.extend([line[50:59], line[59:68], line[68:77]])
             self.multipole_list.add(self.atom_list[at], frame, typestr,
                                     moments)
         except ValueError:
             raise TinkerError('Error parsing multipole term')
         line = f.readline()