![]() |
Bimetric 3+1 toolkit for spherical symmetry
|
Bimetric 3+1 Toolkit implements the standard 3+1 evolution for spherically symmetric bimetric and GR spacetimes.
The project goal is the construction of a computational toolkit for the evolution of 3+1 equations of modified theories of gravity in spherical symmetry, at the same time resembling the functionality of the EinsteinToolkit to ease transition to the full scale projects. The current implementation handles bimetric and GR spacetimes.
Note that the toolkit can handle any system of differential equations. For a pedagogical example how to use the toolkit, see Gowdy spacetimes solver.
The simulation is compliant with the results of [8].
r = 0
(on the inner boundary).
+-------------------------------------------------------+ +-----------------+ | Bimetric Evolution | | Bimetric Model | +-------------------------------------------------------+ +-----------------+ | bim-solver.cpp eomEvolution.h eomGauge.h | | bimetricModel.h | | maximalSlice.h eomMatter.h eomLapseRatios.h | +-----------------+ | eomSources.h eomMiscEquations.h | | eomConstraints.h | +-------------------------------------------------------+ +-----------------+ +-------------------+ +----------------+ +---------------+ | Grid Driver | | Initial Data | | MoL Integrator | | Output Data | +-----------------+ +-------------------+ +----------------+ +---------------+ | gridDriver.h | | gridInitialData.h | | integrator.h | | gridOutput.h | | gridFunctions.h | +-------------------+ +----------------+ +---------------+ +-----------------+ +---------------------+ +--------------+ +-----------------+ | Numerical Methods | | Data Types | | Utilities | +---------------------+ +--------------+ +-----------------+ | finiteDifferences.h | | matrix.h | | trackUsedTime.h | | methodOfLines.h | | dataTypes.h | | mpiWorld.h | | cubicSpline.h | +--------------+ | mpiDummyWorld.h | | bandSol.h | | paramsHolder.h | +---------------------+ | slog.h | +-----------------+
+---------------------------------+ +----------------------------+ | Mathematica Notebook |------------>>| Initial Data & Parameters | | bimetric-ss-in-3+1 (cpp solver) | Solve the | input.dat (initial data) | +---------------------------------+ constraint | config.ini (parameters) | | Export the equations +----------------------------+ | C++ code | V V +---------------------------------+ eom-std.h +----------------------------+ | eomEvolution.h eomMatter.h |------------>>| bim-solver.cpp | | eomSources.h eomConstraints.h | +----------------------------+ | eomGauge.h eomLapseRatios.h | | | eomMiscEquations.h | V +---------------------------------+ +----------------------------+ | output.dat | See also: maximalSlice.h +----------------------------+ Numerics: methodOfLines.h, finiteDifferences.h, dataTypes.h, matrix.h, bandSol.h, cubicSpline.h
r = 0
can be found in [11].f(t,r)
is represented by values at a discrete set of points (m,n)
.p in M <--> (t,r) <--> (m,n) (point in a manifold) (in a chart) (discretized point) | | V V f(t,r) f(m,n)The points
(m,n)
are called the grid points or nodes. The grid points are chosen to reside at the center of grid cells (the other approach would be to associate the grid points with the vertices of the grid cells). The data structure GridPoint is a wrapper for the set of fields {f,...}
that arekept in the memory for the point (m,n)
.The grid consists of the interior points, and the virtual points at the boundary. The virtual points are used to impose the boundary conditions. A cell-centered uniform grid with nLen
grid points in each grid row is shown below (see also [3], p.192).left virtual grid cell grid point right virtual point(s) .---^---. | point(s) . | n-1 ' n ' n+1 | | : +----|----+-------+-------+---------+-------+---|---+-------+----|----+ m+1 | O | | | (m+1,n) | | X | | O | +---------+-------+-------.=========.-------+-------+-------+---------+ m | | |(m,n-1)| (m,n) |(m,n+1)| | | | +---------+-------+-------'========='-------+-------+-------+---------+ m-1 | | | | | | | | | . +---------'-------+-------+---------+-------+-------+-------'---------+ : 0 | 1 2 . . . nLen | nLen+1 ^ ^ r_min r_maxThe cell-centered uniform grid implies:
r = r_min + ( n - 1/2 ) delta_r delta_r = ( r_max - r_min ) / nLen
nGhost = 1
, n
ranges between 1 and nLen
; the boundary virtual points are grid[m][0]
and grid[m][nLen+1]
m
ranges between 1 and mLen, and wraps around; the slices grid[mLen+1]
... are used for intermediate integration steps.In parallel simulations, the grid is split across processes using MPI, allowing storage of large grid functions and parallel work on each part.
The code can use OpenMP for almost all parallel loops on the spatial grid. These loops are indicated by OMP_parallel_for
, which expands to:
_Pragma("omp parallel for") i.e., into: #pragma omp parallel for
To compile with enabled parallelism, use the -fopenmp
switch:
g++ -Wall -m64 -std=c++14 -O3 -fopenmp bim-solver.cpp -o bim-solver
The code can also be compiled to be executed on a cluster with the MPI support. To compile, use the mpic++
compiler with the -D_USEMPI
switch:
mpic++ -D_USEMPI -Wall -m64 ...
Then use mpiexec
to run the resulting executable on a cluster.
Miguel Alcubierre and Jose A. Gonzalez. Regularization of spherically symmetric evolution codes in numerical relativity. Comput. Phys. Commun., 167:76–84, 2005.
Miguel Alcubierre and Martha D. Mendez. Formulations of the 3+1 evolution equations in curvilinear coordinates. Gen. Rel. Grav., 43:2769–2806, 2011.
Baumgarte and Shapiro. Numerical Relativity: Solving Einstein's Equations on the Computer. Cambridge University Press, 2010.
Baumgarte, Montero, Cordero-Carrión, and Müller. Numerical relativity in spherical polar coordinates: Evolution calculations with the BSSN formulation. Phys. Rev. D, 87:044026, Feb 2013.
Isabel Cordero-Carrión and Pablo Cerda-Duran. Partially implicit Runge-Kutta methods for wave-like equations in spherical-type coordinates. 2012.
Mewes et al. Numerical relativity in spherical coordinates with the Einstein Toolkit. Phys. Rev., D97(8):084059, 2018.
Mikica Kocic. Geometric mean of bimetric spacetimes. 2018.
Nakamura, T. and Maeda, M and Miyama, S. and Sasaki, M. General Relativistic Collapse of an Axially Symmetric Star. I The Formulation and the Initial Value Equations. Progress of Theoretical Physics, 63(4):1229–1244, 1980.
W.H. Press, S.A. Teukolsky, W.T. Vetterling, and B.P. Flannery. Numerical Recipes 3rd Edition: The Art of Scientific Computing. Cambridge University Press, 2007.
Ian Ruchlin, Zachariah B. Etienne, and Thomas W. Baumgarte. SENR/NRPy+: Numerical Relativity in Singular Curvilinear Coordinate Systems. Phys. Rev., D97(6):064036, 2018.
Milton Ruiz, Miguel Alcubierre, and Dario Nunez. Regularization of spherical and axisymmetric evolution codes in numerical relativity. Gen. Rel. Grav., 40:159–182, 2008.
Masaru Shibata. Numerical Relativity. 100 Years Of General Relativity. World Scientific Publishing Company, 2015.