Giter VIP home page Giter VIP logo

aimforgw's Introduction

AIMforGW

Atom Interferometer detectors in the Mid-band for Gravitational Waves: fisher-matrix parameter reconstruction forecast

If you use AIMforGW for your work, please cite arXiv:2309.07952.

AIMforGW is a Fisher-matrix forecast code for parameter reconstruction of gravitational wave (GW) signals from compact binaries generated during the inspiral phase with single-baseline (e.g., atom-interferometry based) detectors.

A short description of the modules can be found below. The basic useage is as follows:

  • Select the version of the code you would like to run (ParamEstimator_SpaceAI.py, ParamEstimator_GroundAI.py, ParamEstimator_LO_SpaceAI.py, ParamEstimator_LO_GroundAI.py) and load the module into python3.
  • Create an instance of the GW_event class with the GW source and detector parameters as inputs, see the description in each script
  • You can then for example calculate the signal-to-noise ratio and the Fisher Matrix for that GW_event instance by running GW_event.get_SNR_FisherMatrix().
  • Similarly, the co-variance matrix and the angular resolution for the instance with and without including priors on periodic parameters (the angular variables describing the position of the GW source and the orientation of the binary's angular momentum) can be generated by calling GW_event.get_CoVaMat(), GW_event.get_CoVaMat_priors(), GW_event.get_angular_resolution(), and GW_event.get_angular_resolution_priors().

Examples of scripts showing how to set up these input parameters, run the code, and save the output as pickle files are included, see the Example_*.py files. Each example can be executed by calling python3 EXAMPLE.py. The output generated by each of these examples can be found in the "ExamplesOutput" folder. A jupyter notebook showing how to load the output stored in these pickle files is also included, see Example_results.ipynb.

Description of the Code:

The basic approach of the code is as follows:

  • Generate polarization-basis time-domain waveforms using the post-newtonian waveforms (up to 3.5/3.0 PN order frequency evolution/amplitude correction) for non-spinning, non-precessing binaries.
  • Generate time-dependent antenna functions as appropriate for a (network of) vertical terrestrial atom-interferometer-based detector(s) or a satellite-borne detector in geocentric orbit.
  • Compute the time-domain strain in the detector(s), Fourier transform to the frequency domain.
  • Compute the signal-to-noise ratio and the Fisher matrix (using single-sided first-order finite difference derivatives).

Short description of the modules in AIMforGW:

Main Modules:

  • ParamEstimator_SpaceAI.py: Main wrapper for parameter estimation forecasts for a satellite-borne detector, using Post-Newtonian (up to 3.5/3.0 PN) inspiral waveforms.
  • ParamEstimator_GroundAI.py: Main wrapper for parameter estimation forecasts for a network of km-size terrestrial detectors, using Post-Newtonian (up to 3.5/3.0 PN) inspiral waveforms.
  • ParamEstimator_LO_SpaceAI.py: Same as SpaceAI_paramEstimator.py, but using leading-order (phase evolution and polarisation waveforms) waveforms.
  • ParamEstimator_LO_GroundAI.py: Same as GroundAI_paramEstimator.py, but using leading-order (phase evolution and polarisation waveforms) waveforms.

Auxiliary modules:

  • waveform_PN.py: Functions for computing the inspiral waveforms in the Post-Newtonian expansion up to 3.5/3.0 PN, following Blanchet arXiv:1310.1528.
  • waveform_LO.py: Functions for computing leading-order inspiral waveforms, following Maggiore 2008, chapter 4.1.
  • antennaFuns_satellites.py: Functions to compute the antenna functions for a space-based AI GW detector. These antenna functions assume that the baseline is formed by two satellites orbiting Earth in a formation where one satellite trails the other on the same orbit.
  • antennaFuns_ground.py: Functions to compute the antenna functions for ground-based AI GW detectors. These antenna functions assume that the baseline of a given detector is vertical and at the surface of the Earth.
  • helper_funs.py: Some functions useful for the main wrappers.

Noise Curve data:

  • NoiseCurve_Space.dat: Noise curve for a satellite-borned detector. This is the envelope of the sensitivity in the resonant detector mode (the brown line) from Fig. 1 of arXiv:1711.02225
  • NoiseCurve_Groundkm.dat: Noise curve for a km-version of a terrestrial GW detector. This is based on Fig. 1 of arXiv:2104.02835, including the gravity gradient noise contribution

Examples:

  • Example_SpaceAI.py: Example script showing how to enter parameters and run the code for ParamEstimator_SpaceAI.py. An example of the output generated by this script (stored as a pickle object) can be found in ExampleOutput/results_Example_SpaceAI.
  • Example_GroundAI.py: Example script showing how to enter parameters and run the code for ParamEstimator_GroundAI.py. An example of the output generated by this script (stored as a pickle object) can be found in ExampleOutput/results_Example_GroundAI.
  • Example_LO_SpaceAI.py: Example script showing how to enter parameters and run the code for ParamEstimator_LO_SpaceAI.py. An example of the output generated by this script (stored as a pickle object) can be found in ExampleOutput/results_Example_LO_SpaceAI.
  • Example_LO_GroundAI.py: Example script showing how to enter parameters and run the code for ParamEstimator_LO_GroundAI.py. An example of the output generated by this script (stored as a pickle object) can be found in ExampleOutput/results_Example_LO_GroundAI.
  • Example_results.ipynb: Jupyter notebook showing how to load the the output generated from these examples and how to access the results.

aimforgw's People

Contributors

sbaum90 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.