Skip to content

AuroraDysis/GRSuite.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GRSuite

Dev Build Status Coverage Code Style: Blue Aqua

Warning

I'm still actively developing it and migrating code from private repositories to this one, so it may currently lack some features.

Motivation and Purpose

After developing hundreds of PDE solvers for various projects, I decided to create GRSuite.jl because I couldn't find a library that was both highly convenient and effective for solving partial differential equations (PDEs) in the context of general relativity (GR).

When solving GR PDEs in spherical symmetry or even axisymmetry, the requirements are often far more demanding than in 3+1 cases. These include the need for very long-time simulations, conservation of quantities, highly accurate late-time behavior, and precise computation of quasinormal modes. While I have addressed these challenges individually in the past, I grew tired of copying and pasting solutions from old repositories. Instead, I decided to develop a comprehensive, feature-rich, and highly efficient library. This is my answer to those challenges.

Description

GRSuite.jl is a high-performance suite designed to compute arbitrary-precision solutions of PDEs in GR. It is planned to support solving the following built-in equations (some of which were developed for previous projects and will be ported to this library):

  • Spherical Symmetry

    • Regge-Wheeler-Zerilli equation
      • Hyperboloidal coordinates
      • Kerr-Schild coordinates
      • Tortoise coordinates
    • Klein-Gordon equation
      • Hyperboloidal coordinates
      • Kerr-Schild coordinates
      • Tortoise coordinates
    • Einstein equations with a scalar field
      • Z4 formulation
      • Hyperboloidal coordinates
  • Axisymmetry

    • Teukolsky equation
      • Hyperboloidal coordinates
      • Kerr-Schild coordinates
      • Tortoise coordinates
    • Klein-Gordon equation
      • Hyperboloidal coordinates
      • Kerr-Schild coordinates
      • Tortoise coordinates
  • Quasinormal Modes

    • Compute quasinormal modes for the Schwarzschild black hole using the Regge-Wheeler-Zerilli equation.
      • Continued fraction method to determine the eigenvalue
      • Ultraspherical spectral method in hyperboloidal coordinates to determine the eigenfunction.
      • Dolan and Ottewill Regge poles expansion method
      • WKB approximation
      • Direct integration method
    • Compute quasinormal modes for the Kerr black hole using the Teukolsky equation.
      • Continued fraction method for the radial equation (translated from duetosymmetry/qnm)
      • Cook-Zalutskiy spectral method for the angular sector (translated from duetosymmetry/qnm)
      • Direct integration method for the radial equation
      • Ultraspherical spectral method in hyperboloidal coordinates to determine the eigenfunction.

GRSuite.jl currently includes utilities for the following numerical methods:

  • Spatial Discretization
    • Chebyshev collocation at Chebyshev points of the first and second kinds (Most of algorithms are translated from Chebfun)
    • Finite difference method
    • Hermite finite difference method
    • Rectangular collocation method (Most of algorithms are translated from Chebfun)
    • Ultraspherical spectral method (Most of algorithms are translated from Chebfun)
      • For boundary value problems, I recommend using ApproxFun.jl.
    • Ultraspherical rectangular collocation
  • Quasinormal Mode Computation
    • Modified Lentz method for continued fractions
    • WKB approximation for general potentials
  • General Utilities
    • Correctly rounded floating-point dot/sum using xsum or Kahan summation
    • Spin-weighted spheroidal harmonics using the Cook-Zalutskiy spectral method

While the ChebyshevSuite is inspired by algorithms from Chebfun, it has been significantly enhanced in this package to improve performance and support arbitrary-precision calculations.

Acknowledgments

This package is inspired by the following projects, and some of the algorithms are translated / adapted from them:

The author would like to thank the developers of these projects for their contributions to the scientific computing community.

Other Related Projects

Releases

No releases published

Packages

No packages published

Languages