Prospects for observing dynamically formed Binary Black Holes in the Local Universe with Gravitational Waves

Dongming Jin

  • Research Supervisor
    • Dr. Matthew Benacquista
  • Committee Members
    • Dr. Zdzislaw Musielak (co-chair)
    • Dr. Manfred Cuntz
    • Dr. Joseph Romano
    • Dr. Sangwook Park
    • Dr. Teviet Creighton
  • Graduate Advisor

    • Dr. Qiming Zhang
  • April 27th, 2018

Overview

Populating GCs in the local universe

  • LoGal: galaxy within 30 Mpc

    • 7,909 with GCs
    • 1,037 has no measured luminosity
    • 8,946 total
  • GClib: 662,772 GCs over 7,909 Galaxy

    • manipulated LoGal.Ngc with different GC age
    • assign random GC simulation

Simulating GCs

  • GClib models:

    • $2\times5\times3\times3\times3 \times 10 = 324 \times 10 = 3,240$ simulations
    • Node-hour: $150,000 + 90,000 = 240,000$
    • tmp file: over 100 TB
  • GClib model diversity:

    • 1,739 out of 662,772 are duplicated
    • only half of the 3,240 GC simulations have one duplicated entry

Relativistic BBHs

  • BBHlib: extracted BBHs from 3,240 GC simulations

    • 87,365 ejected BBHs
    • 11,095 ejected BHBs
  • BBHdata: 17,883,760 BBHs with host galaxy info. + host GC info. + BBH info.

Prospects for Detection

  • 86,939 BBH mergers + 17,883,760 BBH inspirals
  • Merger event rate (6.1.3)

    • $\eta = N \frac{8 k_0}{3} f_\text{min}^{8/3} \left(\frac{30 \text{ Mpc}}{1 \text{ Gpc}} \right)^3 \left( \frac{13.5 \text{ Gyr}}{1 \text{ yr}} \right) \simeq 587 \text{ Gpc}^{-3} \text{ yr}^{-1}$
  • Localizationable BBHs: 14

   PGC    Dist          M1           M2   Seperation        Ecc

  1628   0.787    3.158000    10.250000     0.807000   0.000000
  1628   0.787   12.728000    19.122000     0.157281   0.852028
   616   2.188    3.158000    10.250000     0.807000   0.000000
  1628   0.787    3.158000    10.250000     0.807000   0.000000
  1628   0.787    3.158000    10.250000     0.807000   0.000000
  1628   0.787    3.158000    10.250000     0.807000   0.000000
  1628   0.787   20.632000   137.730000     0.178258   0.477929
  1628   0.787   21.424999    25.615999     0.165200   0.750944
  1628   0.787   28.433001    26.503000     0.175125   0.813286
  1628   0.787    3.158000    10.250000     0.807000   0.000000
131228   0.762    3.158000    10.250000     0.807000   0.000000
  1628   0.787    3.158000    10.250000     0.807000   0.000000
  1628   0.787    5.319600    10.276000     0.974700   0.000000
  1627   0.813    5.319600    10.276000     0.974700   0.000000

Introduction (chap 1)

Motivation

  • Detection -> GWs from BBHs, overview about GW, BBH
  • BBH formation -> GCs
  • Research interns
    • N-body, MOCCA: Newtonian, statistical
    • 50BiN: optical, time series
    • DSFP: statistics, data analysis

Objective

Background

Introduction (chap 1)

Motivation

Objective

  • GW from BBH formed in GCs -> Astrometry
    • High performance computing: numerical simulations on superclusters
    • Long baseline/timeline observation: time series analysis + multi-messanger
    • Petascale data: systematic surveys, global multi-discipline collaborations

Background

Introduction (chap 1)

Motivation

Objective

