From f5817d0d77263575f2e3bd59dcc8f7f40c94ace2 Mon Sep 17 00:00:00 2001 From: schnetter Date: Mon, 1 Nov 2004 21:50:43 +0000 Subject: Add "Schwarzschild/BL" initial data, which are a Brill-Lindquist black hole. Allow "Schwarzschild/KS" initial data to be offset from the origin. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@212 e296648e-0e4f-0410-bd07-d597d9acff87 --- src/decode_pars.F77 | 9 ++--- src/include/Scalar_CalcTmunu.inc | 2 ++ src/include/param_defs.inc | 15 +++++---- src/metric.F77 | 9 +++++ src/metrics/Kerr_KerrSchild.F77 | 8 ++--- src/metrics/Schwarzschild_BL.F77 | 71 ++++++++++++++++++++++++++++++++++++++++ src/metrics/make.code.defn | 1 + 7 files changed, 98 insertions(+), 17 deletions(-) create mode 100644 src/metrics/Schwarzschild_BL.F77 (limited to 'src') diff --git a/src/decode_pars.F77 b/src/decode_pars.F77 index 4aa7370..6574d23 100644 --- a/src/decode_pars.F77 +++ b/src/decode_pars.F77 @@ -43,9 +43,6 @@ c@@*/ DECLARE_CCTK_PARAMETERS DECLARE_CCTK_FUNCTIONS -c local variables - character*100 warn_buffer - cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c @@ -69,6 +66,8 @@ c black hole spacetimes decoded_exact_model = EXACT__Schwarzschild_EF elseif (CCTK_Equals(exact_model, "Schwarzschild/PG") .ne. 0) then decoded_exact_model = EXACT__Schwarzschild_PG + elseif (CCTK_Equals(exact_model, "Schwarzschild/BL") .ne. 0) then + decoded_exact_model = EXACT__Schwarzschild_BL elseif (CCTK_Equals(exact_model, "Schwarzschild/Novikov") .ne. 0) then decoded_exact_model = EXACT__Schwarzschild_Novikov elseif (CCTK_Equals(exact_model, "Kerr/Boyer-Lindquist") .ne. 0) then @@ -121,9 +120,7 @@ c miscellaneous spacetimes elseif (CCTK_Equals(exact_model, "constant density star") .ne. 0) then decoded_exact_model = EXACT__constant_density_star else - write (warn_buffer, '(a,a,a)') - $ 'Unknown exact_model = "', exact_model, '"' - call CCTK_WARN(0, warn_buffer) + call CCTK_WARN(0, "Unknown exact_model") endif cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc diff --git a/src/include/Scalar_CalcTmunu.inc b/src/include/Scalar_CalcTmunu.inc index bb704eb..6da31cb 100644 --- a/src/include/Scalar_CalcTmunu.inc +++ b/src/include/Scalar_CalcTmunu.inc @@ -50,6 +50,8 @@ cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc elseif (decoded_exact_model .eq. EXACT__Schwarzschild_EF) then c no stress-energy tensor in this model elseif (decoded_exact_model .eq. EXACT__Schwarzschild_PG) then +c no stress-energy tensor in this model + elseif (decoded_exact_model .eq. EXACT__Schwarzschild_BL) then c no stress-energy tensor in this model elseif (decoded_exact_model .eq. EXACT__Schwarzschild_Novikov) then c no stress-energy tensor in this model diff --git a/src/include/param_defs.inc b/src/include/param_defs.inc index fd18591..2361c5f 100644 --- a/src/include/param_defs.inc +++ b/src/include/param_defs.inc @@ -39,13 +39,14 @@ c Minkowski spacetime c black hole spacetimes #define EXACT__Schwarzschild_EF 10 #define EXACT__Schwarzschild_PG 11 -#define EXACT__Schwarzschild_Novikov 12 -#define EXACT__Kerr_BoyerLindquist 13 -#define EXACT__Kerr_KerrSchild 14 -#define EXACT__Schwarzschild_Lemaitre 15 -#define EXACT__multi_BH 16 -#define EXACT__Alvi 17 -#define EXACT__Thorne_fakebinary 18 +#define EXACT__Schwarzschild_BL 12 +#define EXACT__Schwarzschild_Novikov 13 +#define EXACT__Kerr_BoyerLindquist 14 +#define EXACT__Kerr_KerrSchild 15 +#define EXACT__Schwarzschild_Lemaitre 16 +#define EXACT__multi_BH 17 +#define EXACT__Alvi 18 +#define EXACT__Thorne_fakebinary 19 c cosmological spacetimes #define EXACT__Lemaitre 50 diff --git a/src/metric.F77 b/src/metric.F77 index 1d83dec..1fdc0b5 100644 --- a/src/metric.F77 +++ b/src/metric.F77 @@ -108,6 +108,15 @@ c $ gdxx, gdyy, gdzz, gdxy, gdyz, gdxz, $ gutt, gutx, guty, gutz, $ guxx, guyy, guzz, guxy, guyz, guxz, + $ psi, Tmunu_flag) + + elseif (decoded_exact_model .eq. EXACT__Schwarzschild_BL) then + call Exact__Schwarzschild_BL( + $ x, y, z, t, + $ gdtt, gdtx, gdty, gdtz, + $ gdxx, gdyy, gdzz, gdxy, gdyz, gdxz, + $ gutt, gutx, guty, gutz, + $ guxx, guyy, guzz, guxy, guyz, guxz, $ psi, Tmunu_flag) elseif (decoded_exact_model .eq. EXACT__Schwarzschild_Novikov) then diff --git a/src/metrics/Kerr_KerrSchild.F77 b/src/metrics/Kerr_KerrSchild.F77 index 79619cd..f2fb45a 100644 --- a/src/metrics/Kerr_KerrSchild.F77 +++ b/src/metrics/Kerr_KerrSchild.F77 @@ -66,10 +66,10 @@ C t0 is never used, but is here for illustration, and we introduce C x0 and y0 also only for clarity. C Note that z0 = 0 means z = vt for the BH. - t0 = gamma * (t - boostv * z) - z0 = gamma * (z - boostv * t) - x0 = x - y0 = y + t0 = gamma * ((t - Kerr_KerrSchild__t) - boostv * (z - Kerr_KerrSchild__z)) + z0 = gamma * ((z - Kerr_KerrSchild__z) - boostv * (t - Kerr_KerrSchild__t)) + x0 = x - Kerr_KerrSchild__x + y0 = y - Kerr_KerrSchild__y C Coordinate distance to center of black hole. Note it moves! diff --git a/src/metrics/Schwarzschild_BL.F77 b/src/metrics/Schwarzschild_BL.F77 new file mode 100644 index 0000000..f9d63f7 --- /dev/null +++ b/src/metrics/Schwarzschild_BL.F77 @@ -0,0 +1,71 @@ +c Schwarzschild spacetime in Brill-Lindquist coordinates. +C +c $Header$ + +#include "cctk.h" +#include "cctk_Parameters.h" + + subroutine Exact__Schwarzschild_BL( + $ x, y, z, t, + $ gdtt, gdtx, gdty, gdtz, + $ gdxx, gdyy, gdzz, gdxy, gdyz, gdzx, + $ gutt, gutx, guty, gutz, + $ guxx, guyy, guzz, guxy, guyz, guzx, + $ psi, Tmunu_flag) + + implicit none + + DECLARE_CCTK_PARAMETERS + +c input arguments + CCTK_REAL x, y, z, t + +c output arguments + CCTK_REAL gdtt, gdtx, gdty, gdtz, + $ gdxx, gdyy, gdzz, gdxy, gdyz, gdzx, + $ gutt, gutx, guty, gutz, + $ guxx, guyy, guzz, guxy, guyz, guzx + CCTK_REAL psi + LOGICAL Tmunu_flag + +c local variables + CCTK_REAL eps, m + +c local variables + CCTK_REAL r, psi4 + +C This is a vacuum spacetime with no cosmological constant + Tmunu_flag = .false. + +C Get parameters of the exact solution. + + eps = Schwarzschild_BL__epsilon + m = Schwarzschild_BL__mass + + r = ((x**2 + y**2 + z**2)**2 + eps**4) ** 0.25d0 + psi4 = (1 + m / (2 * r)) ** 4 + + gdtt = -1 + gdtx = 0 + gdty = 0 + gdtz = 0 + gdxx = psi4 + gdyy = psi4 + gdzz = psi4 + gdxy = 0 + gdyz = 0 + gdzx = 0 + + gutt = -1 + gutx = 0 + guty = 0 + gutz = 0 + guxx = 1 / psi4 + guyy = 1 / psi4 + guzz = 1 / psi4 + guxy = 0 + guyz = 0 + guzx = 0 + + return + end diff --git a/src/metrics/make.code.defn b/src/metrics/make.code.defn index b50ab0f..ba33ccd 100644 --- a/src/metrics/make.code.defn +++ b/src/metrics/make.code.defn @@ -14,6 +14,7 @@ SRCS = Minkowski.F77 \ \ Schwarzschild_EF.F77 \ Schwarzschild_PG.F77 \ + Schwarzschild_BL.F77 \ Schwarzschild_Novikov.F77 \ Kerr_BoyerLindquist.F77 \ Kerr_KerrSchild.F77 \ -- cgit v1.2.3