aboutsummaryrefslogtreecommitdiff
path: root/src/slice_data.F
diff options
context:
space:
mode:
authorknarf <knarf@e296648e-0e4f-0410-bd07-d597d9acff87>2003-01-28 14:49:41 +0000
committerknarf <knarf@e296648e-0e4f-0410-bd07-d597d9acff87>2003-01-28 14:49:41 +0000
commitdf88cbc7f44eaed2786f331e9c839eed625ced44 (patch)
tree8141c6ac3a25a3ab8a6060812e6ec808a820b88d /src/slice_data.F
parent34f58312bd04e64c06975d579afff005734288ba (diff)
- add one new metric: Minkowski/conf wave
This is Minkowski with a cosine in the conformal factor - added support for using a static conformal factor git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/Exact/trunk@147 e296648e-0e4f-0410-bd07-d597d9acff87
Diffstat (limited to 'src/slice_data.F')
-rw-r--r--src/slice_data.F81
1 files changed, 71 insertions, 10 deletions
diff --git a/src/slice_data.F b/src/slice_data.F
index f7edb5e..088f635 100644
--- a/src/slice_data.F
+++ b/src/slice_data.F
@@ -18,7 +18,7 @@ c #define-ing the symbol EXACT_NO_F90 will turn this subroutine into a no-op
CCTK_REAL s1d(4,3), nd(4), nu(4), norm, gd(4,4), gu(4,4), g3(3,3),
$ gd_p(4,4), gd_m(4,4), gd1d(4,4,4), s2d(4,3,3), k3(3,3),
- $ ex_eps, d3(3,3,3), dx, dy, dz
+ $ ex_eps, d3(3,3,3), dx, dy, dz, exact_psi
parameter (ex_eps=1.d-6)
C Grid parameters.
@@ -55,6 +55,13 @@ C Calculate first derivatives of slice coordinates.
s1d(4,2) = 0.5d0 * (slicet(i,j+1,k) - slicet(i,j-1,k))/dy
s1d(4,3) = 0.5d0 * (slicet(i,j,k+1) - slicet(i,j,k-1))/dz
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
+
C Now we need the exact solution metric in the preferred coordinates x^A.
call Exact__metric(
@@ -66,7 +73,7 @@ C Now we need the exact solution metric in the preferred coordinates x^A.
$ gd(1,2), gd(2,3), gd(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
C Calculate n^A and dx^A/dt
@@ -165,6 +172,12 @@ C with an editor (hint for proofreading).
C Calculate g_AB,C. Need to sum explicitly over C. Do this with
C the editor.
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k)+ex_eps, slicey(i,j,k), slicez(i,j,k),
@@ -174,7 +187,14 @@ C the editor.
$ gd_p(1,2), gd_p(2,3), gd_p(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
+
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k)-ex_eps, slicey(i,j,k), slicez(i,j,k),
@@ -184,13 +204,19 @@ C the editor.
$ gd_m(1,2), gd_m(2,3), gd_m(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
do m=1,4
do n=m,4
gd1d(m,n,1) = (gd_p(m,n) - gd_m(m,n)) / (2.*ex_eps)
end do
end do
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k), slicey(i,j,k)+ex_eps, slicez(i,j,k),
@@ -200,7 +226,14 @@ C the editor.
$ gd_p(1,2), gd_p(2,3), gd_p(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
+
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k), slicey(i,j,k)-ex_eps, slicez(i,j,k),
@@ -210,13 +243,20 @@ C the editor.
$ gd_m(1,2), gd_m(2,3), gd_m(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
do m=1,4
do n=m,4
gd1d(m,n,2) = (gd_p(m,n) - gd_m(m,n)) / (2.*ex_eps)
end do
end do
+
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k), slicey(i,j,k), slicez(i,j,k)+ex_eps,
@@ -226,7 +266,14 @@ C the editor.
$ gd_p(1,2), gd_p(2,3), gd_p(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
+
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k), slicey(i,j,k), slicez(i,j,k)-ex_eps,
@@ -236,13 +283,20 @@ C the editor.
$ gd_m(1,2), gd_m(2,3), gd_m(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
do m=1,4
do n=m,4
gd1d(m,n,3) = (gd_p(m,n) - gd_m(m,n)) / (2.*ex_eps)
end do
end do
+
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k), slicey(i,j,k), slicez(i,j,k),
@@ -252,7 +306,14 @@ C the editor.
$ gd_p(1,2), gd_p(2,3), gd_p(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
+
+C Preset the conformal factor
+ if (conformal_state .ne. 0) then
+ exact_psi=1.0d0
+ else
+ exact_psi=0.0d0
+ end if
call Exact__metric(
$ decoded_exact_model,
$ slicex(i,j,k), slicey(i,j,k), slicez(i,j,k),
@@ -262,7 +323,7 @@ C the editor.
$ gd_m(1,2), gd_m(2,3), gd_m(1,3),
$ gu(4,4), gu(1,4), gu(2,4), gu(3,4),
$ gu(1,1), gu(2,2), gu(3,3),
- $ gu(1,2), gu(2,3), gu(1,3))
+ $ gu(1,2), gu(2,3), gu(1,3), exact_psi)
do m=1,4
do n=m,4
gd1d(m,n,4) = (gd_p(m,n) - gd_m(m,n)) / (2.*ex_eps)