aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <>2001-03-17 15:05:00 +0000
committereschnett <>2001-03-17 15:05:00 +0000
commitef1433fcc8f8e7521674f229d75a408c16af0f90 (patch)
tree8d4093b8485058b3fa9363588ba106a3b34dfd7f
parentb0432e3310d34454b72e6b674e249e64561c7e1c (diff)
Added new thorns SpaceTimeToy and IDSpaceTimeToy that implement the
Added new thorns SpaceTimeToy and IDSpaceTimeToy that implement the scalar wave equations with two scalar first-order equations using ICN integration. darcs-hash:20010317150549-f6438-0b30f528e2d969d7ff733be1c2d2de4ec0891725.gz
-rw-r--r--CarpetExtra/IDSpaceTimeToy/README4
-rw-r--r--CarpetExtra/IDSpaceTimeToy/interface.ccl4
-rw-r--r--CarpetExtra/IDSpaceTimeToy/param.ccl6
-rw-r--r--CarpetExtra/IDSpaceTimeToy/schedule.ccl7
-rw-r--r--CarpetExtra/IDSpaceTimeToy/src/InitialData.F77116
-rw-r--r--CarpetExtra/SpaceTimeToy/interface.ccl22
-rw-r--r--CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par49
-rw-r--r--CarpetExtra/SpaceTimeToy/param.ccl15
-rw-r--r--CarpetExtra/SpaceTimeToy/schedule.ccl64
-rw-r--r--CarpetExtra/SpaceTimeToy/src/InitSymBound.F778
-rw-r--r--CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77176
-rw-r--r--CarpetExtra/WaveToyF77/param.ccl4
12 files changed, 125 insertions, 350 deletions
diff --git a/CarpetExtra/IDSpaceTimeToy/README b/CarpetExtra/IDSpaceTimeToy/README
index 28838ffce..1f82fb9ed 100644
--- a/CarpetExtra/IDSpaceTimeToy/README
+++ b/CarpetExtra/IDSpaceTimeToy/README
@@ -1,6 +1,6 @@
Cactus Code Thorn IDSpaceTimeToy
-Authors : Erik Schnetter <schnetter@uni-tuebingen.de>
-CVS info : $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/README,v 1.2 2001/03/18 22:37:10 eschnett Exp $
+Authors : Erik Schnetter
+CVS info : $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/README,v 1.1 2001/03/17 16:05:49 eschnett Exp $
--------------------------------------------------------------------------
Purpose of the thorn:
diff --git a/CarpetExtra/IDSpaceTimeToy/interface.ccl b/CarpetExtra/IDSpaceTimeToy/interface.ccl
index 6e67bea74..801f8550b 100644
--- a/CarpetExtra/IDSpaceTimeToy/interface.ccl
+++ b/CarpetExtra/IDSpaceTimeToy/interface.ccl
@@ -1,5 +1,5 @@
# Interface definition for thorn IDSpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/interface.ccl,v 1.2 2001/03/20 17:27:26 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/interface.ccl,v 1.1 2001/03/17 16:05:49 eschnett Exp $
implements: idspacetimetoy
-inherits: spacetimetoy hydrotoy grid
+inherits: spacetimetoy grid
diff --git a/CarpetExtra/IDSpaceTimeToy/param.ccl b/CarpetExtra/IDSpaceTimeToy/param.ccl
index ac7cea505..8a708604c 100644
--- a/CarpetExtra/IDSpaceTimeToy/param.ccl
+++ b/CarpetExtra/IDSpaceTimeToy/param.ccl
@@ -1,9 +1,9 @@
# Parameter definitions for thorn IDSpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/param.ccl,v 1.3 2002/03/23 20:21:00 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/param.ccl,v 1.1 2001/03/17 16:05:49 eschnett Exp $
-shares: hydrotoy
+shares: grid
-USES BOOLEAN hydrotoy_active
+USES KEYWORD type
restricted:
diff --git a/CarpetExtra/IDSpaceTimeToy/schedule.ccl b/CarpetExtra/IDSpaceTimeToy/schedule.ccl
index 8a6c9e306..763983419 100644
--- a/CarpetExtra/IDSpaceTimeToy/schedule.ccl
+++ b/CarpetExtra/IDSpaceTimeToy/schedule.ccl
@@ -1,14 +1,13 @@
# Schedule definitions for thorn IDSpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/schedule.ccl,v 1.5 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/schedule.ccl,v 1.1 2001/03/17 16:05:50 eschnett Exp $
schedule IDSpaceTimeToy_Startup at STARTUP
{
LANG: Fortran
} "Register banner"
-schedule IDSpaceTimeToy_InitialData as SpaceTimeToy_InitialData at INITIAL \
- after IDHydroToy_InitialData
+schedule IDSpaceTimeToy_InitialData as SpaceTimeToy_InitialData at INITIAL
{
LANG: Fortran
- STORAGE: spacetimetoy::spacetimeevolve[3]
+ STORAGE: spacetimetoy::scalarevolve
} "Initial data for 3D wave equation"
diff --git a/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77 b/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77
index 118f0d075..ea770344b 100644
--- a/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77
+++ b/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77
@@ -1,10 +1,9 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77,v 1.8 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77,v 1.1 2001/03/17 16:05:56 eschnett Exp $
#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
subroutine IDSpaceTimeToy_InitialData (CCTK_ARGUMENTS)
@@ -16,42 +15,24 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/src/Ini
CCTK_REAL pi
CCTK_REAL omega
- CCTK_REAL dt
- CCTK_REAL x,y,z, r
integer i,j,k
pi = 4*atan(1.d0)
omega = sqrt(kx**2+ky**2+kz**2)
- dt = CCTK_DELTA_TIME
-
if (CCTK_EQUALS(initial_data,"plane")) 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) = 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) * pi)
psi(i,j,k) = - amplitude
- $ * sin((kx*x + ky*y + kz*z + omega*cctk_time) * pi)
- $ * pi * omega
-
- phi_p(i,j,k) = amplitude
- $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - dt)) * pi)
- psi_p(i,j,k) = - amplitude
- $ * sin((kx*x + ky*y + kz*z + omega*(cctk_time - dt)) * pi)
- $ * pi * omega
-
- phi_p_p(i,j,k) = amplitude
- $ * cos((kx*x + ky*y + kz*z + omega*(cctk_time - 2*dt)) * pi)
- psi_p_p(i,j,k) = - amplitude
- $ * sin((kx*x + ky*y + kz*z + omega*(cctk_time - 2*dt)) * pi)
+ $ * sin((kx*cart3d_x(i,j,k) + ky*cart3d_y(i,j,k)
+ $ + kz*cart3d_z(i,j,k) + omega*cctk_time) * pi)
$ * pi * omega
end do
@@ -64,22 +45,12 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/src/Ini
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- r = spher3d_r(i,j,k)
-
- phi(i,j,k) = amplitude / r
- $ * exp(- (r - radius - cctk_time)**2 / sigma**2)
- psi(i,j,k) = phi(i,j,k)
- $ * 2 * (r - radius - cctk_time) / sigma**2
-
- phi_p(i,j,k) = amplitude / r
- $ * exp(- (r - radius - (cctk_time - dt))**2 / sigma**2)
- psi_p(i,j,k) = phi(i,j,k)
- $ * 2 * (r - radius - (cctk_time - dt)) / sigma**2
-
- phi_p_p(i,j,k) = amplitude / r
- $ * exp(- (r - radius - (cctk_time - 2*dt))**2 / sigma**2)
- psi_p_p(i,j,k) = phi(i,j,k)
- $ * 2 * (r - radius - (cctk_time - 2*dt)) / sigma**2
+ phi(i,j,k) = amplitude
+ $ * exp(- (spher3d_r(i,j,k) - radius + cctk_time)**2
+ $ / sigma**2)
+ psi(i,j,k) = - phi(i,j,k)
+ $ * 2 * (spher3d_r(i,j,k) - radius + cctk_time)
+ $ / sigma**2
end do
end do
@@ -93,46 +64,19 @@ 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)
+
psi(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)
$ * sin(omega * cctk_time * pi)
$ * omega * 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)
- psi_p(i,j,k) = - amplitude
- $ * sin(kx * (x - 0.5d0) * pi)
- $ * sin(ky * (y - 0.5d0) * pi)
- $ * sin(kz * (z - 0.5d0) * pi)
- $ * sin(omega * (cctk_time - dt) * pi)
- $ * omega * 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)
- psi_p_p(i,j,k) = - amplitude
- $ * sin(kx * (x - 0.5d0) * pi)
- $ * sin(ky * (y - 0.5d0) * pi)
- $ * sin(kz * (z - 0.5d0) * pi)
- $ * sin(omega * (cctk_time - 2*dt) * pi)
- $ * omega * pi
-
end do
end do
end do
@@ -146,32 +90,10 @@ c Use kx,ky,kz as number of modes in each direction.
phi(i,j,k) = 0
psi(i,j,k) = 0
- phi_p(i,j,k) = 0
- psi_p(i,j,k) = 0
-
- phi_p_p(i,j,k) = 0
- psi_p_p(i,j,k) = 0
-
end do
end do
end do
end if
- if (hydrotoy_active.eq.1) then
-
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
-
- psi(i,j,k) = psi(i,j,k) - u(i,j,k)
- psi_p(i,j,k) = psi_p(i,j,k) - u_p(i,j,k)
- psi_p_p(i,j,k) = psi_p_p(i,j,k) - u_p_p(i,j,k)
-
- end do
- end do
- end do
-
- end if
-
end
diff --git a/CarpetExtra/SpaceTimeToy/interface.ccl b/CarpetExtra/SpaceTimeToy/interface.ccl
index 1b0eaab8a..3d2a7c38c 100644
--- a/CarpetExtra/SpaceTimeToy/interface.ccl
+++ b/CarpetExtra/SpaceTimeToy/interface.ccl
@@ -1,37 +1,25 @@
# Interface definition for thorn SpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/interface.ccl,v 1.8 2004/05/21 17:43:57 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/interface.ccl,v 1.1 2001/03/17 16:05:56 eschnett Exp $
implements: spacetimetoy
-inherits: hydrotoy grid
-
-
-
-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
+inherits: grid
public:
-CCTK_REAL spacetimeevolve type=GF timelevels=3
+CCTK_REAL scalarevolve type=GF timelevels=2
{
phi psi
-} "The evolved spacetime fields"
+} "The evolved scalar fields"
private:
-CCTK_REAL spacetimetemps type=GF
+CCTK_REAL scalartemps type=GF
{
phi_i psi_i
} "Intermediate values for the integrator"
-CCTK_REAL hydrotemps type=GF
-{
- u_i vx_i vy_i vz_i
-} "Intermediate vales for the integrator"
-
private:
diff --git a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par
index ca078c0d4..beb11042c 100644
--- a/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par
+++ b/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par
@@ -7,54 +7,45 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par,v 1.11 2004/03/23 12:00:15 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/par/spacetimetoy_periodic_coarse.par,v 1.1 2001/03/17 16:05:56 eschnett Exp $
-ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Slab Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetReduce CarpetRegrid CarpetSlab IDSpaceTimeToy SpaceTimeToy Hydrotoy"
-
-Carpet::poison_new_timelevels = yes
-#Carpet::check_for_poison = yes
-Carpet::checksum_timelevels = yes
+ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDSpaceTimeToy SpaceTimeToy"
Cactus::cctk_itlast = 60
Time::dtfac = 0.5
-driver::global_nx = 19
-driver::global_ny = 26
-driver::global_nz = 34
-
-driver::ghost_size = 2
+driver::global_nx = 17
+driver::global_ny = 24
+driver::global_nz = 32
grid::type = byrange
-grid::xmin = -5.4
-grid::ymin = -7.2
-grid::zmin = -9.6
-grid::xmax = 5.4
-grid::ymax = 7.8
-grid::zmax = 10.2
+grid::xmin = -4.8
+grid::ymin = -6.6
+grid::zmin = -9.0
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
-IO::out_dir = "spacetimetoy_periodic_coarse"
+IO::outdir = "spacetimetoy_periodic_coarse"
IOBasic::outinfo_every = 1 # 10
-IOBasic::outinfo_vars = "spacetimetoy::spacetimeevolve"
+#IOBasic::outinfo_vars = "spacetimetoy::scalarevolve"
-IOBasic::outScalar_every = 1 # 2
-IOBasic::outScalar_vars = "spacetimetoy::spacetimeevolve"
+#IOBasic::outScalar_every = 2
+#IOBasic::outScalar_vars = "spacetimetoy::scalarevolve"
IOASCII::out1D_every = 1 # 2
-IOASCII::out1D_vars = "spacetimetoy::spacetimeevolve grid::coordinates"
+IOASCII::out1D_vars = "spacetimetoy::scalarevolve grid::coordinates"
-#IOFlexIO::out3D_every = 12
-#IOFlexIO::out3D_vars = "spacetimetoy::spacetimeevolve"
-#IOFlexIO::out3D_format = IEEE
-#IOFlexIO::out3D_extension = ".vcamr"
+IOFlexIO::out3D_every = 12
+IOFlexIO::out3D_vars = "spacetimetoy::scalarevolve"
+IOFlexIO::out3D_format = IEEE
-SpaceTimeToy::icn_iterations = 2
+SpaceTimeToy::icn_iterations = 1
SpaceTimeToy::bound = radiation
-HydroToy::hydrotoy_active = no
-
IDSpaceTimeToy::initial_data = plane
IDSpaceTimeToy::kx = 0.222222222222222 # 2 / ((32-2) * 0.3)
IDSpaceTimeToy::ky = 0.151515151515152 # 2 / ((46-2) * 0.3)
diff --git a/CarpetExtra/SpaceTimeToy/param.ccl b/CarpetExtra/SpaceTimeToy/param.ccl
index d129baa51..8a7f8b783 100644
--- a/CarpetExtra/SpaceTimeToy/param.ccl
+++ b/CarpetExtra/SpaceTimeToy/param.ccl
@@ -1,16 +1,15 @@
# Parameter definitions for thorn SpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/param.ccl,v 1.4 2003/06/18 18:24:29 schnetter Exp $
-
-shares: hydrotoy
-
-USES BOOLEAN hydrotoy_active
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/param.ccl,v 1.1 2001/03/17 16:05:56 eschnett Exp $
private:
-STRING bound "Type of boundary condition to use"
+KEYWORD bound "Type of boundary condition to use"
{
- ".*" :: "Must be a registered boundary condition"
-} "Static"
+ "flat" :: "Flat boundary condition"
+ "radiation" :: "Radiation boundary condition"
+ "robin" :: "Robin boundary condition"
+ "zero" :: "Zero boundary condition"
+} "zero"
CCTK_INT icn_iterations "Number of ICN iterations to take after the initial Euler step"
{
diff --git a/CarpetExtra/SpaceTimeToy/schedule.ccl b/CarpetExtra/SpaceTimeToy/schedule.ccl
index 85afb3e27..5e4c70ccd 100644
--- a/CarpetExtra/SpaceTimeToy/schedule.ccl
+++ b/CarpetExtra/SpaceTimeToy/schedule.ccl
@@ -1,7 +1,7 @@
# Schedule definitions for thorn SpaceTimeToy
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/schedule.ccl,v 1.8 2003/11/05 16:18:40 schnetter Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/schedule.ccl,v 1.1 2001/03/17 16:05:56 eschnett Exp $
-STORAGE: spacetimeevolve[3]
+STORAGE: scalarevolve
STORAGE: icn_state
@@ -21,64 +21,20 @@ schedule SpaceTimeToy_InitSymBound at BASEGRID
-# Iterative Crank-Nicholson integration
+# ICN integration
-schedule SpaceTimeToy_EulerStep at EVOL \
- after HydroToy_EulerPredictor
+schedule SpaceTimeToy_EulerStep at EVOL
{
LANG: Fortran
- STORAGE: spacetimetemps hydrotemps
+ STORAGE: scalartemps
+ SYNC: scalarevolve
} "Initial Euler step"
-
-schedule SpaceTimeToy_Boundaries at EVOL \
- after SpaceTimeToy_EulerStep
-{
- LANG: Fortran
- SYNC: spacetimeevolve
-} "Select boundary conditions after initial Euler step"
-
-schedule GROUP ApplyBCs at EVOL \
- after SpaceTimeToy_Boundaries
-{
-} "Apply boundary conditions after initial Euler step"
-
-
-
-schedule GROUP SpaceTimeToy_ICNLoop at EVOL \
+
+schedule SpaceTimeToy_ICNStep at EVOL \
after SpaceTimeToy_EulerStep \
- after HydroToy_EulerPredictor \
- before HydroToy_EulerCorrector \
while SpaceTimeToy::do_iterate
{
-} "All ICN steps"
-
-schedule SpaceTimeToy_ICNStep in SpaceTimeToy_ICNLoop
-{
LANG: Fortran
- STORAGE: spacetimetemps hydrotemps
+ STORAGE: scalartemps
+ SYNC: scalarevolve
} "One ICN step"
-
-schedule SpaceTimeToy_Boundaries in SpaceTimeToy_ICNLoop \
- after SpaceTimeToy_ICNStep
-{
- LANG: Fortran
- SYNC: spacetimeevolve
-} "Select boundary conditions after ICN step"
-
-schedule GROUP ApplyBCs in SpaceTimeToy_ICNLoop \
- after SpaceTimeToy_Boundaries
-{
-} "Apply boundary conditions after ICN step"
-
-
-
-schedule SpaceTimeToy_Boundaries at POSTRESTRICT
-{
- LANG: Fortran
- SYNC: spacetimeevolve
-} "Select boundary conditions after restricting"
-
-schedule GROUP ApplyBCs at POSTRESTRICT \
- after SpaceTimeToy_Boundaries
-{
-} "Apply boundary conditions after restricting"
diff --git a/CarpetExtra/SpaceTimeToy/src/InitSymBound.F77 b/CarpetExtra/SpaceTimeToy/src/InitSymBound.F77
index ab98da34a..99e402925 100644
--- a/CarpetExtra/SpaceTimeToy/src/InitSymBound.F77
+++ b/CarpetExtra/SpaceTimeToy/src/InitSymBound.F77
@@ -1,9 +1,8 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/InitSymBound.F77,v 1.4 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/InitSymBound.F77,v 1.1 2001/03/17 16:05:56 eschnett Exp $
#include "cctk.h"
#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
#include "cctk_Parameters.h"
subroutine SpaceTimeToy_InitSymBound (CCTK_ARGUMENTS)
@@ -15,6 +14,11 @@ c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/InitS
DECLARE_CCTK_PARAMETERS
integer ierr
+ integer sym(3)
+
+ sym(1) = 1
+ sym(2) = 1
+ sym(3) = 1
call Cart3dSetTensorTypeVN (ierr, cctkGH, "SpaceTimeToy::phi", "scalar")
call Cart3dSetTensorTypeVN (ierr, cctkGH, "SpaceTimeToy::psi", "scalar")
diff --git a/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77 b/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77
index 0fbc5963e..cc7f58ed6 100644
--- a/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77
+++ b/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77
@@ -1,10 +1,9 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77,v 1.12 2003/11/05 16:18:40 schnetter Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/SpaceTimeToy/src/SpaceTimeToy.F77,v 1.1 2001/03/17 16:05:56 eschnett Exp $
-#include "cctk.h"
-#include "cctk_Arguments.h"
-#include "cctk_Functions.h"
+#include "cctk.h"
#include "cctk_Parameters.h"
+#include "cctk_Arguments.h"
@@ -23,46 +22,14 @@ c Copy
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- phi_i(i,j,k) = phi_p(i,j,k)
- psi_i(i,j,k) = psi_p(i,j,k)
+ phi_i(i,j,k) = phi(i,j,k)
+ psi_i(i,j,k) = psi(i,j,k)
end do
end do
end do
- if (hydrotoy_active.eq.1) then
-
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
-
- u_i(i,j,k) = u_p(i,j,k)
- vx_i(i,j,k) = vx_p(i,j,k)
- vy_i(i,j,k) = vy_p(i,j,k)
- vz_i(i,j,k) = vz_p(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)
-
- u_i(i,j,k) = 0
- vx_i(i,j,k) = 0
- vy_i(i,j,k) = 0
- vz_i(i,j,k) = 0
-
- end do
- end do
- end do
-
- end if
-
-c Evolve
+c Evolve and apply boundaries
call SpaceTimeToy_Step (CCTK_PASS_FTOF)
c Initialise ICN iterations
@@ -94,46 +61,14 @@ c Average
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- phi_i(i,j,k) = half * (phi_p(i,j,k) + phi(i,j,k))
- psi_i(i,j,k) = half * (psi_p(i,j,k) + psi(i,j,k))
+ phi_i(i,j,k) = half * (phi(i,j,k) + phi_n(i,j,k))
+ psi_i(i,j,k) = half * (psi(i,j,k) + psi_n(i,j,k))
end do
end do
end do
- if (hydrotoy_active.eq.1) then
-
- do k=1,cctk_lsh(3)
- do j=1,cctk_lsh(2)
- do i=1,cctk_lsh(1)
-
- u_i(i,j,k) = half * (u_p(i,j,k) + u(i,j,k))
- vx_i(i,j,k) = half * (vx_p(i,j,k) + vx(i,j,k))
- vy_i(i,j,k) = half * (vy_p(i,j,k) + vy(i,j,k))
- vz_i(i,j,k) = half * (vz_p(i,j,k) + vz(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)
-
- u_i(i,j,k) = 0
- vx_i(i,j,k) = 0
- vy_i(i,j,k) = 0
- vz_i(i,j,k) = 0
-
- end do
- end do
- end do
-
- end if
-
-c Evolve
+c Evolve and apply boundaries
call SpaceTimeToy_Step (CCTK_PASS_FTOF)
c Step ICN iterations
@@ -154,82 +89,65 @@ c Step ICN iterations
DECLARE_CCTK_FUNCTIONS
DECLARE_CCTK_PARAMETERS
+ CCTK_REAL zero, one
+ parameter (zero=0, one=1)
+
+ CCTK_REAL finf, npow
+ parameter (finf=1, npow=1)
+
CCTK_REAL dx,dy,dz,dt
integer i,j,k
+ integer sw(3)
+ integer ierr
dx = CCTK_DELTA_SPACE(1)
dy = CCTK_DELTA_SPACE(2)
dz = CCTK_DELTA_SPACE(3)
dt = CCTK_DELTA_TIME
+ sw(1) = 1
+ sw(2) = 1
+ sw(3) = 1
+
c Evolve
- do k=1+cctk_nghostzones(3),cctk_lsh(3)-cctk_nghostzones(3)
- do j=1+cctk_nghostzones(2),cctk_lsh(2)-cctk_nghostzones(2)
- do i=1+cctk_nghostzones(1),cctk_lsh(1)-cctk_nghostzones(1)
+ do k=2,cctk_lsh(3)-1
+ do j=2,cctk_lsh(2)-1
+ do i=2,cctk_lsh(1)-1
- phi(i,j,k) = phi_p(i,j,k)
+ phi_n(i,j,k) = phi(i,j,k)
$ + dt * psi_i(i,j,k)
- $ + dt * u_i(i,j,k)
- psi(i,j,k) = psi_p(i,j,k)
+ psi_n(i,j,k) = psi(i,j,k)
$ + dt * (phi_i(i-1,j,k) - 2*phi_i(i,j,k) + phi_i(i+1,j,k)) / dx**2
$ + dt * (phi_i(i,j-1,k) - 2*phi_i(i,j,k) + phi_i(i,j+1,k)) / dy**2
$ + dt * (phi_i(i,j,k-1) - 2*phi_i(i,j,k) + phi_i(i,j,k+1)) / dz**2
- $ - dt * (vx_i(i+1,j,k) - vx_i(i-1,j,k)) / (2*dx)
- $ - dt * (vy_i(i,j+1,k) - vy_i(i,j-1,k)) / (2*dy)
- $ - dt * (vz_i(i,j,k+1) - vz_i(i,j,k-1)) / (2*dz)
end do
end do
end do
- end
-
-
-
- subroutine SpaceTimeToy_Boundaries (CCTK_ARGUMENTS)
-
- implicit none
-
- DECLARE_CCTK_ARGUMENTS
- DECLARE_CCTK_FUNCTIONS
- DECLARE_CCTK_PARAMETERS
-
- character fbound*1000
- CCTK_INT fboundlen
-
- integer options
-
- CCTK_INT boundary_width
- CCTK_INT options1
-
- integer d
- integer ierr
-
- boundary_width = cctk_nghostzones(1)
- do d=1,3
- if (cctk_nghostzones(d) .ne. boundary_width) then
- call CCTK_WARN (0, "internal error")
- end if
- end do
-
- call Util_TableCreateFromString (options, "")
- if (options .lt. 0) call CCTK_WARN (0, "internal error")
-
- call CCTK_FortranString (fboundlen, bound, fbound)
-
- options1 = options
- ierr = Boundary_SelectGroupForBC (cctkGH, CCTK_ALL_FACES, boundary_width, options1, "spacetimetoy::spacetimeevolve", fbound)
- if (ierr .lt. 0) then
- call CCTK_WARN (0, "Error while selecting boundary condition")
+c Apply boundary condition
+ if (CCTK_EQUALS(bound, "flat")) then
+ call BndFlatGN (ierr, cctkGH, sw, "spacetimetoy::scalarevolve")
+ else if (CCTK_EQUALS(bound, "zero")) then
+ call BndScalarGN (ierr, cctkGH, zero, sw,
+ $ "spacetimetoy::scalarevolve")
+ else if (CCTK_EQUALS(bound, "radiation")) then
+ call BndRadiativeGN (ierr, cctkGH, sw, zero, one,
+ $ "spacetimetoy::scalarevolve", "spacetimetoy::scalarevolve")
+ else if (CCTK_EQUALS(bound, "robin")) then
+ call BndRobinGN (ierr, cctkGH, sw, finf, npow,
+ $ "spacetimetoy::scalarevolve")
+ else
+ call CCTK_WARN (0, "Internal error")
+ end if
+ if (ierr .lt. 0) then
+ call CCTK_WARN (0, "Error while applying boundary condition")
end if
- call Util_TableDestroy (ierr, options)
- if (ierr .lt. 0) call CCTK_WARN (0, "internal error")
-
- call Cart3dSymGN (ierr, cctkGH, "spacetimetoy::spacetimeevolve")
- if (ierr .lt. 0) then
- call CCTK_WARN (0, "Error while applying symmetry condition")
+ call Cart3dSymGN (ierr, cctkGH, "spacetimetoy::scalarevolve")
+ if (ierr .lt. 0) then
+ call CCTK_WARN (0, "Error while applying boundary condition")
end if
-
+
end
diff --git a/CarpetExtra/WaveToyF77/param.ccl b/CarpetExtra/WaveToyF77/param.ccl
index 403f70877..a8ff624c4 100644
--- a/CarpetExtra/WaveToyF77/param.ccl
+++ b/CarpetExtra/WaveToyF77/param.ccl
@@ -1,5 +1,5 @@
# Parameter definitions for thorn WaveToyF77
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/param.ccl,v 1.1 2001/03/01 13:40:11 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/WaveToyF77/param.ccl,v 1.2 2001/03/17 16:05:56 eschnett Exp $
private:
@@ -11,5 +11,3 @@ KEYWORD bound "Type of boundary condition to use"
"robin" :: "Robin boundary condition"
"zero" :: "Zero boundary condition"
} "none"
-
-