Background

  • Astrometry (sec 2.1.2)
    • Cosmology (sec 1.2.1)
    • Dark matter content (sec 6.2.2)
  • GCs and BBHs
    • GCs (sec 3.3)
    • BBHs (sec 5.2.2)
  • GR and GWs from BBHs
    • GR -> GW (sec 5.1.2)
    • GW from BBH (sec 5.2.3)

Populating GCs in the local universe (chap 2)

GWGC for galaxy abundance (sec 2.1)

Data prepare

  1. [=] load GWGC data: wrong data type object due to ~ symbol => impute ~ as NaN and parse data type to float
  2. [=] check duplicates: explain pandas table, duplicated galaxies with Dist > 30 Mpc => drop

  3. extract local galaxies within 30 Mpc and 3D view

  4. spatial distribution and edge galaxies

  5. check interesting features

Description

   1-  7  I7    ---      PGC      [2,4715229]? Identifier from HYPERLEDA
                                  (empty for globular clusters)
   9- 36  A28   ---      Name     Common name of galaxy or globular
  38- 46  F9.5  h        RAhour   Right ascension (J2000, decimal hours)
  48- 55  F8.4  deg      DEdeg    Declination (J2000)
  57- 60  F4.1  ---      TT       [-9,10]? Morphological type code (1)
  62- 66  F5.2  mag      Bmag     ? Apparent blue magnitude
  68- 74  F7.3  arcmin   a        ? Major diameter (arcmins)
  76- 82  F7.3  arcmin   e_a      ? Error in major diameter (arcmins)
  84- 90  F7.3  arcmin   b        ? Minor diameter (arcmins)
  92- 98  F7.3  arcmin   e_b      ? Error in minor diameter (arcmins)
 100-104  F5.3  ---      b/a      [0,1]? Ratio of minor to major diameters
 106-110  F5.3  ---      e_b/a    ? Error on ratio of minor to major diameters
 112-116  F5.1  deg      PA       [0,180]? Position angle of galaxy
                                    (degrees from north through east)
 118-123  F6.2  mag      BMAG     ? Absolute blue magnitude
 125-131  F7.2  Mpc      Dist     ? Distance (Mpc)
 133-138  F6.2  Mpc      e_Dist   ? error on Distance (Mpc)
 140-143  F4.2  mag      e_Bmag   ? error on Apparent blue magnitude
 145-148  F4.2  mag      e_BMAG   ? error on Absolute blue magnitude
In [5]:
# 1. load GWGC data
GWGC=pd.read_csv(path_GWGC, delim_whitespace=True)
for key, n in Counter(GWGC.dtypes).most_common():
    print("'%s' (count %d): \n - %s" % (key, n, '\n - '.join(x for x in GWGC.columns[GWGC.dtypes==key])))
'object' (count 19): 
 - Name
 - Type
 - App_Mag_B
 - err_App_Mag_B
 - Abs_Mag_B
 - err_Abs_Mag_B
 - App_Mag_I
 - err_App_Mag_I
 - Abs_Mag_I
 - err_Abs_Mag_I
 - App_Mag_K
 - err_App_Mag_K
 - Maj_Diam(a)
 - err_Maj_Diam
 - Min_Diam(b)
 - err_Min_Diam
 - b/a
 - err_b/a
 - PA
'float64' (count 4): 
 - RA
 - Dec
 - Dist
 - err_Dist
'int64' (count 1): 
 - PGC
In [6]:
# 1-. convert to numeric, impute '~' as NaN 
for key in GWGC:
    if key != 'Name':
        GWGC[key]=pd.to_numeric(GWGC[key], errors='coerce')

# 2. check duplicates, duplicated galaxies with Dist > 30 Mpc
display(GWGC[GWGC.Name.duplicated(keep=False)] \
        .loc[: ,['Name','Dist','err_Dist','RA','Dec','Type','App_Mag_B']])
