diff options
author | schnetter <schnetter@e296648e-0e4f-0410-bd07-d597d9acff87> | 2005-03-20 16:47:38 +0000 |
---|---|---|
committer | schnetter <schnetter@e296648e-0e4f-0410-bd07-d597d9acff87> | 2005-03-20 16:47:38 +0000 |
commit | ff281c277ae66fd72d98e327420027aabf9bb625 (patch) | |
tree | 2922a37d9c8dd8df28a6b1a52f6a4f517353cade | |
parent | 926d3ad367fe20e47e77e90d0dfe630fc9639760 (diff) |
Add the shifted gauge wave exact solution
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@219 e296648e-0e4f-0410-bd07-d597d9acff87
-rw-r--r-- | param.ccl | 11 | ||||
-rw-r--r-- | src/decode_pars.F77 | 2 | ||||
-rw-r--r-- | src/include/Scalar_CalcTmunu.inc | 2 | ||||
-rw-r--r-- | src/include/param_defs.inc | 11 | ||||
-rw-r--r-- | src/metric.F77 | 9 | ||||
-rw-r--r-- | src/metrics/Minkowski_shifted_gauge_wave.F77 | 118 |
6 files changed, 143 insertions, 10 deletions
@@ -200,11 +200,12 @@ KEYWORD exact_model "The exact solution/coordinates used in thorn exact" # # Minkowski spacetime # -"Minkowski" :: "Minkowski spacetime" -"Minkowski/shift" :: "Minkowski spacetime with time-dependent shift vector" -"Minkowski/funny" :: "Minkowski spacetime in non-trivial spatial coordinates" -"Minkowski/gauge wave" :: "Minkowski spacetime in gauge-wave coordinates" -"Minkowski/conf wave" :: "Minkowski spacetime with 'waves' in conformal factor" +"Minkowski" :: "Minkowski spacetime" +"Minkowski/shift" :: "Minkowski spacetime with time-dependent shift vector" +"Minkowski/funny" :: "Minkowski spacetime in non-trivial spatial coordinates" +"Minkowski/gauge wave" :: "Minkowski spacetime in gauge-wave coordinates" +"Minkowski/shifted gauge wave" :: "Minkowski spacetime in shifted gauge-wave coordinates" +"Minkowski/conf wave" :: "Minkowski spacetime with 'waves' in conformal factor" # # black hole spacetimes # diff --git a/src/decode_pars.F77 b/src/decode_pars.F77 index 6574d23..1b7da46 100644 --- a/src/decode_pars.F77 +++ b/src/decode_pars.F77 @@ -58,6 +58,8 @@ c Minkowski spacetime decoded_exact_model = EXACT__Minkowski_funny elseif (CCTK_Equals(exact_model, "Minkowski/gauge wave") .ne. 0) then decoded_exact_model = EXACT__Minkowski_gauge_wave + elseif (CCTK_Equals(exact_model, "Minkowski/shifted gauge wave") .ne. 0) then + decoded_exact_model = EXACT__Minkowski_shifted_gauge_wave elseif (CCTK_Equals(exact_model, "Minkowski/conf wave") .ne. 0) then decoded_exact_model = EXACT__Minkowski_conf_wave diff --git a/src/include/Scalar_CalcTmunu.inc b/src/include/Scalar_CalcTmunu.inc index 6da31cb..346fe09 100644 --- a/src/include/Scalar_CalcTmunu.inc +++ b/src/include/Scalar_CalcTmunu.inc @@ -40,6 +40,8 @@ c no stress-energy tensor in this model c no stress-energy tensor in this model elseif (decoded_exact_model .eq. EXACT__Minkowski_gauge_wave) then c no stress-energy tensor in this model + elseif (decoded_exact_model .eq. EXACT__Minkowski_shifted_gauge_wave) then +c no stress-energy tensor in this model elseif (decoded_exact_model .eq. EXACT__Minkowski_conf_wave) then c no stress-energy tensor in this model diff --git a/src/include/param_defs.inc b/src/include/param_defs.inc index 2361c5f..10bbefa 100644 --- a/src/include/param_defs.inc +++ b/src/include/param_defs.inc @@ -30,11 +30,12 @@ c of subroutines for the individual metric types! c c Minkowski spacetime -#define EXACT__Minkowski 1 -#define EXACT__Minkowski_shift 2 -#define EXACT__Minkowski_funny 3 -#define EXACT__Minkowski_gauge_wave 4 -#define EXACT__Minkowski_conf_wave 5 +#define EXACT__Minkowski 1 +#define EXACT__Minkowski_shift 2 +#define EXACT__Minkowski_funny 3 +#define EXACT__Minkowski_gauge_wave 4 +#define EXACT__Minkowski_shifted_gauge_wave 5 +#define EXACT__Minkowski_conf_wave 6 c black hole spacetimes #define EXACT__Schwarzschild_EF 10 diff --git a/src/metric.F77 b/src/metric.F77 index 1fdc0b5..a93ea12 100644 --- a/src/metric.F77 +++ b/src/metric.F77 @@ -77,6 +77,15 @@ c $ guxx, guyy, guzz, guxy, guyz, guxz, $ psi, Tmunu_flag) + elseif (decoded_exact_model .eq. EXACT__Minkowski_shifted_gauge_wave) then + call Exact__Minkowski_shifted_gauge_wave( + $ 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__Minkowski_conf_wave) then call Exact__Minkowski_conf_wave( $ x, y, z, t, diff --git a/src/metrics/Minkowski_shifted_gauge_wave.F77 b/src/metrics/Minkowski_shifted_gauge_wave.F77 new file mode 100644 index 0000000..2806a58 --- /dev/null +++ b/src/metrics/Minkowski_shifted_gauge_wave.F77 @@ -0,0 +1,118 @@ +C This subroutine sets up Minkowski spacetime with a gague wave. +C +c $Header$ +C +C Author: unknown +C Copyright/License: unknown +C + +#include "cctk.h" +#include "cctk_Parameters.h" +#include "cctk_Functions.h" + +#define Pi (4 * atan(1.d0)) + + + subroutine Exact__Minkowski_shifted_gauge_wave( + $ 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 + DECLARE_CCTK_FUNCTIONS + +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 parameter copies + CCTK_REAL a, o, d, fs + +c local variables + CCTK_REAL H + character*100 warn_buffer + +c constants + CCTK_REAL zero,half,one + parameter (zero = 0.0d0, half=0.5d0, one=1.0d0) + +C This is a vacuum spacetime with no cosmological constant + Tmunu_flag = .false. + +C Get parameters of the exact solution. + a = Minkowski_gauge_wave__amplitude + o = Minkowski_gauge_wave__omega + d = Minkowski_gauge_wave__lambda + fs = Minkowski_gauge_wave__phase + +C How should the wave look like. + if (CCTK_EQUALS(Minkowski_gauge_wave__what_fn,"sin")) then + d = Minkowski_gauge_wave__lambda * half / Pi + if (Minkowski_gauge_wave__diagonal.ne.0) then + H = a * sin((x-y)/d - o*t/d - fs) + else + H = a * sin((x-o*t)/d - fs) + end if + else + write (warn_buffer, '(a,a,a)') + $ 'Unknown Minkowski_gauge_wave__what_fn = "', + $ Minkowski_gauge_wave__what_fn, '"' + call CCTK_WARN(0, warn_buffer) + end if + +C write metric. + + if (Minkowski_gauge_wave__diagonal.ne.0) then + + gdxx = half * H + one + gdxy = - half * H + gdyy = half * H + one + + guxx = - half * H + one + guxy = half * H + guyy = - half * H + one + + else + + gdxx = H + one + gdxy = zero + gdyy = one + + guxx = - H + one + guxy = zero + guyy = one + + end if + + gdtt = H - one + gdtx = - H + gdty = zero + gdtz = zero + + gdzx = zero + gdyz = zero + gdzz = one + +C and upper metric. + + gutt = - H - one + gutx = - H + guty = zero + gutz = zero + + guyz = zero + guzx = zero + guzz = one + + end |