GroupFirstSub in Illustris-3

Ignacio Gargiulo
  • 4
  • 19 Sep '16

Hi Dylan,

I'm writting because i found something odd, at least to me, in the GroupFirstSub array in the Illustris-3 Simulation. I get that this is the array that contains the indices of the most massive substructure of each FOF Halo. But i found that a number of this indeces in the array are the same number: 4294967295. Exactly, 33874 elements out of 131727 elements of this array are equal to this number.

if i write this array : GroupFirstSub [ 0 608 1030 ..., 121206 121207 121208]

but: for example: GroupFirstSub[8572] = 4294967295 (first apearence)


for i in range(0,len(GroupFirstSub)): if(GroupFirstSub[i] == 4294967295): count+=1 print "count = ", count --> 33874

What does this mean? I am trying to walk all the trees and find pairs of haloes with the same descendent (only two progenitors), and this "GroupFirstSub's" are making me wonder if i get the whole thing right.

When i do: tree2= il.sublink.loadTree(basePath,135,GroupFirstSub[8572],fields=fields, onlyMPB=False) , an error ocurrs. error : Index (4294906691) out of range (0-60604)

Many thanks in advance!

Dylan Nelson
  • 20 Sep '16

Hi Ignacio,

This large number is the result of int32(-1) being typecast into a uint32. Indeed GroupFirstSub should be interpreted as a signed integer field, and a value of -1 indicates there is no such first subhalo. I've updated the documentation to clarify this. I have something like the following in my load helper function:

        # override HDF5 datatypes if needed (GroupFirstSub unsigned -> signed for -1 entries)
        if 'GroupFirstSub' in r['halos']:
            r['halos']['GroupFirstSub'] = r['halos']['GroupFirstSub'].astype('int32')
  • Page 1 of 1