Skip to content
Snippets Groups Projects

Black holes mergers

Merged Matthieu Schaller requested to merge black_holes_mergers into master

New physics module:

  • in the BH SELF and PAIR task, we add a loop over neighbouring black holes
  • Neighbours that are close to each others are flagged for merging
  • We then swallow the flagged BHs into the bigger BH and absorb their properties
  • The BH being swallowed is removed from the calculation.

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • As with recent MRs I don't know how to exactly test the physics. I think we just want to make sure that it runs for now and we will look at the numbers later on.

  • I have an EAGLE-50 going with all the physics and debugging checks going but, as always, cross-checking is very welcomed.

  • added 1 commit

    • 39ff650e - When creating a new BH from gas in FOF, mark it as not swallowed.

    Compare with previous version

  • added 1 commit

    • a71af630 - Removed incorrect debugging check

    Compare with previous version

  • added 1 commit

    • 7fe42c08 - Removed incorrect debugging check

    Compare with previous version

  • There is a compilation problem with minimal hydro:

    icc: command line remark #10120: overriding '-O0' with '-O3'
    In file included from black_holes.h(31),
                     from space.c(44):
    ./black_holes/EAGLE/black_holes_iact.h(220): error: identifier "kernel_gravity_softening_plummer_equivalent_inv" is undefined
        const float max_distance2 = kernel_gravity_softening_plummer_equivalent_inv *
                                    ^
  • Ran a job for 24 hours (full physics, EAGLE_50/.1, debugging checks enabled) and I can see 30 reports of black holes swallowing black holes (and gas particles). Checking the snapshots I can see the BH numbers correspond. The only thing that I wonder about is that 28 of these events happened in step 0, which kind of suggests that there is something wrong with the ICs, or we are different to Gadget. Any comments?

  • added 1 commit

    • 06ab262e - Fixed missing inclusion that prevented compilation with some hydro schemes.

    Compare with previous version

  • Thanks. I have fixed the compilation problem.

    The answer to your question is that I don't exactly know. Did you get 30 reports in total or 30 reports of BH-BH events? The test is currently somewhat artificial as some of the BH properties are initialised in such a way that gas swallowing may not happen much. The absence of BH-BH events may also be related to the missing BH repositioning code. I need to speak to other BH subgrid model aware people to assess what we should expect here.

  • I see:

    
    [0002] [01082.5] runner_do_bh_swallow: BH 8303715857499 removing BH particle 8454981122207
    [0002] [01089.7] runner_do_bh_swallow: BH 6238088943389 removing BH particle 6237967423489
    [0002] [01089.7] runner_do_bh_swallow: BH 5811084825583 removing BH particle 5811041302611
    [0002] [01090.2] runner_do_bh_swallow: BH 4704630592621 removing BH particle 4641213509223
    [0002] [01090.3] runner_do_bh_swallow: BH 6354090538163 removing BH particle 5177234581547
    [0006] [01094.5] runner_do_bh_swallow: BH 5599646789037 removing BH particle 5600497315819
    [0006] [01097.9] runner_do_bh_swallow: BH 2979302699055 removing BH particle 2973040854959
    [0003] [01100.1] runner_do_bh_swallow: BH 1115580393039 removing BH particle 1115613735047
    [0002] [01103.2] runner_do_bh_swallow: BH 8725682104653 removing BH particle 8718096777745
    [0002] [01104.4] runner_do_bh_swallow: BH 8722252949175 removing BH particle 8722039468415
    [0007] [01112.8] runner_do_bh_swallow: BH 1488135350633 removing BH particle 1488119523681
    [0001] [01115.2] runner_do_bh_swallow: BH 7189782070175 removing BH particle 7190038257001
    [0006] [01116.5] runner_do_bh_swallow: BH 6082466957895 removing BH particle 6082333584755
    [0006] [01116.8] runner_do_bh_swallow: BH 2925569507215 removing BH particle 2926055266143
    [0006] [01116.9] runner_do_bh_swallow: BH 2870388301653 removing BH particle 2870292169035
    [0000] [01132.9] runner_do_bh_swallow: BH 7401514469377 removing BH particle 7401472962619
    [0000] [01136.1] runner_do_bh_swallow: BH 5295400625907 removing BH particle 5295271207293
    [0002] [01139.3] runner_do_bh_swallow: BH 8458419621937 removing BH particle 8458737616665
    [0006] [01139.4] runner_do_bh_swallow: BH 5902597481735 removing BH particle 5902592596191
    [0001] [01140.1] runner_do_bh_swallow: BH 4281707052545 removing BH particle 4292090384895
    [0002] [01140.3] runner_do_bh_swallow: BH 8389264615483 removing BH particle 8446896747237
    [0005] [01140.6] runner_do_bh_swallow: BH 3841095889157 removing BH particle 3841129498037
    [0002] [01141.3] runner_do_bh_swallow: BH 8013839629995 removing BH particle 8013651248869
    [0006] [01146.1] runner_do_bh_swallow: BH 2633223293833 removing BH particle 2633009243735
    [0001] [01146.4] runner_do_bh_swallow: BH 845395189313 removing BH particle 7951364694917
    [0001] [01146.4] runner_do_bh_swallow: BH 8008293998821 removing BH particle 792729387185
    [0007] [01150.5] runner_do_bh_swallow: BH 222402784069 removing BH particle 223243552785
    [0005] [01158.9] runner_do_bh_swallow: BH 784798716239 removing BH particle 784002857327
    [0002] [11362.0] runner_do_bh_swallow: BH 8389264615483 removing BH particle 8389355569853
    [0007] [77165.9] runner_do_bh_swallow: BH 8200562458001 removing BH particle 8206236400639

    So those first 28 happened in step 0, the other two arrived somewhat later.

  • Thanks.

    Do you know whether the steps where it happens were time-steps where most particles were active? Also, was this running with -u so as to create more particles during the run?

    And finally, was that matched by the appropirate number of messages of the form

    message("BH %lld wants to swallow BH particle %lld", bi->id, bj->id);

    ?

  • Yes, these two steps where amongst the 5 most active. I didn't have FOF enabled.

    In fact we have one more wants to swallow than removing:

    [0001] [01069.9] runner_iact_nonsym_bh_bh_swallow: BH 4281707052545 wants to swallow BH particle 4292090384895
    [0002] [01072.5] runner_iact_nonsym_bh_bh_swallow: BH 8303715857499 wants to swallow BH particle 8454981122207
    [0002] [01073.5] runner_iact_nonsym_bh_bh_swallow: BH 8722252949175 wants to swallow BH particle 8722039468415
    [0002] [01074.8] runner_iact_nonsym_bh_bh_swallow: BH 8725682104653 wants to swallow BH particle 8718096777745
    [0006] [01077.7] runner_iact_nonsym_bh_bh_swallow: BH 2925569507215 wants to swallow BH particle 2926055266143
    [0006] [01078.6] runner_iact_nonsym_bh_bh_swallow: BH 2979302699055 wants to swallow BH particle 2973040854959
    [0002] [01078.8] runner_iact_nonsym_bh_bh_swallow: BH 8458419621937 wants to swallow BH particle 8458737616665
    -[0002] [01081.4] runner_iact_nonsym_bh_bh_swallow: BH 8389355569853 wants to swallow BH particle 8446896747237
    -[0002] [01081.4] runner_iact_nonsym_bh_bh_swallow: BH 8389264615483 wants to swallow BH particle 8446896747237
    [0006] [01085.0] runner_iact_nonsym_bh_bh_swallow: BH 5902597481735 wants to swallow BH particle 5902592596191
    [0006] [01085.4] runner_iact_nonsym_bh_bh_swallow: BH 5599646789037 wants to swallow BH particle 5600497315819
    [0000] [01088.4] runner_iact_nonsym_bh_bh_swallow: BH 7401514469377 wants to swallow BH particle 7401472962619
    [0002] [01089.1] runner_iact_nonsym_bh_bh_swallow: BH 6354090538163 wants to swallow BH particle 5177234581547
    [0002] [01089.2] runner_iact_nonsym_bh_bh_swallow: BH 6238088943389 wants to swallow BH particle 6237967423489
    [0002] [01089.2] runner_iact_nonsym_bh_bh_swallow: BH 4704630592621 wants to swallow BH particle 4641213509223
    [0002] [01089.3] runner_iact_nonsym_bh_bh_swallow: BH 5811084825583 wants to swallow BH particle 5811041302611
    [0006] [01091.4] runner_iact_nonsym_bh_bh_swallow: BH 2870388301653 wants to swallow BH particle 2870292169035
    [0003] [01094.8] runner_iact_nonsym_bh_bh_swallow: BH 1115580393039 wants to swallow BH particle 1115613735047
    [0007] [01097.1] runner_iact_nonsym_bh_bh_swallow: BH 1488135350633 wants to swallow BH particle 1488119523681
    [0006] [01098.4] runner_iact_nonsym_bh_bh_swallow: BH 6082466957895 wants to swallow BH particle 6082333584755
    [0000] [01103.5] runner_iact_nonsym_bh_bh_swallow: BH 5295400625907 wants to swallow BH particle 5295271207293
    [0001] [01108.4] runner_iact_nonsym_bh_bh_swallow: BH 7189782070175 wants to swallow BH particle 7190038257001
    [0006] [01117.4] runner_iact_nonsym_bh_bh_swallow: BH 2633223293833 wants to swallow BH particle 2633009243735
    [0001] [01128.0] runner_iact_nonsym_bh_bh_swallow: BH 845395189313 wants to swallow BH particle 7951364694917
    [0005] [01133.2] runner_iact_nonsym_bh_bh_swallow: BH 3841095889157 wants to swallow BH particle 3841129498037
    [0001] [01134.7] runner_iact_nonsym_bh_bh_swallow: BH 8008293998821 wants to swallow BH particle 792729387185
    [0002] [01139.4] runner_iact_nonsym_bh_bh_swallow: BH 8013839629995 wants to swallow BH particle 8013651248869
    [0007] [01141.2] runner_iact_nonsym_bh_bh_swallow: BH 222402784069 wants to swallow BH particle 223243552785
    [0005] [01144.9] runner_iact_nonsym_bh_bh_swallow: BH 784798716239 wants to swallow BH particle 784002857327
    -[0002] [11361.7] runner_iact_nonsym_bh_bh_swallow: BH 8389264615483 wants to swallow BH particle 8389355569853
    [0007] [77113.1] runner_iact_nonsym_bh_bh_swallow: BH 8200562458001 wants to swallow BH particle 8206236400639

    Seems that 8446896747237 was identified for swallowing twice, but only went down one BH 8389355569853! Interestingly 8389355569853 was then itself swallowed by the other BH 8389264615483 at a much later time.

    Not somewhere you'd like to hang out.

  • Thanks. Great. That's then doing the right thing. Multiple BHs can flag one of their neighbours as the one they want to swallow but ultimately, it's the most massive one that will do the job and absorb the target.

    Not sure what else we should be testing here besides actual runs from high redshfits combining all the physics.

  • I think we should just accept this and see how that goes.

  • Works for me. Thanks!

  • Peter W. Draper mentioned in commit 6038f947

    mentioned in commit 6038f947

  • OK, accepted.

  • mentioned in issue #589 (closed)

Please register or sign in to reply
Loading