diff options
-rw-r--r-- | CarpetExtra/FOWaveToyF77/interface.ccl | 20 | ||||
-rw-r--r-- | CarpetExtra/FOWaveToyF77/param.ccl | 15 | ||||
-rw-r--r-- | CarpetExtra/FOWaveToyF77/schedule.ccl | 37 | ||||
-rw-r--r-- | CarpetExtra/FOWaveToyF77/src/FOWaveToy.F77 | 118 | ||||
-rw-r--r-- | CarpetExtra/FOWaveToyF77/src/InitSymBound.F77 | 20 | ||||
-rw-r--r-- | CarpetExtra/FOWaveToyF77/src/Startup.F77 | 8 | ||||
-rw-r--r-- | CarpetExtra/IDFOScalarWave/interface.ccl | 7 | ||||
-rw-r--r-- | CarpetExtra/IDFOScalarWave/param.ccl | 13 | ||||
-rw-r--r-- | CarpetExtra/IDFOScalarWave/schedule.ccl | 11 | ||||
-rw-r--r-- | CarpetExtra/IDFOScalarWave/src/CheckParameters.F77 | 50 | ||||
-rw-r--r-- | CarpetExtra/IDFOScalarWave/src/InitialData.F77 | 190 | ||||
-rw-r--r-- | CarpetExtra/IDFOScalarWave/src/make.code.defn | 4 |
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 = |