aboutsummaryrefslogtreecommitdiff
path: root/CarpetExtra/IDSpaceTimeToy
diff options
context:
space:
mode:
authoreschnett <>2001-03-01 11:40:00 +0000
committereschnett <>2001-03-01 11:40:00 +0000
commit310f0ea48d18866b773136aed11200b6eda6378b (patch)
tree445d3e34ce8b89812994b6614f7bc9f4acbc7fe2 /CarpetExtra/IDSpaceTimeToy
Initial revision
darcs-hash:20010301114010-f6438-12fb8a9ffcc80e86c0a97e37b5b0dae0dbc59b79.gz
Diffstat (limited to 'CarpetExtra/IDSpaceTimeToy')
-rw-r--r--CarpetExtra/IDSpaceTimeToy/README7
-rw-r--r--CarpetExtra/IDSpaceTimeToy/interface.ccl5
-rw-r--r--CarpetExtra/IDSpaceTimeToy/param.ccl50
-rw-r--r--CarpetExtra/IDSpaceTimeToy/schedule.ccl14
-rw-r--r--CarpetExtra/IDSpaceTimeToy/src/InitialData.F77177
-rw-r--r--CarpetExtra/IDSpaceTimeToy/src/Startup.F7715
-rw-r--r--CarpetExtra/IDSpaceTimeToy/src/make.code.defn9
7 files changed, 277 insertions, 0 deletions
diff --git a/CarpetExtra/IDSpaceTimeToy/README b/CarpetExtra/IDSpaceTimeToy/README
new file mode 100644
index 000000000..28838ffce
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/README
@@ -0,0 +1,7 @@
+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 $
+--------------------------------------------------------------------------
+
+Purpose of the thorn:
+
diff --git a/CarpetExtra/IDSpaceTimeToy/interface.ccl b/CarpetExtra/IDSpaceTimeToy/interface.ccl
new file mode 100644
index 000000000..6e67bea74
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/interface.ccl
@@ -0,0 +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 $
+
+implements: idspacetimetoy
+inherits: spacetimetoy hydrotoy grid
diff --git a/CarpetExtra/IDSpaceTimeToy/param.ccl b/CarpetExtra/IDSpaceTimeToy/param.ccl
new file mode 100644
index 000000000..ac7cea505
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/param.ccl
@@ -0,0 +1,50 @@
+# 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 $
+
+shares: hydrotoy
+
+USES BOOLEAN hydrotoy_active
+
+restricted:
+
+KEYWORD initial_data "Type of initial data"
+{
+ "plane" :: "Plane wave"
+ "gaussian" :: "Gaussian wave"
+ "box" :: "Box wave"
+ "none" :: "No initial data, zero phi"
+} "gaussian"
+
+private:
+
+## Parameter for initial wavepulses
+
+REAL radius "The radius of the gaussian wave"
+{
+ 0:* :: "Positive"
+} 0.0
+
+REAL sigma "The sigma for the gaussian wave"
+{
+ 0:* :: "Positive"
+} 0.1
+
+REAL kx "The wave number in the x-direction"
+{
+ *:* :: "No restriction"
+} 4.0
+
+REAL ky "The wave number in the y-direction"
+{
+ *:* :: "No restriction"
+} 0.0
+
+REAL kz "The wave number in the z-direction"
+{
+ *:* :: "No restriction"
+} 0.0
+
+REAL amplitude "The amplitude of the waves"
+{
+ *:* :: "No restriction"
+} 1.0
diff --git a/CarpetExtra/IDSpaceTimeToy/schedule.ccl b/CarpetExtra/IDSpaceTimeToy/schedule.ccl
new file mode 100644
index 000000000..8a6c9e306
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/schedule.ccl
@@ -0,0 +1,14 @@
+# 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 $
+
+schedule IDSpaceTimeToy_Startup at STARTUP
+{
+ LANG: Fortran
+} "Register banner"
+
+schedule IDSpaceTimeToy_InitialData as SpaceTimeToy_InitialData at INITIAL \
+ after IDHydroToy_InitialData
+{
+ LANG: Fortran
+ STORAGE: spacetimetoy::spacetimeevolve[3]
+} "Initial data for 3D wave equation"
diff --git a/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77 b/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77
new file mode 100644
index 000000000..118f0d075
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/src/InitialData.F77
@@ -0,0 +1,177 @@
+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 $
+
+#include "cctk.h"
+#include "cctk_Arguments.h"
+#include "cctk_Functions.h"
+#include "cctk_Parameters.h"
+
+ subroutine IDSpaceTimeToy_InitialData (CCTK_ARGUMENTS)
+
+ implicit none
+
+ DECLARE_CCTK_ARGUMENTS
+ DECLARE_CCTK_PARAMETERS
+ DECLARE_CCTK_FUNCTIONS
+
+ 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)
+ 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)
+ $ * pi * omega
+
+ end do
+ end do
+ end do
+
+ else if (CCTK_EQUALS(initial_data,"gaussian")) then
+
+ do k=1,cctk_lsh(3)
+ 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
+
+ end do
+ end do
+ end do
+
+ else if (CCTK_EQUALS(initial_data, "box")) then
+
+c Use kx,ky,kz as number of modes in each direction.
+
+ 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
+ $ * sin(kx * (x - 0.5d0) * pi)
+ $ * sin(ky * (y - 0.5d0) * pi)
+ $ * sin(kz * (z - 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(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
+
+ else
+
+ do k=1,cctk_lsh(3)
+ do j=1,cctk_lsh(2)
+ do i=1,cctk_lsh(1)
+
+ 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/IDSpaceTimeToy/src/Startup.F77 b/CarpetExtra/IDSpaceTimeToy/src/Startup.F77
new file mode 100644
index 000000000..0baf8e999
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/src/Startup.F77
@@ -0,0 +1,15 @@
+c -*-Fortran-*-
+c $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/src/Startup.F77,v 1.1 2001/03/17 16:05:56 eschnett Exp $
+
+#include "cctk.h"
+
+ subroutine IDSpaceTimeToy_Startup
+
+ implicit none
+
+ integer ierr
+
+ call CCTK_RegisterBanner
+ $ (ierr, "IDSpaceTimeToy: Initial data for two Scalar Fields")
+
+ end
diff --git a/CarpetExtra/IDSpaceTimeToy/src/make.code.defn b/CarpetExtra/IDSpaceTimeToy/src/make.code.defn
new file mode 100644
index 000000000..ca77c58cd
--- /dev/null
+++ b/CarpetExtra/IDSpaceTimeToy/src/make.code.defn
@@ -0,0 +1,9 @@
+# Main make.code.defn file for thorn IDSpaceTimeToy
+# $Header: /home/eschnett/C/carpet/Carpet/CarpetExtra/IDSpaceTimeToy/src/make.code.defn,v 1.1 2001/03/17 16:05:56 eschnett Exp $
+
+# Source files in this directory
+SRCS = InitialData.F77 Startup.F77
+
+# Subdirectories containing source files
+SUBDIRS =
+