aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CarpetExtra/FOWaveToyF77/interface.ccl20
-rw-r--r--CarpetExtra/FOWaveToyF77/param.ccl15
-rw-r--r--CarpetExtra/FOWaveToyF77/schedule.ccl37
-rw-r--r--CarpetExtra/FOWaveToyF77/src/FOWaveToy.F77118
-rw-r--r--CarpetExtra/FOWaveToyF77/src/InitSymBound.F7720
-rw-r--r--CarpetExtra/FOWaveToyF77/src/Startup.F778
-rw-r--r--CarpetExtra/IDFOScalarWave/interface.ccl7
-rw-r--r--CarpetExtra/IDFOScalarWave/param.ccl13
-rw-r--r--CarpetExtra/IDFOScalarWave/schedule.ccl11
-rw-r--r--CarpetExtra/IDFOScalarWave/src/CheckParameters.F7750
-rw-r--r--CarpetExtra/IDFOScalarWave/src/InitialData.F77190
-rw-r--r--CarpetExtra/IDFOScalarWave/src/make.code.defn4
12 files changed, 211 insertions, 282 deletions
diff --git a/CarpetExtra/FOWaveToyF77/interface.ccl b/CarpetExtra/FOWaveToyF77/interface.ccl
index 6439786d2..b20e60924 100644
--- a/CarpetExtra/FOWaveToyF77/interface.ccl
+++ b/CarpetExtra/FOWaveToyF77/interface.ccl
@@ -1,27 +1,17 @@
# Interface definition for thorn WaveToyF77
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/interface.ccl,v 1.10 2004/05/21 17:43:57 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/interface.ccl,v 1.1 2002/02/18 11:25:34 shawley Exp $
-implements: FOwavetoy
-inherits: grid idfoscalarwave
-
-USES INCLUDE: Symmetry.h
+implements: wavetoy
+inherits: boundary grid
public:
CCTK_REAL scalarevolve type=GF timelevels=3
{
- phi
-} "The evolved scalar field phi"
-
-CCTK_REAL scalarevolve_derivs type=GF timelevels=3
-{
pi,
phix,
phiy,
phiz,
-} "Time and space derivatives of phi"
+ phi
+} "The evolved scalar field phi, and time and space derivatives of phi"
-CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, \
- CCTK_INT IN faces, CCTK_INT IN boundary_width, CCTK_INT IN table_handle, \
- CCTK_STRING IN group_name, CCTK_STRING IN bc_name)
-REQUIRES FUNCTION Boundary_SelectGroupForBC
diff --git a/CarpetExtra/FOWaveToyF77/param.ccl b/CarpetExtra/FOWaveToyF77/param.ccl
index 9204f6329..a78110871 100644
--- a/CarpetExtra/FOWaveToyF77/param.ccl
+++ b/CarpetExtra/FOWaveToyF77/param.ccl
@@ -1,17 +1,14 @@
# Parameter definitions for thorn WaveToyF77
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/param.ccl,v 1.5 2003/07/08 23:12:45 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/param.ccl,v 1.1 2002/02/18 11:25:34 shawley Exp $
private:
-STRING bound "Type of boundary condition to use"
+KEYWORD bound "Type of boundary condition to use"
{
- ".*" :: "Must be a registered boundary condition"
-} "Zero"
-
-INT bound_width "Number of boundary points"
-{
- 1:* :: ""
-} 1
+ "none" :: "No boundary condition"
+ "flat" :: "Flat boundary condition"
+ "zero" :: "Zero boundary condition"
+} "zero"
KEYWORD excision_bound "Type of excision boundary condition to use"
{
diff --git a/CarpetExtra/FOWaveToyF77/schedule.ccl b/CarpetExtra/FOWaveToyF77/schedule.ccl
index a3cd168c0..f0980dddd 100644
--- a/CarpetExtra/FOWaveToyF77/schedule.ccl
+++ b/CarpetExtra/FOWaveToyF77/schedule.ccl
@@ -1,7 +1,7 @@
# Schedule definitions for thorn FOWaveToy77
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/schedule.ccl,v 1.10 2003/11/05 16:18:39 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/schedule.ccl,v 1.1 2002/02/18 11:25:34 shawley Exp $
-STORAGE: scalarevolve[3] scalarevolve_derivs[3]
+STORAGE: scalarevolve
schedule FOWaveToyF77_Startup at STARTUP
{
@@ -16,41 +16,20 @@ schedule FOWaveToyF77_InitSymBound at BASEGRID
-schedule FOWaveToyF77_Boundaries as FOWaveToy_Boundaries at INITIAL after FOWaveToy_InitialData
+schedule FOWaveToyF77_Boundaries as WaveToy_Boundaries at INITIAL after WaveToy_InitialData
{
LANG: Fortran
- SYNC: scalarevolve scalarevolve_derivs
-} "Select boundary conditions of 3D wave equation"
-
-schedule group ApplyBCs as FOWaveToy_ApplyBCs at INITIAL after FOWaveToy_Boundaries
-{
-} "Apply boundary conditions of 3D wave equation"
+} "Boundaries of 3D wave equation"
-schedule FOWaveToyF77_Evolution as FOWaveToy_Evolution at EVOL
+schedule FOWaveToyF77_Evolution as WaveToy_Evolution at EVOL
{
LANG: Fortran
+ SYNC: scalarevolve
} "Evolution of 3D wave equation"
-schedule FOWaveToyF77_Boundaries as FOWaveToy_Boundaries at EVOL after FOWaveToy_Evolution
+schedule FOWaveToyF77_Boundaries as WaveToy_Boundaries at EVOL after WaveToy_Evolution
{
LANG: Fortran
- SYNC: scalarevolve scalarevolve_derivs
-} "Select boundary conditions of 3D wave equation"
-
-schedule group ApplyBCs as FOWaveToy_ApplyBCs at EVOL after FOWaveToy_Boundaries
-{
-} "Apply boundary conditions of 3D wave equation"
-
-
-
-schedule FOWaveToyF77_Boundaries as FOWaveToy_Boundaries at POSTRESTRICT
-{
- LANG: Fortran
- SYNC: scalarevolve scalarevolve_derivs
-} "Select boundary conditions of 3D wave equation"
-
-schedule group ApplyBCs as FOWaveToy_ApplyBCs at POSTRESTRICT after FOWaveToy_Boundaries
-{
-} "Apply boundary conditions of 3D wave equation"
+} "Boundaries of 3D wave equation"
diff --git a/CarpetExtra/FOWaveToyF77/src/FOWaveToy.F77 b/CarpetExtra/FOWaveToyF77/src/FOWaveToy.F77
index bc2a17549..74d9ca6f5 100644
--- a/CarpetExtra/FOWaveToyF77/src/FOWaveToy.F77
+++ b/CarpetExtra/FOWaveToyF77/src/FOWaveToy.F77
@@ -13,9 +13,8 @@ c -*-Fortran-*-
@@*/
#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
@@ -42,10 +41,9 @@ c Declare variables in argument list
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
-
+
INTEGER i,j,k
- INTEGER istart(3), iend(3)
- INTEGER d
+ INTEGER istart, jstart, kstart, iend, jend, kend
CCTK_REAL dx,dy,dz,dt
CCTK_REAL dxi,dyi,dzi
@@ -62,24 +60,19 @@ c -----------------
dyi = 1/dy
dzi = 1/dz
- do d = 1, 3
- if (cctk_bbox(2*d-1).eq.0) then
- istart(d) = 1+cctk_nghostzones(d)
- else
- istart(d) = 1+bound_width
- end if
- if (cctk_bbox(2*d).eq.0) then
- iend(d) = cctk_lsh(d)-cctk_nghostzones(d)
- else
- iend(d) = cctk_lsh(d)-bound_width
- end if
- end do
+ istart = 1+cctk_nghostzones(1)
+ jstart = 1+cctk_nghostzones(2)
+ kstart = 1+cctk_nghostzones(3)
+
+ iend = cctk_lsh(1)-cctk_nghostzones(1)
+ jend = cctk_lsh(2)-cctk_nghostzones(2)
+ kend = cctk_lsh(3)-cctk_nghostzones(3)
c Do the evolution
c ----------------
- do k = istart(3), iend(3)
- do j = istart(2), iend(2)
- do i = istart(1), iend(1)
+ do k = kstart, kend
+ do j = jstart, jend
+ do i = istart, iend
pi(i,j,k) = pi_p_p(i,j,k) + dt * (
$ (phix_p(i+1,j,k) - phix_p(i-1,j,k))*dxi
@@ -96,7 +89,7 @@ c ----------------
phiz(i,j,k) = phiz_p_p(i,j,k) + dt * dzi * (
$ pi_p(i,j,k+1) - pi_p(i,j,k-1) )
- phi(i,j,k) = phi_p_p(i,j,k) + 2*dt * pi_p(i,j,i)
+ phi(i,j,k) = phiz_p_p(i,j,k) + 2*dt * pi_p(i,j,i)
end do
end do
@@ -124,24 +117,32 @@ c ----------------
implicit none
DECLARE_CCTK_ARGUMENTS
- DECLARE_CCTK_PARAMETERS
DECLARE_CCTK_FUNCTIONS
+ DECLARE_CCTK_PARAMETERS
c Local declarations
- integer table
- data table /-1/
+ CCTK_REAL zero, one
+ parameter (zero=0, one=1)
- character fbound*100
- CCTK_INT fboundlen
+ CCTK_REAL finf
+ integer npow
+ parameter (finf = 1)
+ parameter (npow = 1)
integer i,j,k
- CCTK_REAL spher3d_r
integer ierr
+ integer sw(3)
CCTK_REAL ri3
c call CCTK_INFO ("FOWaveToyF77_Boundaries")
+c Set the stencil width
+c ---------------------
+ sw(1) = cctk_nghostzones(1)
+ sw(2) = cctk_nghostzones(2)
+ sw(3) = cctk_nghostzones(3)
+
c Apply the excision boundary condition
c -------------------------------------
if (CCTK_EQUALS(excision_bound, "none")) then
@@ -150,14 +151,13 @@ c do nothing
do k=1,cctk_lsh(3)
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- spher3d_r = sqrt(x(i,j,k)**2 + y(i,j,k)**2 + z(i,j,k)**2)
- if (spher3d_r .le. excision_radius) then
+ if (spher3d_r(i,j,k) .le. excision_radius) then
pi(i,j,k) = 0.0
- phi(i,j,k) = 1.0 / spher3d_r
+ phi(i,j,k) = 1 / spher3d_r(i,j,k)
ri3 = phi(i,j,k)**3
- phix(i,j,k) = - x(i,j,k) * ri3
- phiy(i,j,k) = - y(i,j,k) * ri3
- phiz(i,j,k) = - z(i,j,k) * ri3
+ phix(i,j,k) = - cart3d_x(i,j,k) * ri3
+ phiy(i,j,k) = - cart3d_y(i,j,k) * ri3
+ phiz(i,j,k) = - cart3d_z(i,j,k) * ri3
end if
end do
end do
@@ -165,32 +165,42 @@ c do nothing
else
call CCTK_WARN (0, "internal error")
end if
-
-c Apply the symmetry boundary conditions on any coordinate axes
-c -------------------------------------------------------------
- call CartSymGN(ierr,cctkGH,"fowavetoy::scalarevolve")
- if (ierr.ne.0) call CCTK_WARN (0, "internal error")
- call CartSymGN(ierr,cctkGH,"fowavetoy::scalarevolve_derivs")
- if (ierr.ne.0) call CCTK_WARN (0, "internal error")
c Apply the outer boundary conditions
+c Only "flat" and "zero" and "none" are currently supported
c -----------------------------------
-
- if (table.eq.-1) then
-
- call Util_TableCreateFromString (table, "LIMIT=0.0 SPEED=1.0")
- if (table.lt.0) call CCTK_WARN (0, "internal error")
-
+ if (CCTK_EQUALS(bound, "flat")) then
+ call BndFlatVN (ierr, cctkGH, sw, "wavetoy::pi")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phix")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phiy")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phiz")
+ call BndFlatVN (ierr, cctkGH, sw, "wavetoy::phi")
+ else if (CCTK_EQUALS(bound, "zero")) then
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::pi")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phix")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phiy")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phiz")
+ call BndScalarVN (ierr, cctkGH, sw, zero, "wavetoy::phi")
+ else if (CCTK_EQUALS(bound, "radiation")) then
+ call BndRadiativeVN (ierr, cctkGH, sw, zero, one,
+ $ "wavetoy::phi", "wavetoy::phi")
+ else if (CCTK_EQUALS(bound, "robin")) then
+ call BndRobinVN (ierr, cctkGH, sw, finf, npow, "wavetoy::phi")
+ else if (CCTK_EQUALS(bound, "none")) then
+ ierr = 0
+ else
+ call CCTK_WARN (0, "internal error")
+ end if
+ if (ierr .lt. 0) then
+ call CCTK_WARN (0, "Boundary conditions not applied - giving up!")
end if
- call CCTK_FortranString (fboundlen, bound, fbound)
- if (fboundlen.lt.0) call CCTK_WARN (0, "internal error")
+c Apply the symmetry boundary conditions on any coordinate axes
+c -------------------------------------------------------------
+ call Cart3dSymGN (ierr, cctkGH, "wavetoy::scalarevolve")
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, bound_width,
- $ table, "fowavetoy::scalarevolve", fbound)
- if (ierr.ne.0) call CCTK_WARN (0, "internal error")
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, bound_width,
- $ table, "fowavetoy::scalarevolve_derivs", fbound)
- if (ierr.ne.0) call CCTK_WARN (0, "internal error")
+ if (ierr .lt. 0) then
+ call CCTK_WARN (0, "Symmetry conditions not applied - giving up!")
+ end if
end
diff --git a/CarpetExtra/FOWaveToyF77/src/InitSymBound.F77 b/CarpetExtra/FOWaveToyF77/src/InitSymBound.F77
index a64c3463c..d707e9d16 100644
--- a/CarpetExtra/FOWaveToyF77/src/InitSymBound.F77
+++ b/CarpetExtra/FOWaveToyF77/src/InitSymBound.F77
@@ -11,13 +11,12 @@ c -*-Fortran-*-
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
/*@@
@routine FOWaveToyF77_InitSymBound
@date
- @author Erik Schnetter
+ @author Gabrielle Allen, Erik Schnetter
@desc
Sets the symmetries for Wave Toy
@enddesc
@@ -36,18 +35,9 @@ c -*-Fortran-*-
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
-
- INTEGER sym(3), symx(3), symy(3), symz(3)
- DATA sym /+1, +1, +1/
- DATA symx /-1, +1, +1/
- DATA symy /+1, -1, +1/
- DATA symz /+1, +1, -1/
- INTEGER ierr
-
- call SetCartSymVN(ierr, cctkGH, sym ,'fowavetoy::pi')
- call SetCartSymVN(ierr, cctkGH, sym ,'fowavetoy::phi')
- call SetCartSymVN(ierr, cctkGH, symx,'fowavetoy::phix')
- call SetCartSymVN(ierr, cctkGH, symy,'fowavetoy::phiy')
- call SetCartSymVN(ierr, cctkGH, symz,'fowavetoy::phiz')
+
+ integer ierr
+
+ call Cart3dSetTensorTypeVN (ierr, cctkGH, 'wavetoy::phi', 'SCALAR')
end
diff --git a/CarpetExtra/FOWaveToyF77/src/Startup.F77 b/CarpetExtra/FOWaveToyF77/src/Startup.F77
index 99a2f000e..598a1e93d 100644
--- a/CarpetExtra/FOWaveToyF77/src/Startup.F77
+++ b/CarpetExtra/FOWaveToyF77/src/Startup.F77
@@ -7,16 +7,18 @@ c -*-Fortran-*-
@desc
Register banner
@enddesc
- @version $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/src/Startup.F77,v 1.2 2003/06/27 15:54:58 schnetter Exp $
+ @version $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/FOWaveToyF77/src/Startup.F77,v 1.1 2002/02/18 11:25:34 shawley Exp $
@@*/
#include "cctk.h"
- subroutine FOWaveToyF77_Startup
+ integer function FOWaveToyF77_Startup()
implicit none
- integer ierr
+ integer ierr
call CCTK_RegisterBanner(ierr, "FOWaveToyF77: Evolutions of a Scalar Field")
+ FOWaveToyF77_Startup = 0
+
end
diff --git a/CarpetExtra/IDFOScalarWave/interface.ccl b/CarpetExtra/IDFOScalarWave/interface.ccl
index 30985311c..cf5ea3e80 100644
--- a/CarpetExtra/IDFOScalarWave/interface.ccl
+++ b/CarpetExtra/IDFOScalarWave/interface.ccl
@@ -1,6 +1,5 @@
# Interface definition for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/interface.ccl,v 1.4 2003/06/27 15:54:58 schnetter Exp $
-
-implements: idfoscalarwave
-inherits: fowavetoy grid
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/interface.ccl,v 1.1 2002/02/18 11:26:34 shawley Exp $
+implements: idscalarwave
+inherits: wavetoy grid
diff --git a/CarpetExtra/IDFOScalarWave/param.ccl b/CarpetExtra/IDFOScalarWave/param.ccl
index 56aa9b719..fe5ea6315 100644
--- a/CarpetExtra/IDFOScalarWave/param.ccl
+++ b/CarpetExtra/IDFOScalarWave/param.ccl
@@ -1,12 +1,19 @@
# Parameter definitions for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/param.ccl,v 1.5 2003/08/27 18:44:58 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/param.ccl,v 1.1 2002/02/18 11:26:34 shawley Exp $
+
+shares: grid
+
+USES KEYWORD type
+
+restricted:
KEYWORD initial_data "Type of initial data"
{
- "1/r" :: "1/r data"
- "gaussian" :: "time-symmetric gaussian"
+ "1/r" :: "1/r data"
} "1/r"
+private:
+
## Parameter for initial wavepulses
REAL radius "The radius of the gaussian wave"
diff --git a/CarpetExtra/IDFOScalarWave/schedule.ccl b/CarpetExtra/IDFOScalarWave/schedule.ccl
index f74df1185..07916e73c 100644
--- a/CarpetExtra/IDFOScalarWave/schedule.ccl
+++ b/CarpetExtra/IDFOScalarWave/schedule.ccl
@@ -1,8 +1,13 @@
# Schedule definitions for thorn IDScalarWave
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/schedule.ccl,v 1.7 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/schedule.ccl,v 1.1 2002/02/18 11:26:34 shawley Exp $
-schedule IDFOScalarWave_InitialData as FOWaveToy_InitialData at INITIAL
+schedule IDFOScalarWave_CheckParameters at PARAMCHECK
{
- STORAGE: FOwavetoy::scalarevolve[3] FOwavetoy::scalarevolve_derivs[3]
+ LANG: Fortran
+} "Check parameters"
+
+schedule IDFOScalarWave_InitialData as WaveToy_InitialData at INITIAL
+{
+ STORAGE: wavetoy::scalarevolve
LANG: Fortran
} "Initial data for 3D wave equation"
diff --git a/CarpetExtra/IDFOScalarWave/src/CheckParameters.F77 b/CarpetExtra/IDFOScalarWave/src/CheckParameters.F77
new file mode 100644
index 000000000..54efe1dde
--- /dev/null
+++ b/CarpetExtra/IDFOScalarWave/src/CheckParameters.F77
@@ -0,0 +1,50 @@
+c -*-Fortran-*-
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/Attic/CheckParameters.F77,v 1.1 2002/02/18 11:26:34 shawley Exp $
+
+ /*@@
+ @file CheckParameters.F77
+ @date
+ @author Gabrielle Allen
+ @desc
+ Check parameters for the wave equation initial data
+ @enddesc
+ @@*/
+
+#include "cctk.h"
+#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
+
+
+ /*@@
+ @routine IDFOScalarWave_CheckParameters
+ @date
+ @author Gabrielle Allen
+ @desc
+ Check parameters for the wave equation initial data
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+@@*/
+
+ subroutine IDFOScalarWave_CheckParameters(CCTK_ARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_ARGUMENTS
+ DECLARE_CCTK_FUNCTIONS
+ DECLARE_CCTK_PARAMETERS
+
+ if (CCTK_EQUALS(initial_data,"box")) then
+
+ 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")
+ end if
+
+ end if
+
+ return
+ end
diff --git a/CarpetExtra/IDFOScalarWave/src/InitialData.F77 b/CarpetExtra/IDFOScalarWave/src/InitialData.F77
index aa361f8a1..02d162cde 100644
--- a/CarpetExtra/IDFOScalarWave/src/InitialData.F77
+++ b/CarpetExtra/IDFOScalarWave/src/InitialData.F77
@@ -1,5 +1,5 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/InitialData.F77,v 1.8 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/InitialData.F77,v 1.1 2002/02/18 11:26:34 shawley Exp $
/*@@
@file InitialData.F77
@@ -11,9 +11,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/Ini
@@*/
#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
/*@@
@@ -41,7 +40,7 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/Ini
INTEGER i,j,k
CCTK_REAL dt,omega, cpi
- CCTK_REAL ri3
+ CCTK_REAL x,y,z, r, ri3
c call CCTK_INFO ("IDFOScalarWave_InitialData")
@@ -57,17 +56,18 @@ c call CCTK_INFO ("IDFOScalarWave_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(i,j,k) + ky*y(i,j,k) + kz*z(i,j,k)
- $ + omega*cctk_time) * cpi)
+ $ * cos((kx*x + ky*y + kz*z + omega*cctk_time) * cpi)
phi_p(i,j,k) = amplitude
- $ * cos((kx*x(i,j,k) + ky*y(i,j,k) + kz*z(i,j,k)
- $ + omega*(cctk_time - dt)) * cpi)
+ $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - dt)) * cpi)
phi_p_p(i,j,k) = amplitude
- $ * cos((kx*x(i,j,k) + ky*y(i,j,k) + kz*z(i,j,k)
- $ + omega*(cctk_time - 2*dt)) * cpi)
+ $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - 2*dt)) * cpi)
end do
end do
@@ -79,128 +79,20 @@ c call CCTK_INFO ("IDFOScalarWave_InitialData")
do j=1, cctk_lsh(2)
do i=1, cctk_lsh(1)
- phi(i,j,k) = amplitude
- $ * exp(- (x(i,j,k) - radius)**2 / sigma**2)
- $ * exp(- (y(i,j,k) - radius)**2 / sigma**2)
- $ * exp(- (z(i,j,k) - radius)**2 / sigma**2)
-
- pi(i,j,k) = 0.0
- phix(i,j,k) = phi(i,j,k)* (-2) * (x(i,j,k) - radius)
- $ / sigma**2
- phiy(i,j,k) = phi(i,j,k)* (-2) * (y(i,j,k) - radius)
- $ / sigma**2
- phiz(i,j,k) = phi(i,j,k)* (-2) * (z(i,j,k) - radius)
- $ / sigma**2
-
- pi_p(i,j,k) = amplitude *
- & exp( -(x(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - dt)**2 / sigma**2 )*
- & ((x(i,j,k)-radius-dt) + (y(i,j,k)-radius-dt)
- $ + (z(i,j,k)-radius-dt))/sigma**2
- & - amplitude *
- & exp( -(x(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + dt)**2 / sigma**2 )*
- & ((x(i,j,k)-radius+dt) + (y(i,j,k)-radius+dt)
- & + (z(i,j,k)-radius+dt))/sigma**2
-
- pi_p_p(i,j,k) = amplitude *
- & exp( -(x(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & ((x(i,j,k)-radius-2*dt) + (y(i,j,k)-radius-2*dt)
- & + (z(i,j,k)-radius-2*dt))/sigma**2
- & - amplitude *
- & exp( -(x(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & ((x(i,j,k)-radius+2*dt) + (y(i,j,k)-radius+2*dt)
- & + (z(i,j,k)-radius+2*dt))/sigma**2
-
- phix_p(i,j,k) = - amplitude * (x(i,j,k) - radius - dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - dt)**2 / sigma**2 )
- & - amplitude * (x(i,j,k) - radius + dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + dt)**2 / sigma**2 )
-
- phix_p_p(i,j,k) = - amplitude * (x(i,j,k) - radius - 2*dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - 2*dt)**2 / sigma**2 )
- & - amplitude * (x(i,j,k) - radius + 2*dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + 2*dt)**2 / sigma**2 )
-
- phiy_p(i,j,k) = - amplitude * (y(i,j,k) - radius - dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - dt)**2 / sigma**2 )
- & - amplitude * (y(i,j,k) - radius + dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + dt)**2 / sigma**2 )
-
- phiy_p_p(i,j,k) = - amplitude * (y(i,j,k) - radius - 2*dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - 2*dt)**2 / sigma**2 )
- & - amplitude * (y(i,j,k) - radius + 2*dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + 2*dt)**2 / sigma**2 )
-
- phiz_p(i,j,k) = - amplitude * (z(i,j,k) - radius - dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - dt)**2 / sigma**2 )
- & - amplitude * (z(i,j,k) - radius + dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + dt)**2 / sigma**2 )
-
- phiz_p_p(i,j,k) = - amplitude * (z(i,j,k) - radius - 2*dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - 2*dt)**2 / sigma**2 )
- & - amplitude * (z(i,j,k) - radius + 2*dt)
- & / sigma**2
- & * exp( -(x(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + 2*dt)**2 / sigma**2 )
-
- phi_p(i,j,k) = amplitude / 2 *
- & exp( -(x(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - dt)**2 / sigma**2 )
- & + amplitude / 2 *
- & exp( -(x(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + dt)**2 / sigma**2 )
-
- phi_p_p(i,j,k) = amplitude / 2 *
- & exp( -(x(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius - 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius - 2*dt)**2 / sigma**2 )
- & + amplitude / 2 *
- & exp( -(x(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(y(i,j,k) - radius + 2*dt)**2 / sigma**2 )*
- & exp( -(z(i,j,k) - radius + 2*dt)**2 / sigma**2 )
+ r = spher3d_r(i,j,k)
+
+ phi(i,j,k) = amplitude
+ $ * exp(- (r - radius)**2 / sigma**2)
+
+ phi_p(i,j,k) = amplitude/2 * (r - dt) / r
+ $ * exp(- (r - radius - dt)**2 / sigma**2)
+ $ + amplitude/2 * (r + dt) / r
+ $ * exp(- (r - radius + dt)**2 / sigma**2)
+
+ phi_p_p(i,j,k) = amplitude/2 * (r - 2*dt) / r
+ $ * exp(- (r - radius - 2*dt)**2 / sigma**2)
+ $ + amplitude/2 * (r + 2*dt) / r
+ $ * exp(- (r - radius + 2*dt)**2 / sigma**2)
end do
end do
@@ -214,36 +106,44 @@ 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(i,j,k) - 0.5d0) * cpi)
- $ * sin(ky * (y(i,j,k) - 0.5d0) * cpi)
- $ * sin(kz * (z(i,j,k) - 0.5d0) * cpi)
+ $ * sin(kx * (x - 0.5d0) * cpi)
+ $ * sin(ky * (y - 0.5d0) * cpi)
+ $ * sin(kz * (z - 0.5d0) * cpi)
+ $ * cos(omega * cctk_time * cpi)
- phi_p(i,j,k) = phi(i,j,k)
+ phi_p(i,j,k) = amplitude
+ $ * sin(kx * (x - 0.5d0) * cpi)
+ $ * sin(ky * (y - 0.5d0) * cpi)
+ $ * sin(kz * (z - 0.5d0) * cpi)
$ * cos(omega * (cctk_time - dt) * cpi)
- phi_p_p(i,j,k) = phi(i,j,k)
+ phi_p_p(i,j,k) = amplitude
+ $ * sin(kx * (x - 0.5d0) * cpi)
+ $ * sin(ky * (y - 0.5d0) * cpi)
+ $ * sin(kz * (z - 0.5d0) * cpi)
$ * cos(omega * (cctk_time - 2*dt) * cpi)
- phi(i,j,k) = phi(i,j,k) * cos(omega * cctk_time * cpi)
-
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)
pi(i,j,k) = 0.0
- phi(i,j,k) = 1 / sqrt(x(i,j,k)**2 + y(i,j,k)**2
- & + z(i,j,k)**2)
+ phi(i,j,k) = 1 / spher3d_r(i,j,k)
ri3 = phi(i,j,k)**3
- phix(i,j,k) = - x(i,j,k) * ri3
- phiy(i,j,k) = - y(i,j,k) * ri3
- phiz(i,j,k) = - z(i,j,k) * ri3
+ phix(i,j,k) = - cart3d_x(i,j,k) * ri3
+ phiy(i,j,k) = - cart3d_y(i,j,k) * ri3
+ phiz(i,j,k) = - cart3d_z(i,j,k) * ri3
pi_p(i,j,k) = pi(i,j,k)
pi_p_p(i,j,k) = pi(i,j,k)
diff --git a/CarpetExtra/IDFOScalarWave/src/make.code.defn b/CarpetExtra/IDFOScalarWave/src/make.code.defn
index 3d9912022..e85ec6d5d 100644
--- a/CarpetExtra/IDFOScalarWave/src/make.code.defn
+++ b/CarpetExtra/IDFOScalarWave/src/make.code.defn
@@ -1,8 +1,8 @@
# Main make.code.defn file for thorn IDScalarWave -*-Makefile-*-
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/make.code.defn,v 1.2 2003/06/27 16:26:11 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDFOScalarWave/src/make.code.defn,v 1.1 2002/02/18 11:26:34 shawley Exp $
# Source files in this directory
-SRCS = InitialData.F77
+SRCS = InitialData.F77 CheckParameters.F77
# Subdirectories containing source files
SUBDIRS =