From bdf273cc574b65f81fbea777d830a895772c1fd2 Mon Sep 17 00:00:00 2001 From: schnetter <> Date: Thu, 6 May 2004 12:21:00 +0000 Subject: Apply boundary conditions also to the RHS. Apply boundary conditions also to the RHS. Calculate the RHS even on the boundary, using one-sided differences. darcs-hash:20040506122118-07bb3-7296ac92e71157ca3e19806cea64ef7fd0058bc1.gz --- CarpetExtra/WaveToyFO/schedule.ccl | 15 ++++++++++++++- CarpetExtra/WaveToyFO/src/boundaries.F77 | 4 +--- CarpetExtra/WaveToyFO/src/calcrhs.F77 | 25 ++++++++++++++++--------- CarpetExtra/WaveToyFO/src/make.code.defn | 4 ++-- 4 files changed, 33 insertions(+), 15 deletions(-) (limited to 'CarpetExtra/WaveToyFO') diff --git a/CarpetExtra/WaveToyFO/schedule.ccl b/CarpetExtra/WaveToyFO/schedule.ccl index f854ead34..85ec91def 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.5 2004/05/05 21:43:44 schnetter Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/schedule.ccl,v 1.6 2004/05/06 14:21:18 schnetter Exp $ STORAGE: scalarevolve[3] STORAGE: scalarevolvedot @@ -30,6 +30,19 @@ SCHEDULE WaveToyFO_CalcRHS IN MoL_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 { LANG: Fortran diff --git a/CarpetExtra/WaveToyFO/src/boundaries.F77 b/CarpetExtra/WaveToyFO/src/boundaries.F77 index 38d2dcb12..d2a0b03e2 100644 --- a/CarpetExtra/WaveToyFO/src/boundaries.F77 +++ b/CarpetExtra/WaveToyFO/src/boundaries.F77 @@ -1,4 +1,4 @@ -c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundaries.F77,v 1.2 2003/10/27 15:31:41 schnetter Exp $ +c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundaries.F77,v 1.3 2004/05/06 14:21:18 schnetter Exp $ #include "cctk.h" #include "cctk_Arguments.h" @@ -19,7 +19,5 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/boundari if (fboundlen.lt.0) call CCTK_WARN (0, "internal error") 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 70691ba31..88ece9d03 100644 --- a/CarpetExtra/WaveToyFO/src/calcrhs.F77 +++ b/CarpetExtra/WaveToyFO/src/calcrhs.F77 @@ -1,4 +1,4 @@ -c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs.F77,v 1.3 2003/10/27 15:31:41 schnetter Exp $ +c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs.F77,v 1.4 2004/05/06 14:21:18 schnetter Exp $ #include "cctk.h" #include "cctk_Arguments.h" @@ -14,10 +14,11 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs. integer bndwidth(3) integer imin(3), imax(3) integer i, j, k + integer im, jm, km + integer ip, jp, kp integer d - integer ierr do d=1,3 - bndwidth(d) = 1 + bndwidth(d) = 0 end do do d=1,3 if (cctk_bbox(2*d).ne.0) then @@ -37,13 +38,19 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/calcrhs. do k=imin(3),imax(3) do j=imin(2),imax(2) do i=imin(1),imax(1) + im = max(i-1,1) + jm = max(j-1,1) + km = max(k-1,1) + ip = min(i+1,cctk_lsh(1)) + jp = min(j+1,cctk_lsh(2)) + kp = min(k+1,cctk_lsh(3)) phidot(i,j,k) = - $ ( (psix(i+1,j,k) - psix(i-1,j,k)) / (2*dx(1)) - $ + (psiy(i,j+1,k) - psiy(i,j-1,k)) / (2*dx(2)) - $ + (psiz(i,j,k+1) - psiz(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)) + $ ( (psix(ip,j,k) - psix(im,j,k)) / ((ip-im)*dx(1)) + $ + (psiy(i,jp,k) - psiy(i,jm,k)) / ((jp-jm)*dx(2)) + $ + (psiz(i,j,kp) - psiz(i,j,km)) / ((kp-km)*dx(3))) + psixdot(i,j,k) = (phi(ip,j,k) - phi(im,j,k)) / ((ip-im)*dx(1)) + psiydot(i,j,k) = (phi(i,jp,k) - phi(i,jm,k)) / ((jp-jm)*dx(2)) + psizdot(i,j,k) = (phi(i,j,kp) - phi(i,j,km)) / ((kp-km)*dx(3)) end do end do end do diff --git a/CarpetExtra/WaveToyFO/src/make.code.defn b/CarpetExtra/WaveToyFO/src/make.code.defn index 9251b378b..ba19c751f 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.1 2003/06/18 18:24:30 schnetter Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyFO/src/make.code.defn,v 1.2 2004/05/06 14:21:18 schnetter Exp $ # Source files in this directory -SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 startup.F77 +SRCS = boundaries.F77 calcrhs.F77 initsymbound.F77 registervars.F77 rhsboundaries.F77 startup.F77 # Subdirectories containing source files SUBDIRS = -- cgit v1.2.3