Floating exception in tree_node_black_hole_mass_rate_compute_standard
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Galacticus |
Fix Released
|
Medium
|
Andrew Benson | ||
V0.9.1 |
Fix Released
|
Medium
|
Andrew Benson |
Bug Description
Reported by Markus Haider:
>> I ran a new tree and got the following problem:
>>
>> 11: Output tree data at t= 1.25 Gyr
>> 7: Output tree data at t= 0.90 Gyr
>> Galacticus experienced a floating point exception - will try to flush
>> data before exiting.
>> => Error occurred in thread 3
>>
>> A fatal error occurred! Backtrace for this error:
>> HDF5-DIAG: Error detected in HDF5 (1.8.7) thread 0:
>> #000: ../../.
>> major: Invalid arguments to routine
>> minor: Inappropriate type
>> 5: Output tree data at t= 12.40 Gyr
>> 0: Output tree data at t= 7.91 Gyr
>> Fatal error in IO_HDF5_
>> unable to write dataset 'hotHaloUnaccre
>> => Error occurred in thread 10
>> HDF5-DIAG: Error detected in HDF5 (1.8.7) thread 0:
>> #000: ../../.
>> major: Invalid arguments to routine
>> minor: Inappropriate type
>>
>> A fatal error occurred! Backtrace for this error:
>> #0 0x2B9734678897
>> #0 0x2B9734678897
>> #1 0x2B9734679DE6
>> #1 0x2B9734679DE6
>> #2 0x2B9734742BB8
>> #2 0x2B9734742BB8
>> #3 0x461B76 in __galacticus_
>> at galacticus.
>> #3 0x4620FE in __galacticus_
>> galacticus.
>> #4 0x3DFF83648F
>> #4 0x462198 in __galacticus_
>> galacticus.
>> #5 0x4D9E94 in
>> __tree_
>> andard at objects.
>> #6 0x4C99F6 in __merger_
>> objects.
>> #7 0x4CB933 in tree_node_odes at objects.
>> #8 0x2B97340DF4BA
>> #9 0x2B97340F3A4E
>> #10 0x4B1557 in __fodeiv2_
>> numerical.
>> #11 0x4B0D28 in __odeiv2_
>> numerical.
>> #12 0x4CB351 in __merger_
>> objects.
>> #13 0x4A1282 in __merger_
>> merger_
>> #14 0x475CEE in
>> __galacticus_
>> at galacticus.
>> #15 0x2B973497F829
>> #16 0x3DFFC07CD0
>> #17 0x3DFF8DFD3C
>> #18 0xFFFFFFFFFFFFFFFF
>> #5 0x5B6155 in __io_hdf5_
>> utility.
>> #6 0x46EFDC in __galacticus_
>> at galacticus.
>> #7 0x470353 in
>> __galacticus_
>> galacticus.
>> #8 0x475E7E in
>> __galacticus_
>> at galacticus.
>> #9 0x2B973497F829
>> #10 0x3DFFC07CD0
>> #11 0x3DFF8DFD3C
>> #12 0xFFFFFFFFFFFFFFFF
>> /sge-root/
>> Aborted (core dumped) ./Galacticus.exe
>> ../galacticusSt
Problem occurs because a spheroid component gets a very small radius. When the black hole component attempts to compute the spheroid density (dividing by spheroid radius cubed) this causes a floating overflow. The density is in fact only needed as a ratio with the critical density for coupling to the black hole wind. The critical density has a factor of 1/radius^2 in it. Fix is to compute r^2*density in both cases (which does not affect their ratio).