def _count_art_octs(self, f, offset, MinLev, MaxLevelNow): level_oct_offsets = [0, ] level_child_offsets = [0, ] f.seek(offset) nchild, ntot = 8, 0 Level = np.zeros(MaxLevelNow+1 - MinLev, dtype='int64') iNOLL = np.zeros(MaxLevelNow+1 - MinLev, dtype='int64') iHOLL = np.zeros(MaxLevelNow+1 - MinLev, dtype='int64') for Lev in range(MinLev + 1, MaxLevelNow+1): level_oct_offsets.append(f.tell()) # Get the info for this level, skip the rest # print("Reading oct tree data for level", Lev) # print('offset:',f.tell()) Level[Lev], iNOLL[Lev], iHOLL[Lev] = fpu.read_vector(f, 'i', '>') # print('Level %i : '%Lev, iNOLL) # print('offset after level record:',f.tell()) nLevel = iNOLL[Lev] ntot = ntot + nLevel # Skip all the oct hierarchy data ns = fpu.peek_record_size(f, endian='>') size = struct.calcsize('>i') + ns + struct.calcsize('>i') f.seek(f.tell()+size * nLevel) level_child_offsets.append(f.tell()) # Skip the child vars data ns = fpu.peek_record_size(f, endian='>') size = struct.calcsize('>i') + ns + struct.calcsize('>i') f.seek(f.tell()+size * nLevel*nchild) # find nhydrovars nhydrovars = 8+2 f.seek(offset) return nhydrovars, iNOLL, level_oct_offsets, level_child_offsets
def _count_art_octs(self, f, offset, MinLev, MaxLevelNow): level_oct_offsets = [0, ] level_child_offsets = [0, ] f.seek(offset) nchild, ntot = 8, 0 Level = np.zeros(MaxLevelNow+1 - MinLev, dtype='int64') iNOLL = np.zeros(MaxLevelNow+1 - MinLev, dtype='int64') iHOLL = np.zeros(MaxLevelNow+1 - MinLev, dtype='int64') for Lev in range(MinLev + 1, MaxLevelNow+1): level_oct_offsets.append(f.tell()) # Get the info for this level, skip the rest # print "Reading oct tree data for level", Lev # print 'offset:',f.tell() Level[Lev], iNOLL[Lev], iHOLL[Lev] = fpu.read_vector(f, 'i', '>') # print 'Level %i : '%Lev, iNOLL # print 'offset after level record:',f.tell() iOct = iHOLL[Lev] - 1 nLevel = iNOLL[Lev] nLevCells = nLevel * nchild ntot = ntot + nLevel # Skip all the oct hierarchy data ns = fpu.peek_record_size(f, endian='>') size = struct.calcsize('>i') + ns + struct.calcsize('>i') f.seek(f.tell()+size * nLevel) level_child_offsets.append(f.tell()) # Skip the child vars data ns = fpu.peek_record_size(f, endian='>') size = struct.calcsize('>i') + ns + struct.calcsize('>i') f.seek(f.tell()+size * nLevel*nchild) # find nhydrovars nhydrovars = 8+2 f.seek(offset) return nhydrovars, iNOLL, level_oct_offsets, level_child_offsets