Skip to content

Latest commit

 

History

History
100 lines (88 loc) · 7 KB

README.md

File metadata and controls

100 lines (88 loc) · 7 KB

dminns by Pedro L. Espino:

This set of codes allows the calculation of the effect of simplified models of dark matter (DM) on the equation of state (EoS) of a netron star (NS). There are three main codes, DmNo.cc, EoSDM.cc, and TOVsolver.cc, along with their corresponding header files.

1. DmNo.cc:

This code calculates the number of DM particles captured in a star as a function of time, depending on the mass and radius of the star. The mass and radius sequence used should be generated by calculating an EoS of nuclear matter without DM and intergrating. The resulting MR sequence should be placed in "/FERMIONS/MRFiles/MR_SigOm.dat", or "/BOSONS/MRFiles/MR_SigOm.dat" depending on whether the particle in question is a boson or fermion (acutally, this file is indistinguishable between the two directories, because it is simply the MR sequence of a model without any DM). After this "benchmark" MR sequence is generated, it is used by DmNo.cc to calculate the number of DM particles as a function of time classified by Mass, Radius, and central density of a star. If the compilation_script is used to compile the codes, you should have an executable in the exe/ directory. DmNo.cc is run using the DMNumberDensity (all codes should be run from the main directory) executable as follows:

  • ./exe/DMNumberDensity 1 50 24 2 4U1608 GM1_Y FERMIONS this example caclulates the number density of fermionic DM of mass=2 GeV, nucleon scattering cross-section=10^{-50} cm^2, DM self-interaction cross-section=10^{-24} cm^2, assuming that the star being modified is at the position of PSR4U1608 and is described by the GM1_Y equation of state. Two types of files are generated from this:
  • nchi[ABCD]pFAT.dat
  • nchi[ABCD]pSKINNY.dat

where,

  • A = coefficient of DM-nucleon cross-section
  • B = absolute value of the power of DM-nucleon cross-section
  • C = absolute value of the power of DM-DM cross-section
  • D = DM mass
  • FAT corresponds to a file with information for all NS masses and radii as well as all times
  • SKINNY corrsponds to a file with information for all NS masses and radii but at a fixed time

so, for instance, if you want to see the number of particles captured in all TOV stars described by the specified EOS (see below) as a function of time for fermionic DM that has a DM-nucleon cross section of 1x10^(-55) cm^2, a DM-DM cross section of 10^-24 cm^2 and a mass of 1 GeV, you would look at the file "/FERMIONS/DmNoFiles/1GeV/nchi155241pFAT.dat". If you wanted this for a specific time, specified in the source code of DmNo.cc, you would look in "/FERMIONS/DmNoFiles/1GeV/nchi155241pSKINNY.dat".

2. EoSDM.cc:

This code uses the outputs from DmNo.cc to calculate the effect that the captured DM would have on the EoS of dense nuclear matter. If compiled using compilation_script, the executable for this code may be run as:

  • ./exe/DMEquationOfState 1 50 24 2 4U1608 GM1_Y FERMIONS It takes in either of the two files (using the "SKINNY" version for speed at the moment) and outputs:
  • EoS_SigOmDM_[ABCD]p.dat
  • SigOm[ABCD]p.dat

using the same naming convention as above. Using the same example as above, the outputs for this can be found in "FERMIONS/EoSFiles/1GeV/EoS_SigOmDM_155241p.dat". The first file contains the minimum relevant information for calculating the MR sequence by solving the TOV equations, including the energy density, the pressure, the baryon density, and the DM parameters (cross-sections and mass). In other words, this code calculates the EoS of dense nuclear matter with a population of DM determined by the star's original mass, radius, age, and position in the galaxy. The second file contains more information suc as the energy densities and pressures of each particle species in the star (currently this includes nucleons, electrons, muons, hyperons, and DM).

3. TOVsolver.cc:

This code takes the output from EoSDM.cc and calculates a modified MR sequence. In other words, it takes the modified EoS from the previous code and calculates the stable NS masses and radii, thereby forming a sequence of stars that have been modified by DM. This is the final desired output, because these are the relevant NS observbables that will allow us to constrain the theory. The executable for this may be run as:

  • ./exe/DMTOV 1 50 24 2 4U1608 GM1_Y FERMIONS The output of this file is an MR sequence that includes DM capture by the star:
  • MR_[ABCD]p.dat

using the same naming convention as above. With the same example, you can find this modified MR sequence in "FERMIONS/MRFiles/1GeV/MR_155241p.dat"

============================================================================================================================

These codes must be run sequentially to get a sensible output. For this purpose, a python driver script has been writtten:

  • DMDriver.py

This script takes in as argument the range of coefficients to the DM-nucleon cross section, the range of powers to the DM- nucleon cross-section, the power of the DM-DM cross sections, and the range of DM masses for which you want to run the above sequence of codes, with the following syntax:

  • python bigscriptFERMIONS.py A B C D E F G H I J K

where,

  • A = lower bound on coefficient to DM-nucleon cross section -|
  • B = upper bound on coefficient to DM-nucleon cross section -|--> note that the coefficients increase by 1.0 each step
  • C = upper bound on (absolute value of) power to DM-nucleon cross section
  • D = lower bound on (absolute value of) power to DM-nucleon cross section
  • E = (absolute value of) power to DM self-interaction cross section
  • F = lower bound on DM mass
  • G = upper bound on DM mass
  • H = star of interest (see ConfigurationFiles/ directory for stellar properties)
  • I = reference EOS model (see EOS/ directory for available EOSs)
  • J = DM particle type (FERMIONS or BOSONS)
  • K = increment by which to increase mass in DM parameter space scan

So, for instance, if you want to find the effect that a fermionic DM particle has on the mass and radius of a NS described by the GM1 equation of state, assuming the star is PSR4U1608, if its nucleon cross section is in the range of (1x10^-50) to (1x10^-55) cm^2, its self-interaction cross section is (10^-24) cm^2, and its mass is in the range 1-10 GeV (considering masses every 1GeV), you would run the script

  • python DMDriver.py 1.0 10.0 50 55 24 1 10 4U1608 GM1_Y BOSONS 1

This whole region of parameter space will take about 7 hours to run on a single core (of course, this depends on the power of the machine used to run it). I am in the process of parallelizing the code to increase efficiency, but at the moment one can simply run the code for smaller regions of parameter space in tandem. For example, the same region of parameter space can be scanned in approximately 1.5 hrs if 5 cores are used for the following five scripts

  • python DMDriver.py 1.0 10.0 50 55 24 1 2 4U1608 GM1_Y BOSONS 1
  • python DMDriver.py 1.0 10.0 50 55 24 3 4 4U1608 GM1_Y BOSONS 1
  • python DMDriver.py 1.0 10.0 50 55 24 5 6 4U1608 GM1_Y BOSONS 1
  • python DMDriver.py 1.0 10.0 50 55 24 7 8 4U1608 GM1_Y BOSONS 1
  • python DMDriver.py 1.0 10.0 50 55 24 9 10 4U1608 GM1_Y BOSONS 1