This thorn creates time symmetric initial data for Brill wave spacetimes. It can create both axisymmetric data (in a 3D cartesian grid), as well as data with an angular dependency.
The purpose of this thorn is to create (time symmetric) initial data for a Brill wave spacetime. It does so by starting from a three–metric of the form originally considered by Brill \begin {equation} ds^2 = \Psi ^4 \left [ e^{2q} \left ( d\rho ^2 + dz^2 \right ) + \rho ^2 d\phi ^2 \right ] =\Psi ^4 \hat {ds}^{2}, \label {eqn:brillmetric} \end {equation} where \(q\) is a free function subject to certain regularity and fall-off conditions, \(\rho =\sqrt {x^2+y^2}\) and \(\Psi \) is a conformal factor to be solved for.
Thorn IDBrillData provides three choices for the \(q\) function: an exponential form, (IDBrillData::q_function = "exp") \begin {equation} q = a \; \frac {\rho ^{2+b}}{r^2} e^{-\left ( \frac {z}{\sigma _z} \right )^2} e^{-(\rho - \rho _0)^2} \left [ 1 + d \frac {\rho ^m}{1 + e \rho ^m} \cos ^2 \left ( n \phi + \phi _0 \right ) \right ] \end {equation} a generalized form of the \(q\) function first written down by Eppley (IDBrillData::q_function = "eppley") \begin {equation} q = a \left ( \frac {\rho }{\sigma _\rho } \right )^b \frac {1}{1 + \left [ \left ( r^2 - r_0^2 \right ) / \sigma _r^2 \right ]^{c/2}}\left [ 1 + d \frac {\rho ^m}{1 + e \rho ^m} \cos ^2 \left ( n \phi + \phi _0 \right ) \right ] \end {equation} and the (default) Gundlach \(q\) function which includes the Holz form (IDBrillData::q_function = "gundlach") \begin {equation} q = a \left ( \frac {\rho }{\sigma _\rho } \right )^b e^{-\left [ \left ( r^2 - r_0^2 \right ) / \sigma _r^2 \right ]^{c/2}} \left [ 1 + d \frac {\rho ^m}{1 + e \rho ^m} \cos ^2 \left ( n \phi + \phi _0 \right ) \right ] \end {equation}
Substituting the metric into the Hamiltonian constraint gives an elliptic equation for the conformal factor \(\Psi \) which is then numerically solved for a given function \(q\): \begin {equation} \hat {\nabla } \Psi - \frac {\Psi }{8} \hat {R} = 0 \end {equation} where the conformal Ricci scalar is found to be
Assuming the initial data to be time symmetric means that the momentum constraints are trivially satisfied.
In the case of axisymmetry (that is \(d=0\) in the above expressions for \(q\)), the Hamiltonian constraint can be written as an elliptic equation for \(\Psi \) with just the flat space Laplacian, \begin {equation} \nabla _{flat} \Psi + \frac {\Psi }{4} (\partial _z^2 q + \partial _\rho ^2 q) = 0 \end {equation} If the initial data is chosen to be ADMBase::initial_data = "brilldata2D" then this elliptic equation is solved rather than the equation above.
Brill initial data is activated by choosing the CactusEinstein/ADMBase parameter initial_data to be brilldata, or for the case of axisymmetry brilldata2D can also be used.
The parameter IDBrillData::q_function chooses the form of the \(q\) function to be used, defaulting to the Gundlach expression.
Additional IDBrillData parameters for each form of \(q\) fix the remaining freedom:
Exponential \(q\): IDBrillData::q_function = "exp"
\((a, b,\sigma _z,\rho _0)=\) (exp_a, exp_b, exp_sigmaz,exp_rho0)
Eppley \(q\): IDBrillData::q_function = "eppley"
\((a, b,\sigma _\rho , r_0,\sigma _r,c)=\) (eppley_a, eppley_b, eppley_sigmarho, eppley_r0, eppley_sigmar, eppley_c)
Gundlach \(q\): IDBrillData::q_function = "gundlach"
\((a, b,\sigma _\rho , r_0,\sigma _r,c)=\) (gundlach_a, gundlach_b, gundlach_sigmarho, gundlach_r0, gundlach_sigmar, gundlach_c)
Non-axisymmetric part for each choice of \(q\)
\((d, m, e, n, \phi 0)=\) (brill3d_d, brill3d_m, brill3d_e, brill3d_n, brill3d_phi0)
Note that the default \(q\) expression is
IDBrillData can use the elliptic solvers (type LinMetric) provided by CactusEinstein/EllSOR,
AEIThorns/BAM_Elliptic, or CactusElliptic/EllPETSc to solve the equation resulting from the Hamiltonian
constraint. In all cases the parameter thresh sets the threshold for the elliptic solve. The choice of elliptic solver
is made through the parameter brill_solver:
sor: Understands the Robin boundary condition, additional parameters control the maximum number of iterations (sor_maxit).
bam: BAM_Elliptic does not properly implement the elliptic infrastructure of EllBase, and the
BAM_Elliptic parameter to use the Robin boundary condition must be set independently of
IDBrillWave::brill_bound.
Thorn IDBrillData understands both the “physical” and “static conformal” metric_type. In the case of a conformal metric being chosen, the conformal factor is set to \(\Psi \). Currently the derivatives of the conformal factor are not calculated, so that only staticconformal::conformal_storage = "factor" is supported.
Dieter Brill, Ann. Phys., 7, 466, 1959.
Ken Eppley, Sources of Gravitational Radiation, edited by L. Smarr (Cambridge University Press, Cambridge, England, 1979), p. 275.
Gravitational Collapse of Gravitational Waves in 3D Numerical Relativity, Miguel Alcubierre, Gabrielle Allen, Bernd Bruegmann, Gerd Lanfermann, Edward Seidel, Wai-Mo Suen, Malcolm Tobias, Phys. Rev. D61, 041501, 2000.
bound | Scope: private | KEYWORD |
Description: Which boundary condition to use
| ||
Range | Default: robin | |
const | constant boundary: set const_v0
| |
robin | Robin boundary: set robin_falloff, robin_inf
| |
brill3d_d | Scope: private | REAL |
Description: 3D Brill wave: d rho cos(n (phi + phi0))
| ||
Range | Default: 0.0 | |
: | Anything
| |
brill3d_e | Scope: private | REAL |
Description: 3D Brill wave: d rho cos(n (phi + phi0))
| ||
Range | Default: 1.0 | |
: | Anything
| |
brill3d_m | Scope: private | REAL |
Description: 3D Brill wave: d rho cos(n (phi + phi0))
| ||
Range | Default: 2.0 | |
: | Anything
| |
brill3d_n | Scope: private | REAL |
Description: 3D Brill wave: d rho cos(n (phi + phi0))
| ||
Range | Default: 2.0 | |
: | Anything
| |
brill3d_phi0 | Scope: private | REAL |
Description: 3D Brill wave: d rho cos(n (phi + phi0))
| ||
Range | Default: 0.0 | |
: | Anything
| |
const_v0 | Scope: private | REAL |
Description: Value of constant BC
| ||
Range | Default: 1.0 | |
: | anything goes
| |
eppley_a | Scope: private | REAL |
Description: Eppley Brill wave: Amplitude
| ||
Range | Default: 0.0 | |
: | Anything
| |
eppley_b | Scope: private | INT |
Description: Eppley Brill wave: used in exponent in rho: rho
| ||
Range | Default: 2 | |
: | Anything
| |
eppley_c | Scope: private | INT |
Description: Eppley Brill wave: (r - r0)c/2)
| ||
Range | Default: 2 | |
: | Anything
| |
eppley_r0 | Scope: private | REAL |
Description: Eppley Brill wave: radius of torus in r
| ||
Range | Default: 0.0 | |
0:* | Positive
| |
eppley_sigmar | Scope: private | REAL |
Description: Eppley Brill wave: sigma in r
| ||
Range | Default: 1.0 | |
: | Anything
| |
eppley_sigmarho | Scope: private | REAL |
Description: Eppley Brill wave: sigma in rho
| ||
Range | Default: 1.0 | |
: | Anything
| |
exp_a | Scope: private | REAL |
Description: Exp Brill wave: Amplitude
| ||
Range | Default: 0.0 | |
: | Anything
| |
exp_b | Scope: private | INT |
Description: Exp Brill wave: used in exponent in rho: rho2+b)
| ||
Range | Default: 2 | |
: | Anything
| |
exp_rho0 | Scope: private | REAL |
Description: Exp Brill wave: radius of torus in rho
| ||
Range | Default: 0.0 | |
0:* | Positive
| |
exp_sigmaz | Scope: private | REAL |
Description: Exp Brill wave: sigma in z
| ||
Range | Default: 1.0 | |
(0:* | Positive
| |
gundlach_a | Scope: private | REAL |
Description: Gundlach Brill wave: Amplitude
| ||
Range | Default: 0.0 | |
: | Anything
| |
gundlach_b | Scope: private | INT |
Description: Gundlach Brill wave: used in exponent in rho: rho
| ||
Range | Default: 2 | |
: | Anything
| |
gundlach_c | Scope: private | INT |
Description: Gundlach Brill wave: (r - r0)c/2)
| ||
Range | Default: 2 | |
: | Anything
| |
gundlach_r0 | Scope: private | REAL |
Description: Gundlach Brill wave: radius of torus in r
| ||
Range | Default: 0.0 | |
0:* | Positive
| |
gundlach_sigmar | Scope: private | REAL |
Description: Gundlach Brill wave: sigma in r
| ||
Range | Default: 1.0 | |
: | Anything
| |
gundlach_sigmarho | Scope: private | REAL |
Description: Gundlach Brill wave: sigma in rho
| ||
Range | Default: 1.0 | |
: | Anything
| |
output_coeffs | Scope: private | BOOLEAN |
Description: output coefficients for elliptic solve
| ||
Default: no | ||
q_function | Scope: private | KEYWORD |
Description: Form of function q [0,1,2]
| ||
Range | Default: gundlach | |
exp | contains e-z} factor
| |
eppley | contains 1/(1+r) factor
| |
gundlach | contains e-r} factor
| |
rhofudge | Scope: private | REAL |
Description: delta rho for axis fudge
| ||
Range | Default: 0.00001 | |
0: | Positive please
| |
robin_falloff | Scope: private | INT |
Description: Fall-off of Robin BC
| ||
Range | Default: 1 | |
0: | any positive integer value
| |
robin_inf | Scope: private | REAL |
Description: Value at infinity of Robin BC
| ||
Range | Default: 1.0 | |
: | anything goes
| |
solver | Scope: private | KEYWORD |
Description: Which elliptic solver to use
| ||
Range | Default: sor | |
sor | Use SOR solver
| |
petsc | Use PETSc solver
| |
bam | Use bam solver
| |
sor_maxit | Scope: private | INT |
Description: Maximum number of iterations
| ||
Range | Default: 10000 | |
0:* | Positive
| |
thresh | Scope: private | REAL |
Description: How far (absolute norm) to go
| ||
Range | Default: 0.00001 | |
0.0: | Positive number please
| |
conformal_storage | Scope: shared from STATICCONFORMAL | KEYWORD |
Implements:
idbrilldata
Inherits:
grid
admbase
staticconformal
ellbase
Group Names | Variable Names | Details | |
brillelliptic | compact | 0 | |
brillMlinear | description | Coefficients for linear elliptic equation | |
brillNsource | dimensions | 3 | |
distribution | DEFAULT | ||
group type | GF | ||
timelevels | 1 | ||
variable type | REAL | ||
brillconf | compact | 0 | |
brillpsi | description | Conformal factor for Brill data | |
dimensions | 3 | ||
distribution | DEFAULT | ||
group type | GF | ||
timelevels | 1 | ||
variable type | REAL | ||
This section lists all the variables which are assigned storage by thorn EinsteinInitialData/IDBrillData. 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.
Conditional: | |
brillconf | |
brillelliptic | |
CCTK_PARAMCHECK (conditional)
idbrilldata_paramchecker
check that the metric_type is recognised
Language: | c | |
Options: | global | |
Type: | function | |
CCTK_WRAGH (conditional)
brilldata_initsymbound
set up symmetries for brillpsi
Language: | c | |
Options: | global | |
Type: | function | |
ADMBase_InitialData (conditional)
brilldata
construct brill wave initial data
Language: | fortran | |
Type: | function | |