aboutsummaryrefslogtreecommitdiff
path: root/CarpetExtra/WaveToyFO
diff options
context:
space:
mode:
authorschnetter <>2003-06-18 16:24:00 +0000
committerschnetter <>2003-06-18 16:24:00 +0000
commitea0d204e9bfe5daa6123970f2c1c323bd7e75b36 (patch)
treec48a4a122dfec847afa10475dd19ac1b94617e39 /CarpetExtra/WaveToyFO
parent343af5d6432feecd65a217c3cb1731394b55d315 (diff)
Major update after a quiet time.
Major update after a quiet time. Carpet: The flesh now has new cGH fields cctk_levoff[], cctk_levoffdenom[], and cctk_timefac that describe the spatial offset and temporal refinement factor between the base and the current refinement level. These fields are now set and used; they change how coordinates are handled. CarpetIOASCII: Fix bugs regarding choosing the output hyperslab and the output coordinates. ID*, *Toy*: New WaveToy examples with various formulations and different integrations methods. Currently, none of them converge to second order except the standard WaveToy formulation. These updates require the recent flesh, base thorn (and MoL) updates. darcs-hash:20030618162427-07bb3-70761f74bce6ae246b5a2943a385647657d46d34.gz
Diffstat (limited to 'CarpetExtra/WaveToyFO')
-rw-r--r--CarpetExtra/WaveToyFO/interface.ccl10
-rw-r--r--CarpetExtra/WaveToyFO/schedule.ccl29
-rw-r--r--CarpetExtra/WaveToyFO/src/boundaries.F778
-rw-r--r--CarpetExtra/WaveToyFO/src/calcrhs.F7775
-rw-r--r--CarpetExtra/WaveToyFO/src/initsymbound.F773
-rw-r--r--CarpetExtra/WaveToyFO/src/make.code.defn4
-rw-r--r--CarpetExtra/WaveToyFO/src/registervars.F775
-rw-r--r--CarpetExtra/WaveToyFO/src/startup.F773
8 files changed, 38 insertions, 99 deletions
diff --git a/CarpetExtra/WaveToyFO/interface.ccl b/CarpetExtra/WaveToyFO/interface.ccl
index 91a6628a4..893aec679 100644
--- a/CarpetExtra/WaveToyFO/interface.ccl
+++ b/CarpetExtra/WaveToyFO/interface.ccl
@@ -1,24 +1,24 @@
# Interface definition for thorn WaveToyFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/interface.ccl,v 1.4 2004/09/04 18:15:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/interface.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
IMPLEMENTS: WaveToyFO
-INHERITS: grid
+INHERITS: boundary grid MethodOfLines
-CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER_TO_CONST IN GH, \
+CCTK_INT FUNCTION Boundary_SelectGroupForBC(CCTK_POINTER 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
+USES FUNCTION Boundary_SelectGroupForBC
CCTK_INT FUNCTION MoLRegisterEvolvedGroup(CCTK_INT IN EvolvedIndex, \
CCTK_INT IN RHSIndex)
-REQUIRES FUNCTION MoLRegisterEvolvedGroup
+USES FUNCTION MoLRegisterEvolvedGroup
diff --git a/CarpetExtra/WaveToyFO/schedule.ccl b/CarpetExtra/WaveToyFO/schedule.ccl
index 85ec91def..4b014b0b3 100644
--- a/CarpetExtra/WaveToyFO/schedule.ccl
+++ b/CarpetExtra/WaveToyFO/schedule.ccl
@@ -1,5 +1,5 @@
# Schedule definitions for thorn WaveToyFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/schedule.ccl,v 1.6 2004/05/06 14:21:18 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/schedule.ccl,v 1.1 2003/06/18 18:24:30 schnetter Exp $
STORAGE: scalarevolve[3]
STORAGE: scalarevolvedot
@@ -17,7 +17,7 @@ SCHEDULE WaveToyFO_InitSymBound AT basegrid
OPTIONS: global
} "Schedule symmetries"
-SCHEDULE WaveToyFO_RegisterVars IN MoL_Register
+SCHEDULE WaveToyFO_RegisterVars IN FO_Register
{
LANG: Fortran
OPTIONS: global
@@ -25,44 +25,29 @@ SCHEDULE WaveToyFO_RegisterVars IN MoL_Register
-SCHEDULE WaveToyFO_CalcRHS IN MoL_CalcRHS
+SCHEDULE WaveToyFO_CalcRHS IN FO_CalcRHS
{
LANG: Fortran
} "Calculate RHS for FO"
-SCHEDULE WaveToyFO_RHSBoundaries IN MoL_CalcRHS AFTER WaveToyFO_CalcRHS
-{
- LANG: Fortran
- SYNC: scalarevolvedot
- OPTIONS: level
-} "Select RHS boundary conditions in FO"
-
-SCHEDULE GROUP ApplyBCs IN MoL_CalcRHS AFTER WaveToyFO_RHSBoundaries
-{
-} "Apply RHSboundary conditions in FO"
-
-
-
-SCHEDULE WaveToyFO_Boundaries IN MoL_PostStep
+SCHEDULE WaveToyFO_Boundaries IN FO_PostStep
{
LANG: Fortran
SYNC: scalarevolve
- OPTIONS: level
} "Select boundary conditions in FO"
-SCHEDULE GROUP ApplyBCs IN MoL_PostStep AFTER WaveToyFO_Boundaries
+SCHEDULE GROUP ApplyBCs IN FO_PostStep AFTER WaveToyFO_Boundaries
{
} "Apply boundary conditions in FO"
-SCHEDULE WaveToyFO_Boundaries AT POSTRESTRICT
+SCHEDULE WaveToyFO_Boundaries IN postrestrict
{
LANG: Fortran
SYNC: scalarevolve
- OPTIONS: level
} "Select boundary conditions after restricting"
-SCHEDULE GROUP ApplyBCs AT POSTRESTRICT AFTER WaveToyFO_Boundaries
+SCHEDULE GROUP ApplyBCs IN postrestrict AFTER WaveToyFO_Boundaries
{
} "Apply boundary conditions after restricting"
diff --git a/CarpetExtra/WaveToyFO/src/boundaries.F77 b/CarpetExtra/WaveToyFO/src/boundaries.F77
index d2a0b03e2..b5ed40ddb 100644
--- a/CarpetExtra/WaveToyFO/src/boundaries.F77
+++ b/CarpetExtra/WaveToyFO/src/boundaries.F77
@@ -1,8 +1,8 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundaries.F77,v 1.3 2004/05/06 14:21:18 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundaries.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
+#include "cctk_Faces.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_Boundaries (CCTK_ARGUMENTS)
@@ -10,6 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundari
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external Boundary_SelectGroupForBC
+ CCTK_INT Boundary_SelectGroupForBC
CCTK_INT bndwidth
parameter (bndwidth = 1)
character fbound*100
@@ -20,4 +22,6 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundari
ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, bndwidth, -1,
$ "WaveToyFO::scalarevolve", fbound);
if (ierr.ne.0) call CCTK_WARN (0, "internal error")
+ call CartSymGN (ierr, cctkGH, "WaveToyFO::scalarevolve")
+ if (ierr.ne.0) call CCTK_WARN (0, "internal error")
end
diff --git a/CarpetExtra/WaveToyFO/src/calcrhs.F77 b/CarpetExtra/WaveToyFO/src/calcrhs.F77
index 55734ed1e..46366f5bb 100644
--- a/CarpetExtra/WaveToyFO/src/calcrhs.F77
+++ b/CarpetExtra/WaveToyFO/src/calcrhs.F77
@@ -1,65 +1,23 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs.F77,v 1.8 2004/08/28 19:10:33 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
-
-
-
- function WaveToyFO_Deriv (fm2, fm1, f0, fp1, fp2, dx, dir)
- implicit none
- CCTK_REAL WaveToyFO_Deriv
- CCTK_REAL fm2, fm1, f0, fp1, fp2
- CCTK_REAL dx
- integer dir
-
- if (dir .eq. 0) then
- WaveToyFO_Deriv = (fp1 - fm1) / (2 * dx)
- else if (dir .eq. -1) then
-c Use first order one-sided derivatives here.
-c These are less dissipative than second order one-sided derivatives.
-c (Sic.)
- WaveToyFO_Deriv = (f0 - fm1) / dx
-c$$$ WaveToyFO_Deriv = (+ 3*f0 - 4*fm1 + fm2) / (2*dx)
- else if (dir .eq. +1) then
- WaveToyFO_Deriv = (fp1 - f0) / dx
-c$$$ WaveToyFO_Deriv = (- 3*f0 + 4*fp1 - fp2) / (2*dx)
- else
- call CCTK_WARN (0, "internal error")
- end if
-
- end
-
-
-
-#define CHOOSEDIR(i,imin,imax) ((min(i+1,imax) - (i+1)) + (max(i-1,imin) - (i-1)))
-
-#define DIFFX(var,i,j,k) WaveToyFO_Deriv(var((i)-2,j,k), var((i)-1,j,k), var(i,j,k), var((i)+1,j,k), var((i)+2,j,k), dx(1), idir(1))
-#define DIFFY(var,i,j,k) WaveToyFO_Deriv(var(i,(j)-2,k), var(i,(j)-1,k), var(i,j,k), var(i,(j)+1,k), var(i,(j)+2,k), dx(2), idir(2))
-#define DIFFZ(var,i,j,k) WaveToyFO_Deriv(var(i,j,(k)-2), var(i,j,(k)-1), var(i,j,k), var(i,j,(k)+1), var(i,j,(k)+2), dx(3), idir(3))
-
-
-
+
subroutine WaveToyFO_CalcRHS (CCTK_ARGUMENTS)
implicit none
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
-
CCTK_REAL dx(3)
integer bndwidth(3)
- integer imin(3), imax(3), idir(3)
+ integer imin(3), imax(3)
integer i, j, k
integer d
-
- external WaveToyFO_Deriv
- CCTK_REAL WaveToyFO_Deriv
-
+ integer ierr
do d=1,3
- bndwidth(d) = 0
+ bndwidth(d) = 1
end do
-
do d=1,3
if (cctk_bbox(2*d).ne.0) then
imin(d) = 1+bndwidth(d)
@@ -72,27 +30,20 @@ c$$$ WaveToyFO_Deriv = (- 3*f0 + 4*fp1 - fp2) / (2*dx)
imax(d) = cctk_lsh(d)-cctk_nghostzones(d)
end if
end do
-
do d=1,3
- dx(d) = CCTK_DELTA_SPACE(d)
+ dx(d) = CCTK_DELTA_SPACE(3)
end do
-
do k=imin(3),imax(3)
- idir(3) = CHOOSEDIR(k,imin(3),imax(3))
do j=imin(2),imax(2)
- idir(2) = CHOOSEDIR(j,imin(2),imax(2))
do i=imin(1),imax(1)
- idir(1) = CHOOSEDIR(i,imin(1),imax(1))
-
- phidot(i,j,k) = DIFFX (psix,i,j,k)
- $ + DIFFY (psiy,i,j,k)
- $ + DIFFZ (psiz,i,j,k)
- psixdot(i,j,k) = DIFFX (phi,i,j,k)
- psiydot(i,j,k) = DIFFY (phi,i,j,k)
- psizdot(i,j,k) = DIFFZ (phi,i,j,k)
-
+ phidot(i,j,k) =
+ $ ( (psix(i+1,j,k) - psix(i-1,j,k)) / (2*dx(1))
+ $ + (psix(i,j+1,k) - psix(i,j-1,k)) / (2*dx(2))
+ $ + (psix(i,j,k+1) - psix(i,j,k-1)) / (2*dx(3)))
+ psixdot(i,j,k) = (phi(i+1,j,k) - phi(i-1,j,k)) / (2*dx(1))
+ psiydot(i,j,k) = (phi(i,j+1,k) - phi(i,j-1,k)) / (2*dx(2))
+ psizdot(i,j,k) = (phi(i,j,k+1) - phi(i,j,k-1)) / (2*dx(3))
end do
end do
end do
-
end
diff --git a/CarpetExtra/WaveToyFO/src/initsymbound.F77 b/CarpetExtra/WaveToyFO/src/initsymbound.F77
index 00ab7ef85..5c1c7eef5 100644
--- a/CarpetExtra/WaveToyFO/src/initsymbound.F77
+++ b/CarpetExtra/WaveToyFO/src/initsymbound.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/initsymbound.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/initsymbound.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_InitSymBound (CCTK_ARGUMENTS)
diff --git a/CarpetExtra/WaveToyFO/src/make.code.defn b/CarpetExtra/WaveToyFO/src/make.code.defn
index 6e92555b6..9251b378b 100644
--- a/CarpetExtra/WaveToyFO/src/make.code.defn
+++ b/CarpetExtra/WaveToyFO/src/make.code.defn
@@ -1,8 +1,8 @@
# Main make.code.defn file for thorn WaveToyFO
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/make.code.defn,v 1.4 2004/09/04 18:15:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/make.code.defn,v 1.1 2003/06/18 18:24:30 schnetter Exp $
# Source files in this directory
-SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 rhsboundaries.F77 startup.F77
+SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 startup.F77
# Subdirectories containing source files
SUBDIRS =
diff --git a/CarpetExtra/WaveToyFO/src/registervars.F77 b/CarpetExtra/WaveToyFO/src/registervars.F77
index 6f3bd41af..0f6391afe 100644
--- a/CarpetExtra/WaveToyFO/src/registervars.F77
+++ b/CarpetExtra/WaveToyFO/src/registervars.F77
@@ -1,8 +1,7 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/registervars.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/registervars.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_RegisterVars (CCTK_ARGUMENTS)
@@ -10,6 +9,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/register
DECLARE_CCTK_ARGUMENTS
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ external MolRegisterEvolvedGroup
+ CCTK_INT MolRegisterEvolvedGroup
integer group, groupdot
integer ierr
call CCTK_GroupIndex(group, "WaveToyFO::scalarevolve")
diff --git a/CarpetExtra/WaveToyFO/src/startup.F77 b/CarpetExtra/WaveToyFO/src/startup.F77
index ae38706af..166796537 100644
--- a/CarpetExtra/WaveToyFO/src/startup.F77
+++ b/CarpetExtra/WaveToyFO/src/startup.F77
@@ -1,7 +1,6 @@
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/startup.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/startup.F77,v 1.1 2003/06/18 18:24:30 schnetter Exp $
#include "cctk.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine WaveToyFO_Startup