smallbPoynET

Zachariah B. Etienne <zachetie *at* gmail *dot* com >
Documentation by Leonardo R. Werneck <wernecklr *at* gmail *dot* com >

October 4, 2024

Abstract

smallbPoynET is an Einstein Toolkit thorn for computing the time-component of the fluid four-velocity, \(u^0\), the magnetic field measured by a comoving observer \(b^{\mu }\), and the Poynting vector \(S^i\).

1 Overview

We want to compute the time-component of the fluid four-velocity, \(u^0\), the magnetic field measured by a comoving observer \(b^{\mu }\), and the Poynting vector \(S^i\). We are given the ADMBase and HydroBase gridfunctions.

First, note that the magnetic field measured by a comoving observer, \(b^{\mu }\), is given by (see e.g., [1]) \begin {align} b^{0} &= \frac {1}{\sqrt {4\pi }}\frac {u_{j}B^{j}}{\alpha }\;,\\ b^{i} &= \frac {1}{\sqrt {4\pi }}\frac {B^{i} + \bigl (u_{j}B^{j}\bigr )u^{i}}{\alpha u^{0}}\;, \end {align}

where \(B^{i}\) are the spatial components of the magnetic field, \(u^{\mu }\) is the fluid four-velocity, and \(\alpha \) is the lapse function. Furthermore, the spatial components of the fluid four-velocity are given by \begin {equation} u^{i} = \alpha u^{0}\left (v^{i}-\beta ^{i}/\alpha \right )\;, \end {equation} where \(\beta ^{i}\) is the shift vector and \(v^{i}\) is the Valencia three-velocity. This means that all that we are missing in order to compute \(u^{i}\) and \(b^{\mu }\) is the time-component of the fluid four-velocity, \(u^{0}\).

Consider, thus, the definition of the Lorentz factor \(W\), \begin {equation} W = \frac {1}{\sqrt {1-\gamma _{ij}v^{i}v^{j}}}\;, \end {equation} where \(\gamma _{ij}\) is the physical spatial metric. Furthermore, consider the constraint \(u_{\mu }u^{\mu }=1\), from which we find \begin {equation} \begin {split} -1 &= g_{\mu \nu }u^{\mu }u^{\nu }\\ &= g_{00}u^{0}u^{0} + 2g_{0i}u^{0}u^{i} + g_{ij}u^{i}u^{j}\\ &= \left (-\alpha ^{2}+\beta _{\ell }\beta ^{\ell }\right )\left (u^{0}\right )^{2} + 2u^{0}\beta _{i}\left [\alpha u^{0}\left (v^{i}-\frac {\beta ^{i}}{\alpha }\right )\right ] + \gamma _{ij}\left [\alpha u^{0}\left (v^{i}-\frac {\beta ^{i}}{\alpha }\right )\right ]\left [\alpha u^{0}\left (v^{j}-\frac {\beta ^{j}}{\alpha }\right )\right ]\\ &= -\left (\alpha u^{0}\right )^{2}\left (1 - \gamma _{ij}v^{i}v^{j}\right )\;, \end {split} \end {equation} where we have used the ADM decomposition of the spacetime metric \begin {equation} g_{\mu \nu } = \begin {pmatrix} -\alpha ^{2}+\beta _{\ell }\beta ^{\ell } & \beta _{i}\\ \beta _{j} & \gamma _{ij} \end {pmatrix}\;. \end {equation} Therefore we find that \begin {equation} W^{2} = \frac {1}{1-\gamma _{ij}v^{i}v^{j}} = \left (\alpha u^{0}\right )^{2} \implies u^{0} = W/\alpha \;. \end {equation} Therefore after computing \(W\) using the ADMBase and HydroBase variables, we are able to compute \(u^{0}\) and therefore \(u^{i}\) and \(b^{\mu }\).

The Poynting vector, \(S^{i}\), is computed using Eq. (11) in [2] but adopting the sign convention of [3], i.e., \begin {equation} S^{i} \equiv -\alpha T^{i}_{\rm EM} = -\alpha \left (b^{2}u^{i}u_{0} + \frac {1}{2}b^{2}g^{i}_{\ 0} - b^{i}b_{0}\right )\;, \end {equation} where \(b^{2}\equiv b_{\mu }b^{\mu }\).

2 Basic usage

In other to use the smallbPoynET thorn, the user must activate it in the parfile and specify the frequency in which the quantities above are computed. Note that by default the frequency is set to zero, which effectively disables the thorn. If you are using thorns that evolves gridfunctions other than those defined by ADMBase or HydroBase, then you must make sure to convert your gridfunctions to the ones used by this thorn when before calling it.

Adding the following lines to your parfile will activate this thorn and trigger the computation of \(u^{0}\), \(b^{\mu }\), and \(S^{i}\) once every 16 time steps.

ActiveThorns = "smallbPoynET"
# Configure thorn to compute u^{0}, b^{mu}, and S^{i} every 16 time steps
smallbPoynET::smallbPoynET_compute_every = 16

References

[1]   M.D. Duez, Y.T. Liu, S.L. Shapiro, & B.C. Stephens, Relativistic magnetohydrodynamics in dynamical spacetimes: Numerical methods and tests, Physical Review D, 72, 2, 024028 (2005).

[2]   B. J. Kelly, J. G. Baker, Z. B. Etienne, B. Giacomazzo, & J. Schnittman, Prompt electromagnetic transients from binary black hole mergers, Physical Review D, 96(12), 123003 (2017).

[3]   B. D. Farris, R. Gold, V. Paschalidis, Z. B. Etienne, & S. L. Shapiro, Binary black-hole mergers in magnetized disks: simulations in full general relativity, Physical Review Letters, 109(22), 221102 (2012).

3 Parameters




enable_warning
Scope: private INT



Description: Warn if regrid_every divided by smallbPoynET_compute_every is not an integer >= 1. You may see AMR artifacts otherwise!



Range Default: 1
0:1
zero (disable) or one (enable)






smallbpoynet_compute_every
Scope: private INT



Description: How often to compute smallbPoyn?



Range Default: (none)
0:100000
zero (disable computation) or some other number (1 = every iteration)






timelevels
Scope: shared from HYDROBASEINT



4 Interfaces

General

Implements:

smallbpoynet

Inherits:

grid

hydrobase

admbase

Grid Variables

4.0.1 PRIVATE GROUPS





  Group Names     Variable Names   Details    




smallbpoynetgfs compact 0
smallbt dimensions 3
smallbx distribution DEFAULT
smallby group type GF
smallbz tags InterpNumTimelevels=1 prolongation=”none” Checkpoint=”no”
smallb2 timelevels 1
Poynx variable type REAL




5 Schedule

This section lists all the variables which are assigned storage by thorn WVUThorns_Diagnostics/smallbPoynET. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.

Storage

 

Always:  
smallbPoynETGFs  
ADMBase::metric[metric_timelevels] ADMBase::curv[metric_timelevels] ADMBase::lapse[lapse_timelevels] ADMBase::shift[shift_timelevels]  
HydroBase::rho[timelevels] HydroBase::press[timelevels] HydroBase::eps[timelevels] HydroBase::vel[timelevels] HydroBase::Bvec[timelevels]  
   

Scheduled Functions

CCTK_ANALYSIS

  compute_bi_b2_poyn_fluxet

  set bˆm  u, bˆ2  , and poynting flux gridfunctions.

 

  Before: volumeintegralgroup
  Language: c
  Options: global-early
    loop-local
  Type: function