From ece47455bad491c45b3136362e9239f505de23b9 Mon Sep 17 00:00:00 2001 From: eschnett <> Date: Thu, 1 Mar 2001 12:40:00 +0000 Subject: Initial revision darcs-hash:20010301124010-f6438-fca5ed1e25f84efd816aa0d13fc23b58add7195d.gz --- CarpetExtra/IDScalarWave/param.ccl | 23 ++--- CarpetExtra/IDScalarWave/schedule.ccl | 9 +- CarpetExtra/IDScalarWave/src/CheckParameters.F77 | 15 +-- CarpetExtra/IDScalarWave/src/InitialData.F77 | 121 ++++++----------------- CarpetExtra/IDScalarWave/src/make.code.defn | 4 +- 5 files changed, 50 insertions(+), 122 deletions(-) (limited to 'CarpetExtra/IDScalarWave') diff --git a/CarpetExtra/IDScalarWave/param.ccl b/CarpetExtra/IDScalarWave/param.ccl index e44af902a..23f43746c 100644 --- a/CarpetExtra/IDScalarWave/param.ccl +++ b/CarpetExtra/IDScalarWave/param.ccl @@ -1,5 +1,9 @@ # Parameter definitions for thorn IDScalarWave -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/param.ccl,v 1.5 2002/03/23 20:21:00 schnetter Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/param.ccl,v 1.1 2001/03/01 13:40:10 eschnett Exp $ + +shares: grid + +USES KEYWORD type restricted: @@ -8,7 +12,6 @@ KEYWORD initial_data "Type of initial data" "plane" :: "Plane wave" "gaussian" :: "Gaussian wave" "box" :: "Box wave" - "1/r" :: "1/r data" "none" :: "No initial data, zero phi" } "gaussian" @@ -18,7 +21,7 @@ private: REAL radius "The radius of the gaussian wave" { - *:* :: "No restriction" + 0:* :: "Positive" } 0.0 REAL sigma "The sigma for the gaussian wave" @@ -46,17 +49,3 @@ REAL amplitude "The amplitude of the waves" *:* :: "No restriction" } 1.0 -REAL cx "x-coordinate of center of 1/r initial data" -{ - *:* :: "No restriction" -} 0.0 - -REAL cy "y-coordinate of center of 1/r initial data" -{ - *:* :: "No restriction" -} 0.0 - -REAL cz "z-coordinate of center of 1/r initial data" -{ - *:* :: "No restriction" -} 0.0 diff --git a/CarpetExtra/IDScalarWave/schedule.ccl b/CarpetExtra/IDScalarWave/schedule.ccl index 19bbd7cd1..cee342d08 100644 --- a/CarpetExtra/IDScalarWave/schedule.ccl +++ b/CarpetExtra/IDScalarWave/schedule.ccl @@ -1,13 +1,14 @@ # Schedule definitions for thorn IDScalarWave -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/schedule.ccl,v 1.5 2003/11/05 16:18:40 schnetter Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/schedule.ccl,v 1.1 2001/03/01 13:40:10 eschnett Exp $ -schedule IDScalarWave_CheckParameters at PARAMCHECK +schedule IDScalarWave_CheckParameters at CCTK_PARAMCHECK { LANG: Fortran } "Check parameters" -schedule IDScalarWave_InitialData as WaveToy_InitialData at INITIAL +schedule IDScalarWave_InitialData at CCTK_INITIAL { - STORAGE: wavetoy::scalarevolve[3] + STORAGE: wavetoy::scalarevolve LANG: Fortran } "Initial data for 3D wave equation" + diff --git a/CarpetExtra/IDScalarWave/src/CheckParameters.F77 b/CarpetExtra/IDScalarWave/src/CheckParameters.F77 index 56cf12d1f..722bad3cc 100644 --- a/CarpetExtra/IDScalarWave/src/CheckParameters.F77 +++ b/CarpetExtra/IDScalarWave/src/CheckParameters.F77 @@ -1,5 +1,4 @@ -c -*-Fortran-*- -c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/CheckParameters.F77,v 1.5 2003/11/05 16:18:40 schnetter Exp $ +c -*-Fortran-*- /*@@ @file CheckParameters.F77 @@ -11,9 +10,8 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/Check @@*/ #include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Functions.h" #include "cctk_Parameters.h" +#include "cctk_Arguments.h" /*@@ @@ -36,10 +34,15 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/Check implicit none DECLARE_CCTK_ARGUMENTS - DECLARE_CCTK_FUNCTIONS DECLARE_CCTK_PARAMETERS - if (CCTK_EQUALS(initial_data,"box")) then + INTEGER CCTK_Equals + + if (CCTK_Equals(initial_data,"box").eq.1) then + + if (CCTK_Equals(type, "box").eq.0) then + call CCTK_PARAMWARN("Must have a box grid with box initial data") + end if 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") diff --git a/CarpetExtra/IDScalarWave/src/InitialData.F77 b/CarpetExtra/IDScalarWave/src/InitialData.F77 index 0ee71e625..a6d74ae59 100644 --- a/CarpetExtra/IDScalarWave/src/InitialData.F77 +++ b/CarpetExtra/IDScalarWave/src/InitialData.F77 @@ -1,25 +1,23 @@ c -*-Fortran-*- -c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/InitialData.F77,v 1.14 2003/11/05 16:18:40 schnetter Exp $ /*@@ @file InitialData.F77 @date - @author Tom Goodale, Erik Schnetter + @author Tom Goodale @desc Initial data for the 3D Wave Equation @enddesc @@*/ #include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Functions.h" #include "cctk_Parameters.h" +#include "cctk_Arguments.h" /*@@ @routine IDScalarWave_InitialData @date - @author Tom Goodale, Erik Schnetter + @author Tom Goodale @desc Set up initial data for the wave equation @enddesc @@ -41,14 +39,11 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/Initi INTEGER i,j,k CCTK_REAL dt,omega, pi - CCTK_REAL t - CCTK_REAL x,y,z, r -c call CCTK_INFO ("IDScalarWave_InitialData") + print '("IDScalarWave_InitialData")' pi = 4.d0*atan(1.d0) - t = cctk_time dt = CCTK_DELTA_TIME omega = sqrt(kx**2+ky**2+kz**2) @@ -59,18 +54,12 @@ c call CCTK_INFO ("IDScalarWave_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 + ky*y + kz*z + omega*cctk_time) * pi) - + $ * cos(kx*cart3d_x(i,j,k) + ky*cart3d_y(i,j,k) + $ + kz*cart3d_z(i,j,k) + omega*cctk_time) phi_p(i,j,k) = amplitude - $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - dt)) * pi) - - phi_p_p(i,j,k) = amplitude - $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - 2*dt)) * pi) + $ * cos(kx*cart3d_x(i,j,k) + ky*cart3d_y(i,j,k) + $ + kz*cart3d_z(i,j,k) + omega*(cctk_time - dt)) end do end do @@ -81,41 +70,14 @@ c call CCTK_INFO ("IDScalarWave_InitialData") do k=1, cctk_lsh(3) do j=1, cctk_lsh(2) do i=1, cctk_lsh(1) - - r = spher3d_r(i,j,k) - - if (r .ne. 0) then - phi(i,j,k) = amplitude/2 * (r - radius - t) / r - $ * exp(- (r - radius - t)**2 / sigma**2) - $ + amplitude/2 * (r + radius + t) / r - $ * exp(- (r + radius + t)**2 / sigma**2) - - phi_p(i,j,k) = amplitude/2 * (r - radius - t + dt) / r - $ * exp(- (r - radius - t + dt)**2 / sigma**2) - $ + amplitude/2 * (r + radius + t - dt) / r - $ * exp(- (r + radius + t - dt)**2 / sigma**2) - - phi_p_p(i,j,k) = amplitude/2 * (r - radius - t + 2*dt) / r - $ * exp(- (r - radius - t + 2*dt)**2 / sigma**2) - $ + amplitude/2 * (r + radius + t - 2*dt) / r - $ * exp(- (r + radius + t - 2*dt)**2 / sigma**2) - - else - - phi(i,j,k) = amplitude - $ * (1 - 2 * (radius + t)**2 / sigma**2) - $ * exp(- (radius + t)**2 / sigma**2) - - phi_p(i,j,k) = amplitude - $ * (1 - 2 * (radius + t - dt)**2 / sigma**2) - $ * exp(- (radius + t - dt)**2 / sigma**2) - - phi_p_p(i,j,k) = amplitude - $ * (1 - 2 * (radius + t - 2*dt)**2 / sigma**2) - $ * exp(- (radius + t - 2*dt)**2 / sigma**2) - - end if - + + phi(i,j,k) = amplitude + $ * exp(- (sqrt(cart3d_x(i,j,k)**2 + cart3d_y(i,j,k)**2 + $ + cart3d_z(i,j,k)**2) - radius)**2 / sigma**2) + phi_p(i,j,k) = amplitude + $ * exp(- (sqrt(cart3d_x(i,j,k)**2 + cart3d_y(i,j,k)**2 + $ + cart3d_z(i,j,k)**2) - radius - dt)**2 / sigma**2) + end do end do end do @@ -128,59 +90,30 @@ 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 - 0.5d0) * pi) - $ * sin(ky * (y - 0.5d0) * pi) - $ * sin(kz * (z - 0.5d0) * pi) + $ * sin(kx * (cart3d_x(i,j,k) - 0.5d0) * pi) + $ * sin(ky * (cart3d_y(i,j,k) - 0.5d0) * pi) + $ * sin(kz * (cart3d_z(i,j,k) - 0.5d0) * pi) $ * cos(omega * cctk_time * pi) - phi_p(i,j,k) = amplitude - $ * sin(kx * (x - 0.5d0) * pi) - $ * sin(ky * (y - 0.5d0) * pi) - $ * sin(kz * (z - 0.5d0) * pi) - $ * cos(omega * (cctk_time - dt) * pi) - - phi_p_p(i,j,k) = amplitude - $ * sin(kx * (x - 0.5d0) * pi) - $ * sin(ky * (y - 0.5d0) * pi) - $ * sin(kz * (z - 0.5d0) * pi) - $ * cos(omega * (cctk_time - 2*dt) * pi) + phi_p(i,j,k)= amplitude + $ * sin(kx * (cart3d_x(i,j,k) - 0.5d0) * pi) + $ * sin(ky * (cart3d_y(i,j,k) - 0.5d0) * pi) + $ * sin(kz * (cart3d_z(i,j,k) - 0.5d0) * pi) + $ * cos(omega * (cctk_time-dt) * pi) 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) - - x = cart3d_x(i,j,k) - y = cart3d_y(i,j,k) - z = cart3d_z(i,j,k) - - phi(i,j,k) = 1 / sqrt((x-cx)**2 + (y-cy)**2 + (z-cz)**2) - phi_p(i,j,k) = phi(i,j,k) - phi_p_p(i,j,k) = phi(i,j,k) - - end do - end do - end do - else do k=1,cctk_lsh(3) do j=1,cctk_lsh(2) do i=1,cctk_lsh(1) - phi(i,j,k) = 0.0d0 - phi_p(i,j,k) = 0.0d0 - phi_p_p(i,j,k) = 0.0d0 + phi(i,j,k) = 0.0d0 + phi_p(i,j,k) = 0.0d0 end do end do @@ -189,3 +122,5 @@ c Use kx,ky,kz as number of modes in each direction. end if end + + diff --git a/CarpetExtra/IDScalarWave/src/make.code.defn b/CarpetExtra/IDScalarWave/src/make.code.defn index cf47303ce..62b3ea61a 100644 --- a/CarpetExtra/IDScalarWave/src/make.code.defn +++ b/CarpetExtra/IDScalarWave/src/make.code.defn @@ -1,8 +1,8 @@ # Main make.code.defn file for thorn IDScalarWave -*-Makefile-*- -# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/make.code.defn,v 1.2 2001/03/17 16:04:59 eschnett Exp $ +# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDScalarWave/src/make.code.defn,v 1.1 2001/03/01 13:40:10 eschnett Exp $ # Source files in this directory -SRCS = InitialData.F77 CheckParameters.F77 +SRCS = InitialData.F77 CheckParameters.F77 # Subdirectories containing source files SUBDIRS = -- cgit v1.2.3