From ff281c277ae66fd72d98e327420027aabf9bb625 Mon Sep 17 00:00:00 2001 From: schnetter Date: Sun, 20 Mar 2005 16:47:38 +0000 Subject: Add the shifted gauge wave exact solution git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@219 e296648e-0e4f-0410-bd07-d597d9acff87 --- src/decode_pars.F77 | 2 + src/include/Scalar_CalcTmunu.inc | 2 + src/include/param_defs.inc | 11 +-- src/metric.F77 | 9 ++ src/metrics/Minkowski_shifted_gauge_wave.F77 | 118 +++++++++++++++++++++++++++ 5 files changed, 137 insertions(+), 5 deletions(-) create mode 100644 src/metrics/Minkowski_shifted_gauge_wave.F77 (limited to 'src') 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 @@ -39,6 +39,8 @@ c no stress-energy tensor in this model elseif (decoded_exact_model .eq. EXACT__Minkowski_funny) then 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 @@ -75,6 +75,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__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 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 -- cgit v1.2.3