Giter Site home page Giter Site logo

uva-api_master-project's Introduction

UvA_logo VU_logo API_logo

This repository contains the files used for the Master Project at the Anton Pannekoek Institute & University of Amsterdam. The thesis of this repository and its findings can be found at the UvA Scriptie Bibliotheek.

Abstract

Extreme objects in the universe have been found to be in multi-object systems like binaries. When one of these components is a black hole, these binaries can emit X-rays from its accretion disk and the area closer to and around the black hole called the corona. However, due to a still debated mechanism, variations in the X-rays from the accretion disk and the corona will lag behind each other. Recently, a new model has come out to describe these lags. Initially, the model was created in Python, and this project aimed to look into the viability of converting it to a compiled language like C++. The reasons are quicker run time and the ability to run in a standardized fitting program, XSPEC. The latter, however, was not investigated in this thesis. While most of the functions part of this Python lag model could be easily converted with little to no changes, the calculations concerning the illumination fractions could be overhauled entirely by separating the radial dependent and independent calculations. The overhaul caused a speedup of this calculation of around 40-70% depending on the grid size of the geometry used. This speedup is equal to a speedup of several seconds on a function that takes several seconds. To test the converted functions, the C++ version and Python version of the model were fitted to XMM Newton data from GX 339-4 and NICER data from MAXI J1820+070. Both versions of the model fitted the data with similar results and fit quality. In conclusion, the conversion does speed up the model run time but less than one might expect. As such, it remains a question whether it is worth converting the model for use in the standardized fitting program or just implementing the improvements to the Python version.

Contents

This repository contains the following:

  • All the images and figures used for the thesis as well as the thesis versions.
  • A test for the creation of a pybind module as well as trying out XSPEC in test/ & pymodule/
  • The flowcharts of all the functions in the model in flowcharts/.
  • The original model as well as some of the fitting notebooks in mono_lags/
  • The converted model to C++ in C++/

mono_lags/

In this directory all the files related to the original model and fitting this model that were acquired. This also includes two datasets from GX 339-4 (Uttley et. al. 2011) & MAXI J1820+070 (Wang et. al. 2021; Bollemeijer et. al. 2024) to check if the converted model and the original model would get similar results (proving the conversion worked). It uses modules like Numpy, Scipy.

C++/

In this C++ directory all the files related to the converted model as well as the C++ side of testing. It converted the model that is located in mono_lags/. For sharing values between the versions it uses nlohmann/json and for the fast fourier transform mreineck/pocketfft.

uva-api_master-project's People

Contributors

danivenk avatar

Watchers

 avatar  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.