Name Dist err_Dist RA Dec Type App_Mag_B
63638 PGC138606 34.347 5.152 3.18005 61.105202 5.0 16.32
68443 PGC166081 72.361 15.919 4.09247 71.469597 7.0 17.47
68880 PGC166081 24.847 3.727 4.09246 71.469470 NaN 17.39
130474 PGC138606 35.569 7.825 3.17891 61.113250 1.2 15.51
178917 6dFJ1705055-200214 112.653 24.784 17.08485 -20.037250 NaN NaN
178919 6dFJ1704153-203840 117.694 25.893 17.07090 -20.644350 NaN NaN
179298 6dFJ1705055-200214 112.653 24.784 17.08485 -20.037250 NaN NaN
179620 6dFJ1704153-203840 116.194 25.563 17.07090 -20.644350 NaN NaN

Populating GCs in the local universe (chap 2)

GWGC for galaxy abundance (sec 2.1)

Data prepare

  1. [x] load GWGC data
  2. [x] check duplicates

  3. [=] extract local galaxies within 30 Mpc and 3D view: 8,946 galaxies out of 183,327, present in 3D plot

  4. spatial distribution and edge galaxies: present in distplot

  5. check interesting features

In [8]:
# 3. extract local galaxies within 30 Mpc and 3D view [slow]
GWGC['Mcat'] = 'Unknown'
GWGC['iMType'] = 0
GWGC.Mcat[GWGC.Type.between(-4,-3)] = 'E/S0'
GWGC.iMType[GWGC.Type.between(-4,-3)] = 6
GWGC.Mcat[GWGC.Type.between(0,11)] = 'S/Irr'
GWGC.iMType[GWGC.Type.between(0,11)] = 1
GWGC.Mcat[GWGC.Type.between(-6,-4)] = 'E'
GWGC.iMType[GWGC.Type.between(-6,-4)] = 2
GWGC.Mcat[GWGC.Type.between(-3,0)] = 'S0'
GWGC.iMType[GWGC.Type.between(-3,0)] = 3

LoGal = GWGC[GWGC.Dist<30]

if not flag_skip:
    fig = figure(figsize=sfig_size)
    ax = fig.add_subplot(111, projection='3d')
    ax.scatter3D(GWGC.Dist*np.cos((GWGC.RA)/12*pi)*np.sin((90-GWGC.Dec)/180*pi),
                 GWGC.Dist*np.sin((GWGC.RA)/12*pi)*np.sin((90-GWGC.Dec)/180*pi),
                 GWGC.Dist*np.cos((90-GWGC.Dec)/180*pi),
                 alpha=0.1,s=2,edgecolors=None) # all GWGCs

    ax.scatter3D(LoGal.Dist*np.cos((LoGal.RA)/12*pi)*np.sin((90-LoGal.Dec)/180*pi),
                 LoGal.Dist*np.sin((LoGal.RA)/12*pi)*np.sin((90-LoGal.Dec)/180*pi),
                 LoGal.Dist*np.cos((90-LoGal.Dec)/180*pi),alpha=0.1,c='g',s=2,edgecolors=None) # all LoGals

    ax.view_init(20, 90)
    r = [-100, 100]
    for s, e in combinations(np.array(list(product(r, r, r))), 2):
        if np.sum(np.abs(s-e)) == r[1]-r[0]:
            ax.plot3D(*zip(s, e), color="k") # box to show orientation

    ax.set_axis_off()
    ax.set_xlim(left=-100,right=100)
    ax.set_ylim(bottom=-100,top=100)
    ax.set_zlim(-100,100)
    ax.set_title('%d galaxies out of the %d galaxies are located in the Local Universe (within 30 Mpc)' 
                 % (len(LoGal), len(GWGC)))

    if flag_svfg:
        fig.savefig(path.join(path_fig, 'GWGC3D.jpeg'),**params_svfg)
else:
    ax = figure(figsize=sfig_size).add_subplot(111)
    ax.imshow(imread(path.join(path_fig, 'GWGC3D.jpeg')))
    ax.grid(False)