diff options
author | schnetter <> | 2003-06-18 16:24:00 +0000 |
---|---|---|
committer | schnetter <> | 2003-06-18 16:24:00 +0000 |
commit | ea0d204e9bfe5daa6123970f2c1c323bd7e75b36 (patch) | |
tree | c48a4a122dfec847afa10475dd19ac1b94617e39 /CarpetExtra/WaveToyFO | |
parent | 343af5d6432feecd65a217c3cb1731394b55d315 (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.ccl | 10 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/schedule.ccl | 29 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/src/boundaries.F77 | 8 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/src/calcrhs.F77 | 75 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/src/initsymbound.F77 | 3 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/src/make.code.defn | 4 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/src/registervars.F77 | 5 | ||||
-rw-r--r-- | CarpetExtra/WaveToyFO/src/startup.F77 | 3 |
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 |