aboutsummaryrefslogtreecommitdiff
path: root/CarpetExtra/HydroToy
diff options
context:
space:
mode:
authorschnetter <>2001-04-23 06:10:00 +0000
committerschnetter <>2001-04-23 06:10:00 +0000
commit3c8cafa058889929160d7019304b99fab0656df8 (patch)
tree46dd47a05e490ed976623074c18bcdac45787c81 /CarpetExtra/HydroToy
parentbcf0f1685d561b33bb1b0c1e033adb4a145767d3 (diff)
Modified the Carpet driver so that it uses the same new timelevel
Modified the Carpet driver so that it uses the same new timelevel cycling as does PUGH. Modified the CarpetIOASCII and CarpetIOFlexIO output routines so that they always output the current time level. Found and fixed a bug in the time interpolation in CarpetLib. Fixed a bug where the necessary number of ghost zones for space interpolation was calculated incorrectly. Fixed bugs in the example parameter files that used an insufficient number of ghost zones. darcs-hash:20010423061011-07bb3-c69e59f7bc5f283d7632a663c0770578cdb73881.gz
Diffstat (limited to 'CarpetExtra/HydroToy')
-rw-r--r--CarpetExtra/HydroToy/par/convtest.gnuplot8
-rw-r--r--CarpetExtra/HydroToy/par/hydrotoy_periodic.par22
-rw-r--r--CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par22
-rw-r--r--CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par22
-rw-r--r--CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par22
-rw-r--r--CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par22
-rw-r--r--CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par22
-rw-r--r--CarpetExtra/HydroToy/src/HydroToy.F7752
8 files changed, 103 insertions, 89 deletions
diff --git a/CarpetExtra/HydroToy/par/convtest.gnuplot b/CarpetExtra/HydroToy/par/convtest.gnuplot
index 0cb0cc29c..15eb3716b 100644
--- a/CarpetExtra/HydroToy/par/convtest.gnuplot
+++ b/CarpetExtra/HydroToy/par/convtest.gnuplot
@@ -9,17 +9,17 @@ omega=sqrt(kx**2 + ky**2 + kz**2)
# without refinement
# solutions
-p "hydrotoy_periodic/u.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l
+p "hydrotoy_periodic/u.zl" u ($8-1):($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.3*x-9) + omega*(0.15*time))*pi) w l
# errors
-p "hydrotoy_periodic/u.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.3*$8-9) + omega*(0.15*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*$8)-9) + omega*(0.15*time))*pi):0/0) w lp
+p "hydrotoy_periodic/u.zl" u ($8-1):($1==time&&$3==0?$9-cos((kz*(0.3*($8-1)-9) + omega*(0.15*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse/u.zl" u (2*($8-1)):(2*$1==time&&$3==0?$9-cos((kz*(0.3*(2*($8-1))-9) + omega*(0.15*time))*pi):0/0) w lp
# with refinement
# solutions
-p "hydrotoy_periodic_rl2/u.zl" u 8:($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*$8):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l
+p "hydrotoy_periodic_rl2/u.zl" u ($8-2):($1==time&&$3==0?$9:0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9:0/0) w lp, cos((kz*(0.15*x-9) + omega*(0.075*time))*pi) w l
# errors
-p "hydrotoy_periodic_rl2/u.zl" u 8:($1==time&&$3==0?$9-cos((kz*(0.15*$8-9) + omega*(0.075*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*$8):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*$8)-9) + omega*(0.075*time))*pi):0/0) w lp
+p "hydrotoy_periodic_rl2/u.zl" u ($8-2):($1==time&&$3==0?$9-cos((kz*(0.15*($8-2)-9) + omega*(0.075*time))*pi):0/0) w lp, "hydrotoy_periodic_coarse_rl2/u.zl" u (2*($8-2)):(2*$1==time&&$3==0?$9-cos((kz*(0.15*(2*($8-2))-9) + omega*(0.075*time))*pi):0/0) w lp
diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic.par
index fb5b9010b..ac96d3e85 100644
--- a/CarpetExtra/HydroToy/par/hydrotoy_periodic.par
+++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy"
@@ -19,17 +19,19 @@ Cactus::cctk_itlast = 120
Time::dtfac = 0.5
-driver::global_nx = 32
-driver::global_ny = 46
-driver::global_nz = 62
+driver::global_nx = 34
+driver::global_ny = 48
+driver::global_nz = 64
+
+driver::ghost_size = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.5
-grid::ymax = 6.9
-grid::zmax = 9.3
+grid::xmin = -5.1
+grid::ymin = -6.9
+grid::zmin = -9.3
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
IO::outdir = "hydrotoy_periodic"
diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par
index a80662039..a047c4908 100644
--- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par
+++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par,v 1.2 2001/03/30 00:50:45 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse.par,v 1.3 2001/04/23 08:10:18 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy"
@@ -19,17 +19,19 @@ Cactus::cctk_itlast = 60
Time::dtfac = 0.5
-driver::global_nx = 17
-driver::global_ny = 24
-driver::global_nz = 32
+driver::global_nx = 19
+driver::global_ny = 26
+driver::global_nz = 34
+
+driver::ghost_size = 2
grid::type = byrange
-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::xmin = -5.4
+grid::ymin = -7.2
+grid::zmin = -9.6
+grid::xmax = 5.4
+grid::ymax = 7.8
+grid::zmax = 10.2
grid::mode = periodic
IO::outdir = "hydrotoy_periodic_coarse"
diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par
index 1588d1926..7f08bca65 100644
--- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par
+++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl2.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy"
@@ -19,21 +19,23 @@ Cactus::cctk_itlast = 120
Time::dtfac = 0.5
-driver::global_nx = 17
-driver::global_ny = 24
-driver::global_nz = 32
+driver::global_nx = 19
+driver::global_ny = 26
+driver::global_nz = 34
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 2
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-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::xmin = -5.4
+grid::ymin = -7.2
+grid::zmin = -9.6
+grid::xmax = 5.4
+grid::ymax = 7.8
+grid::zmax = 10.2
grid::mode = periodic
IO::outdir = "hydrotoy_periodic_coarse_rl2"
diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par
index 182e537ec..5f9cf7790 100644
--- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par
+++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_coarse_rl3.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy"
@@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240
Time::dtfac = 0.5
-driver::global_nx = 17
-driver::global_ny = 24
-driver::global_nz = 32
+driver::global_nx = 19
+driver::global_ny = 26
+driver::global_nz = 34
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 3
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-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::xmin = -5.4
+grid::ymin = -7.2
+grid::zmin = -9.6
+grid::xmax = 5.4
+grid::ymax = 7.8
+grid::zmax = 10.2
grid::mode = periodic
IO::outdir = "hydrotoy_periodic_coarse_rl3"
diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par
index 7bb9ca230..5b1fe7f03 100644
--- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par
+++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl2.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy"
@@ -19,21 +19,23 @@ Cactus::cctk_itlast = 240
Time::dtfac = 0.5
-driver::global_nx = 32
-driver::global_ny = 46
-driver::global_nz = 62
+driver::global_nx = 34
+driver::global_ny = 48
+driver::global_nz = 64
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 2
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.5
-grid::ymax = 6.9
-grid::zmax = 9.3
+grid::xmin = -5.1
+grid::ymin = -6.9
+grid::zmin = -9.3
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
IO::outdir = "hydrotoy_periodic_rl2"
diff --git a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par
index dd82cc821..d1fd53bbb 100644
--- a/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par
+++ b/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par
@@ -7,7 +7,7 @@
# @enddesc
# @@*/
#
-# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par,v 1.3 2001/03/30 00:50:45 eschnett Exp $
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/par/hydrotoy_periodic_rl3.par,v 1.4 2001/04/23 08:10:18 schnetter Exp $
ActiveThorns = "Boundary IOBasic IOUtil Time Cart3d Carpet CarpetIOASCII CarpetIOFlexIO CarpetLib CarpetSlab IDHydroToy HydroToy"
@@ -19,21 +19,23 @@ Cactus::cctk_itlast = 480
Time::dtfac = 0.5
-driver::global_nx = 32
-driver::global_ny = 46
-driver::global_nz = 62
+driver::global_nx = 34
+driver::global_ny = 48
+driver::global_nz = 64
+
+driver::ghost_size = 2
Carpet::max_refinement_levels = 3
Carpet::prolongation_order_space= 3
Carpet::prolongation_order_time = 2
grid::type = byrange
-grid::xmin = -4.8
-grid::ymin = -6.6
-grid::zmin = -9.0
-grid::xmax = 4.5
-grid::ymax = 6.9
-grid::zmax = 9.3
+grid::xmin = -5.1
+grid::ymin = -6.9
+grid::zmin = -9.3
+grid::xmax = 4.8
+grid::ymax = 7.2
+grid::zmax = 9.6
grid::mode = periodic
IO::outdir = "hydrotoy_periodic_rl3"
diff --git a/CarpetExtra/HydroToy/src/HydroToy.F77 b/CarpetExtra/HydroToy/src/HydroToy.F77
index dcffc75f9..4797162c4 100644
--- a/CarpetExtra/HydroToy/src/HydroToy.F77
+++ b/CarpetExtra/HydroToy/src/HydroToy.F77
@@ -1,5 +1,5 @@
c -*-Fortran-*-
-c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/src/HydroToy.F77,v 1.4 2001/03/26 02:28:36 eschnett Exp $
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/HydroToy/src/HydroToy.F77,v 1.5 2001/04/23 08:10:19 schnetter Exp $
#include "cctk.h"
#include "cctk_Parameters.h"
@@ -22,10 +22,10 @@ c Copy
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- u_i(i,j,k) = u(i,j,k)
- vx_i(i,j,k) = vx(i,j,k)
- vy_i(i,j,k) = vy(i,j,k)
- vz_i(i,j,k) = vz(i,j,k)
+ 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
@@ -59,10 +59,10 @@ c Copy
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- u_i(i,j,k) = u_n(i,j,k)
- vx_i(i,j,k) = vx_n(i,j,k)
- vy_i(i,j,k) = vy_n(i,j,k)
- vz_i(i,j,k) = vz_n(i,j,k)
+ u_i(i,j,k) = u(i,j,k)
+ vx_i(i,j,k) = vx(i,j,k)
+ vy_i(i,j,k) = vy(i,j,k)
+ vz_i(i,j,k) = vz(i,j,k)
end do
end do
@@ -76,10 +76,10 @@ c Average
do j=1,cctk_lsh(2)
do i=1,cctk_lsh(1)
- u_n(i,j,k) = half * (u(i,j,k) + u_n(i,j,k))
- vx_n(i,j,k) = half * (vx(i,j,k) + vx_n(i,j,k))
- vy_n(i,j,k) = half * (vy(i,j,k) + vy_n(i,j,k))
- vz_n(i,j,k) = half * (vz(i,j,k) + vz_n(i,j,k))
+ u(i,j,k) = half * (u_p(i,j,k) + u(i,j,k))
+ vx(i,j,k) = half * (vx_p(i,j,k) + vx(i,j,k))
+ vy(i,j,k) = half * (vy_p(i,j,k) + vy(i,j,k))
+ vz(i,j,k) = half * (vz_p(i,j,k) + vz(i,j,k))
end do
end do
@@ -109,20 +109,20 @@ c Apply boundaries
dt = CCTK_DELTA_TIME
c Evolve
- do k=2,cctk_lsh(3)-1
- do j=2,cctk_lsh(2)-1
- do i=2,cctk_lsh(1)-1
+ 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)
- u_n(i,j,k) = u_i(i,j,k)
+ u(i,j,k) = u_i(i,j,k)
$ + 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)
- vx_n(i,j,k) = vx_i(i,j,k)
+ vx(i,j,k) = vx_i(i,j,k)
$ + dt * (u_i(i+1,j,k) - u_i(i-1,j,k)) / (2*dx)
- vy_n(i,j,k) = vy_i(i,j,k)
+ vy(i,j,k) = vy_i(i,j,k)
$ + dt * (u_i(i,j+1,k) - u_i(i,j-1,k)) / (2*dy)
- vz_n(i,j,k) = vz_i(i,j,k)
+ vz(i,j,k) = vz_i(i,j,k)
$ + dt * (u_i(i,j,k+1) - u_i(i,j,k-1)) / (2*dz)
end do
@@ -144,15 +144,17 @@ c Evolve
CCTK_REAL zero, one
parameter (zero=0, one=1)
- CCTK_REAL finf, npow
- parameter (finf=1, npow=1)
+ CCTK_REAL finf
+ parameter (finf=1)
+ integer npow
+ parameter (npow=1)
integer sw(3)
integer ierr
- sw(1) = 1
- sw(2) = 1
- sw(3) = 1
+ sw(1) = cctk_nghostzones(1)
+ sw(2) = cctk_nghostzones(2)
+ sw(3) = cctk_nghostzones(3)
c Apply boundary condition
if (CCTK_EQUALS(bound, "flat")) then