Stars with negative ages in TNG100

Harley Brown
  • 20 Jan

Hi,

I've run into something slightly odd while working on a project using TNG100 data. Specifically, I've encountered a population of stars that seemingly report being born at a time (very slightly) later than that of the snapshot they're present in i.e. have GFM_StellarFormationTime greater than their snapshot's value for a.

For example: the star with ParticleID 112421805469 in snapNum 36 has a GFM_StellarFormationTime of 0.36448854. But the scale factor in snapNum 36 is only 0.3644885279628326 (as obtained from the snapshot header) i.e. a value ~1x10^-8 smaller than the scale factor of the Universe when the star was apparently born.

Upon initially seeing this, my first thought was this could just be from something like a loss of precision or things getting rounded at some point along the way - though if this were the case, I'd have expected the star's GFM_StellarFormationTime to be 0.36448853 rather than 0.36448854. It is also very possible I've just made a mistake somewhere.

Assuming I haven't made an error somewhere, am I correct in assuming this slight mis-match in scale-factor values just stems from something to do with value precision / rounding as I expected?

Dylan Nelson
  • 21 Jan

Under the PartType4 field documentation, this is the very bold statement.

In particular, you should essentially always filter (and remove) negative age PartType4 particles, and not consider them for any analysis related to "stars".

Harley Brown
  • 1
  • 21 Jan

Hi Dylan,

My apologies, I worry I wasn't sufficiently clear in my original post and the way I phrased the title may have misled you slightly (or I'm just being very stupid somehow - apologies again if so).

Screenshot from 2025-01-21 09-40-21.png

I am already aware of Wind particles, know these must be identified via their negative value for GFM_StellarFormationTime, and have (to my knowledge) already accounted for these. I don't believe these have anything to do with what I was trying to get input on.

The example I've given in my original post has a positive value for GFM_StellarFormationTime , so is (as I currently understand things) not a wind particle - I was actually trying to draw attention to the fact that in snapNum 36 this particle has a value for GFM_StellarFormationTime that is larger than the value of the scale factor given in the header of the snapshot it's found in - which taken entirely at face value implies this star shouldn't have been born yet. As such, my code which turns GFM_StellarFormationTime into an actual age in terms of years (using astropy.cosmology's Planck15.age) spits out a negative value for stars like these (hence my reference to negative age in the post title).

Dylan Nelson
  • 21 Jan

As yes I see, then since these are float32 values, I think it is fine to assume this is roundoff related, or else equivalent to roundoff, so I would indeed set these to "zero age".

  • Page 1 of 1