aboutsummaryrefslogtreecommitdiff
path: root/CarpetExtra/IDScalarWave
diff options
context:
space:
mode:
authoreschnett <>2001-03-01 12:40:00 +0000
committereschnett <>2001-03-01 12:40:00 +0000
commitece47455bad491c45b3136362e9239f505de23b9 (patch)
tree0e121ebd44c2fbb7711943fcd8804e85626daca3 /CarpetExtra/IDScalarWave
parent310f0ea48d18866b773136aed11200b6eda6378b (diff)
Initial revision
darcs-hash:20010301124010-f6438-fca5ed1e25f84efd816aa0d13fc23b58add7195d.gz
Diffstat (limited to 'CarpetExtra/IDScalarWave')
-rw-r--r--CarpetExtra/IDScalarWave/param.ccl23
-rw-r--r--CarpetExtra/IDScalarWave/schedule.ccl9
-rw-r--r--CarpetExtra/IDScalarWave/src/CheckParameters.F7715
-rw-r--r--CarpetExtra/IDScalarWave/src/InitialData.F77121
-rw-r--r--CarpetExtra/IDScalarWave/src/make.code.defn4
5 files changed, 50 insertions, 122 deletions
diff --git a/CarpetExtra/IDScalarWave/param.ccl b/CarpetExtra/IDScalarWave/param.ccl
index e44af902a..23f43746c 100644
--- a/CarpetExtra/IDScalarWave/param.ccl
+++ b/CarpetExtra/IDScalarWave/param.ccl
@@ -1,5 +1,9 @@
# Parameter definitions for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/param.ccl,v 1.5 2002/03/23 20:21:00 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/param.ccl,v 1.1 2001/03/01 13:40:10 eschnett Exp $
+
+shares: grid
+
+USES KEYWORD type
restricted:
@@ -8,7 +12,6 @@ KEYWORD initial_data "Type of initial data"
"plane" :: "Plane wave"
"gaussian" :: "Gaussian wave"
"box" :: "Box wave"
- "1/r" :: "1/r data"
"none" :: "No initial data, zero phi"
} "gaussian"
@@ -18,7 +21,7 @@ private:
REAL radius "The radius of the gaussian wave"
{
- *:* :: "No restriction"
+ 0:* :: "Positive"
} 0.0
REAL sigma "The sigma for the gaussian wave"
@@ -46,17 +49,3 @@ REAL amplitude "The amplitude of the waves"
*:* :: "No restriction"
} 1.0
-REAL cx "x-coordinate of center of 1/r initial data"
-{
- *:* :: "No restriction"
-} 0.0
-
-REAL cy "y-coordinate of center of 1/r initial data"
-{
- *:* :: "No restriction"
-} 0.0
-
-REAL cz "z-coordinate of center of 1/r initial data"
-{
- *:* :: "No restriction"
-} 0.0
diff --git a/CarpetExtra/IDScalarWave/schedule.ccl b/CarpetExtra/IDScalarWave/schedule.ccl
index 19bbd7cd1..cee342d08 100644
--- a/CarpetExtra/IDScalarWave/schedule.ccl
+++ b/CarpetExtra/IDScalarWave/schedule.ccl
@@ -1,13 +1,14 @@
# Schedule definitions for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/schedule.ccl,v 1.5 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/schedule.ccl,v 1.1 2001/03/01 13:40:10 eschnett Exp $
-schedule IDScalarWave_CheckParameters at PARAMCHECK
+schedule IDScalarWave_CheckParameters at CCTK_PARAMCHECK
{
LANG: Fortran
} "Check parameters"
-schedule IDScalarWave_InitialData as WaveToy_InitialData at INITIAL
+schedule IDScalarWave_InitialData at CCTK_INITIAL
{
- STORAGE: wavetoy::scalarevolve[3]
+ STORAGE: wavetoy::scalarevolve
LANG: Fortran
} "Initial data for 3D wave equation"
+
diff --git a/CarpetExtra/IDScalarWave/src/CheckParameters.F77 b/CarpetExtra/IDScalarWave/src/CheckParameters.F77
index 56cf12d1f..722bad3cc 100644
--- a/CarpetExtra/IDScalarWave/src/CheckParameters.F77
+++ b/CarpetExtra/IDScalarWave/src/CheckParameters.F77
@@ -1,5 +1,4 @@
-c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/CheckParameters.F77,v 1.5 2003/11/05 16:18:40 schnetter Exp $
+c -*-Fortran-*-
/*@@
@file CheckParameters.F77
@@ -11,9 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/Check
@@*/
#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
/*@@
@@ -36,10 +34,15 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/Check
implicit none
DECLARE_CCTK_ARGUMENTS
- DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
- if (CCTK_EQUALS(initial_data,"box")) then
+ INTEGER CCTK_Equals
+
+ if (CCTK_Equals(initial_data,"box").eq.1) then
+
+ if (CCTK_Equals(type, "box").eq.0) then
+ call CCTK_PARAMWARN("Must have a box grid with box initial data")
+ end if
if (kx.eq.0 .or. ky.eq.0 .or. kz.eq.0) then
call CCTK_PARAMWARN("Cannot have zero kx,ky,kz for box initial data")
diff --git a/CarpetExtra/IDScalarWave/src/InitialData.F77 b/CarpetExtra/IDScalarWave/src/InitialData.F77
index 0ee71e625..a6d74ae59 100644
--- a/CarpetExtra/IDScalarWave/src/InitialData.F77
+++ b/CarpetExtra/IDScalarWave/src/InitialData.F77
@@ -1,25 +1,23 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/InitialData.F77,v 1.14 2003/11/05 16:18:40 schnetter Exp $
/*@@
@file InitialData.F77
@date
- @author Tom Goodale, Erik Schnetter
+ @author Tom Goodale
@desc
Initial data for the 3D Wave Equation
@enddesc
@@*/
#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
/*@@
@routine IDScalarWave_InitialData
@date
- @author Tom Goodale, Erik Schnetter
+ @author Tom Goodale
@desc
Set up initial data for the wave equation
@enddesc
@@ -41,14 +39,11 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/Initi
INTEGER i,j,k
CCTK_REAL dt,omega, pi
- CCTK_REAL t
- CCTK_REAL x,y,z, r
-c call CCTK_INFO ("IDScalarWave_InitialData")
+ print '("IDScalarWave_InitialData")'
pi = 4.d0*atan(1.d0)
- t = cctk_time
dt = CCTK_DELTA_TIME
omega = sqrt(kx**2+ky**2+kz**2)
@@ -59,18 +54,12 @@ c call CCTK_INFO ("IDScalarWave_InitialData")
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- x = cart3d_x(i,j,k)
- y = cart3d_y(i,j,k)
- z = cart3d_z(i,j,k)
-
phi(i,j,k) = amplitude
- $ * cos((kx*x + ky*y + kz*z + omega*cctk_time) * pi)
-
+ $ * cos(kx*cart3d_x(i,j,k) + ky*cart3d_y(i,j,k)
+ $ + kz*cart3d_z(i,j,k) + omega*cctk_time)
phi_p(i,j,k) = amplitude
- $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - dt)) * pi)
-
- phi_p_p(i,j,k) = amplitude
- $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - 2*dt)) * pi)
+ $ * cos(kx*cart3d_x(i,j,k) + ky*cart3d_y(i,j,k)
+ $ + kz*cart3d_z(i,j,k) + omega*(cctk_time - dt))
end do
end do
@@ -81,41 +70,14 @@ c call CCTK_INFO ("IDScalarWave_InitialData")
do k=1, cctk_lsh(3)
do j=1, cctk_lsh(2)
do i=1, cctk_lsh(1)
-
- r = spher3d_r(i,j,k)
-
- if (r .ne. 0) then
- phi(i,j,k) = amplitude/2 * (r - radius - t) / r
- $ * exp(- (r - radius - t)**2 / sigma**2)
- $ + amplitude/2 * (r + radius + t) / r
- $ * exp(- (r + radius + t)**2 / sigma**2)
-
- phi_p(i,j,k) = amplitude/2 * (r - radius - t + dt) / r
- $ * exp(- (r - radius - t + dt)**2 / sigma**2)
- $ + amplitude/2 * (r + radius + t - dt) / r
- $ * exp(- (r + radius + t - dt)**2 / sigma**2)
-
- phi_p_p(i,j,k) = amplitude/2 * (r - radius - t + 2*dt) / r
- $ * exp(- (r - radius - t + 2*dt)**2 / sigma**2)
- $ + amplitude/2 * (r + radius + t - 2*dt) / r
- $ * exp(- (r + radius + t - 2*dt)**2 / sigma**2)
-
- else
-
- phi(i,j,k) = amplitude
- $ * (1 - 2 * (radius + t)**2 / sigma**2)
- $ * exp(- (radius + t)**2 / sigma**2)
-
- phi_p(i,j,k) = amplitude
- $ * (1 - 2 * (radius + t - dt)**2 / sigma**2)
- $ * exp(- (radius + t - dt)**2 / sigma**2)
-
- phi_p_p(i,j,k) = amplitude
- $ * (1 - 2 * (radius + t - 2*dt)**2 / sigma**2)
- $ * exp(- (radius + t - 2*dt)**2 / sigma**2)
-
- end if
-
+
+ phi(i,j,k) = amplitude
+ $ * exp(- (sqrt(cart3d_x(i,j,k)**2 + cart3d_y(i,j,k)**2
+ $ + cart3d_z(i,j,k)**2) - radius)**2 / sigma**2)
+ phi_p(i,j,k) = amplitude
+ $ * exp(- (sqrt(cart3d_x(i,j,k)**2 + cart3d_y(i,j,k)**2
+ $ + cart3d_z(i,j,k)**2) - radius - dt)**2 / sigma**2)
+
end do
end do
end do
@@ -128,59 +90,30 @@ c Use kx,ky,kz as number of modes in each direction.
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- x = cart3d_x(i,j,k)
- y = cart3d_y(i,j,k)
- z = cart3d_z(i,j,k)
-
phi(i,j,k) = amplitude
- $ * sin(kx * (x - 0.5d0) * pi)
- $ * sin(ky * (y - 0.5d0) * pi)
- $ * sin(kz * (z - 0.5d0) * pi)
+ $ * sin(kx * (cart3d_x(i,j,k) - 0.5d0) * pi)
+ $ * sin(ky * (cart3d_y(i,j,k) - 0.5d0) * pi)
+ $ * sin(kz * (cart3d_z(i,j,k) - 0.5d0) * pi)
$ * cos(omega * cctk_time * pi)
- phi_p(i,j,k) = amplitude
- $ * sin(kx * (x - 0.5d0) * pi)
- $ * sin(ky * (y - 0.5d0) * pi)
- $ * sin(kz * (z - 0.5d0) * pi)
- $ * cos(omega * (cctk_time - dt) * pi)
-
- phi_p_p(i,j,k) = amplitude
- $ * sin(kx * (x - 0.5d0) * pi)
- $ * sin(ky * (y - 0.5d0) * pi)
- $ * sin(kz * (z - 0.5d0) * pi)
- $ * cos(omega * (cctk_time - 2*dt) * pi)
+ phi_p(i,j,k)= amplitude
+ $ * sin(kx * (cart3d_x(i,j,k) - 0.5d0) * pi)
+ $ * sin(ky * (cart3d_y(i,j,k) - 0.5d0) * pi)
+ $ * sin(kz * (cart3d_z(i,j,k) - 0.5d0) * pi)
+ $ * cos(omega * (cctk_time-dt) * pi)
end do
end do
end do
- else if (CCTK_EQUALS(initial_data, "1/r")) then
-
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
-
- x = cart3d_x(i,j,k)
- y = cart3d_y(i,j,k)
- z = cart3d_z(i,j,k)
-
- phi(i,j,k) = 1 / sqrt((x-cx)**2 + (y-cy)**2 + (z-cz)**2)
- phi_p(i,j,k) = phi(i,j,k)
- phi_p_p(i,j,k) = phi(i,j,k)
-
- end do
- end do
- end do
-
else
do k=1,cctk_lsh(3)
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- phi(i,j,k) = 0.0d0
- phi_p(i,j,k) = 0.0d0
- phi_p_p(i,j,k) = 0.0d0
+ phi(i,j,k) = 0.0d0
+ phi_p(i,j,k) = 0.0d0
end do
end do
@@ -189,3 +122,5 @@ c Use kx,ky,kz as number of modes in each direction.
end if
end
+
+
diff --git a/CarpetExtra/IDScalarWave/src/make.code.defn b/CarpetExtra/IDScalarWave/src/make.code.defn
index cf47303ce..62b3ea61a 100644
--- a/CarpetExtra/IDScalarWave/src/make.code.defn
+++ b/CarpetExtra/IDScalarWave/src/make.code.defn
@@ -1,8 +1,8 @@
# Main make.code.defn file for thorn IDScalarWave -*-Makefile-*-
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/make.code.defn,v 1.2 2001/03/17 16:04:59 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/make.code.defn,v 1.1 2001/03/01 13:40:10 eschnett Exp $
# Source files in this directory
-SRCS = InitialData.F77 CheckParameters.F77
+SRCS = InitialData.F77 CheckParameters.F77
# Subdirectories containing source files
SUBDIRS =