[SOLVED] FoF Assignment 1

30.00 $

Category:
Click Category Button to View Your Next Assignment | Homework

You will receive the following solution file(s) instantly after successful payment:

zip file icon PBH-Workshop-7fp5or.zip (361.5 KB)
Assignment Instructions Updated Recently? Submit Below and we will provide new Solution!
Submit New Instructions
🔒 Securely Powered by:
Secure Checkout
5/5 - (2 votes)

Introduction

In this Hands on Session, you will learn how to define extended mass functions and calculate constraints on their abundance using observational data. To achieve this, we will study one example to then let you implement other kind of mass function to the already available code.

Requirements

To start working, you will need to have a version of Python3 installed with the following modules available:

  • numpy
  • scipy
  • pandas
  • matplotlib
  • jupyter

If any of these modules is missing, it should suffice to do

pip install “module”

1

and the missing module should be installed.

The next thing you will need is the source code for the mass function calculations available at: github.com/jmsureda/PBH-Workshop.

Exercise 1

Now that you have seen how to implement a mass function is done, consider now the Fixed Conformal Time (FCT) scenario presented in Sureda et al. (2021). In this scenario, the energy density at formation time is given by

,                                                   (1)

where afct is the formation scale factor for the PBH population. Using the Press-Schechter formalism presented by Nelson Padilla, one is able to define the FCT mass function as

(2)

where Mpiv is given by    
  Mpiv ≡ (Cfct/kpiv)3fm, (3)

and the mass functions for each part of the piecewise function are given by

brk

fct

These expressions use some auxiliary definitions given by

(6)

(7)

,                                                (8)

(9)

For this activity:

  1. Create a FCT Massfunction class (from Eq. (2)) that inherits all properties from the general Massfunction This will allow to immediately calculate fPBH) by using the method
FCT.compute_f()

1

2

where FCT is your instance of a FCT mass function. Plot your resulting mass function for a given choice of parameters.

  1. Use your FCT class to compute fPBH(M) for −15 ≤ log10(M/M) ≤ 10 for a fixed nb = 3.5 value.

For simplicity, assume that fm = 1 and use a value of kpiv = 10Mpc−1 and afct ∼ 10−26.

Exercise 2

At some point one might be interested in exploring the effects of different constraints on the fraction fPBH. The code is already prepared to achieve this by passing the desired constraint to the compute f() method as a string. In the Exercise notebook you will find a table with the corresponding names and a category for a number of constraints. With

Low                Medium                   High

EGB Neutron Star LSS
INTEGRAL SUBARU Radio Sources
GRB MACHOS Dynamical
White Dwarfs EROS Wide Binaries
  OGLE X-ray Binaries
  Accretion GC Disruption
  GW Galaxy Disruption

Disk Heating

CMB-Dip

Table 1: Constraint Names and mass regimes they act on

this, one could, for instance, compute the fPBH for MACHOS, EROS and OGLE by doing

FCT.compute_f(’MACHOS’,’EROS’,’OGLE’)

1

which can be done also by placing them in a list and passing it to the method

Lensing = [’MACHOS’,’EROS’,’OGLE’]

FCT.compute_f(Lensing)

1

2

The idea of this exercise is that you explore how constraints acting different mass regimes will affect the final value for fPBH.

  1. Study what happens in the same Mregime as in the previous exercise.
  2. What happens if you change the nb value?

You can also make your own categories, therefore you can explore what happens for each constraint individually or for certain groups of them.

Additional Exercises

  • Remember that we fixed the values of nb, fm and kpiv. You can explore what happens by changing those parameters.
  • The code is built in order to be general for any kind of mass function. You can try to create another mass function and implement it.
  • The data used for each constraint is just tabulated data in the form of (MPBH, f(MPBH)−1). You can add new constraints by including them in data/gM and adding a identifier in the dictionary in the file py. Try creating a new constraint and implementing it!

 

  • PBH-Workshop-7fp5or.zip