aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortbode <tbode@4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843>2010-05-07 00:59:10 +0000
committertbode <tbode@4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843>2010-05-07 00:59:10 +0000
commitb3aafc21d0044b4d68ee7a6c088c472799ed9503 (patch)
tree3da4d04b0e3acc44f6b8e5feaf34c62095c05eea
parentf33a18fee7267ff212baec75795ecb13670643e8 (diff)
WeylScal4:
Remove variable modifications in Kranc script. Fix tensor parity tags. Add old-style BC compatibility. Add intelligence to runmath.sh in finding Kranc. Change bash script permissions. Add testsuites. Expand README description. git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/WeylScal4/trunk@52 4f5cb9a8-4dd8-4c2d-9bbd-173fa4467843
-rw-r--r--README18
-rw-r--r--interface.ccl4
-rw-r--r--m/Makefile3
-rw-r--r--m/WeylScal4.m82
-rwxr-xr-x[-rw-r--r--]m/copy-if-changed.sh11
-rwxr-xr-x[-rw-r--r--]m/runmath.sh42
-rw-r--r--param.ccl140
-rw-r--r--schedule.ccl55
-rw-r--r--src/Boundaries.c208
-rw-r--r--src/RegisterSymmetries.c6
-rw-r--r--src/psis_calc_2nd.c93
-rw-r--r--src/psis_calc_4th.c93
-rw-r--r--test/test.ccl1
-rw-r--r--test/teukolsky.par102
-rw-r--r--test/teukolsky/Psi4i.d.asc256
-rw-r--r--test/teukolsky/Psi4i.x.asc128
-rw-r--r--test/teukolsky/Psi4i.y.asc128
-rw-r--r--test/teukolsky/Psi4i.z.asc90
-rw-r--r--test/teukolsky/Psi4r.d.asc256
-rw-r--r--test/teukolsky/Psi4r.x.asc128
-rw-r--r--test/teukolsky/Psi4r.y.asc128
-rw-r--r--test/teukolsky/Psi4r.z.asc90
-rw-r--r--test/teukolskyID.par87
-rw-r--r--test/teukolskyID/Psi4i.d.asc67
-rw-r--r--test/teukolskyID/Psi4i.x.asc39
-rw-r--r--test/teukolskyID/Psi4i.y.asc39
-rw-r--r--test/teukolskyID/Psi4i.z.asc28
-rw-r--r--test/teukolskyID/Psi4r.d.asc67
-rw-r--r--test/teukolskyID/Psi4r.x.asc39
-rw-r--r--test/teukolskyID/Psi4r.y.asc39
-rw-r--r--test/teukolskyID/Psi4r.z.asc28
31 files changed, 2354 insertions, 141 deletions
diff --git a/README b/README
index 787db7a..24381d9 100644
--- a/README
+++ b/README
@@ -1,5 +1,6 @@
Cactus Code Thorn WeylScal4
-Author(s) : Roland Haas
+Author(s) : Tanja Bode
+ Roland Haas
Erik Schnetter
Maintainer(s): Cactus team
Licence : LGPL
@@ -7,12 +8,21 @@ Licence : LGPL
1. Purpose
-Calculate the Weyl Scalars for a given metric.
-
+Calculate the Weyl Scalars for a given metric given the fiducial tetrad of
+Baker, Campanelli, and Lousto. PRD 65,044001 (2002) without the final null
+rotations.
2. Implementation
The code is generated automatically with Mathematica. The Mathematica
scripts are in the subdirectory "m", and the Makefile in there
-re-generates the code. This requires Mathematica to be installed.
+re-generates the code. This requires Mathematica and Kranc to be installed.
+
+The scripts look for a Kranc installation in the "m" directory, in the Cactus
+root directory and in $HOME as well as in the location where they find the
+kranc shell-script if it is in the $PATH. If your Kranc (or kranc) directory is
+in neither of these places, then you can set the environment variable KRANCPATH
+to the location of your Kranc installation.
+
+This thorn was generated using Kranc from http://github.com/ianhinder/Kranc
diff --git a/interface.ccl b/interface.ccl
index 5309f2e..1ee4544 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -24,13 +24,13 @@ CCTK_INT FUNCTION Boundary_SelectVarForBC(CCTK_POINTER_TO_CONST IN GH, CCTK_INT
USES FUNCTION Boundary_SelectVarForBC
public:
-CCTK_REAL Psi4i_group type=GF timelevels=3 tags='tensortypealias="ManualCartesian" tensorweight=1.0000000000000000000 cartesianreflectionparities="---"'
+CCTK_REAL Psi4i_group type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1 tensorparity=-1'
{
Psi4i
} "Psi4i_group"
public:
-CCTK_REAL Psi4r_group type=GF timelevels=3 tags='tensortypealias="ManualCartesian" tensorweight=1.0000000000000000000 cartesianreflectionparities="+++"'
+CCTK_REAL Psi4r_group type=GF timelevels=3 tags='tensortypealias="Scalar" tensorweight=1 tensorparity=1'
{
Psi4r
} "Psi4r_group"
diff --git a/m/Makefile b/m/Makefile
index a55d24f..e9bf163 100644
--- a/m/Makefile
+++ b/m/Makefile
@@ -8,7 +8,8 @@ all: WeylScal4.out
WeylScal4.out: WeylScal4.m
rm -rf WeylScal4
./runmath.sh $^
- for thorn in WeylScal*; do \
+ patch -p1 -d WeylScal4 <WeylScal4.patch
+ for thorn in WeylScal4; do \
./copy-if-changed.sh $$thorn/configuration.ccl ../../$$thorn/configuration.ccl && \
./copy-if-changed.sh $$thorn/interface.ccl ../../$$thorn/interface.ccl && \
./copy-if-changed.sh $$thorn/param.ccl ../../$$thorn/param.ccl && \
diff --git a/m/WeylScal4.m b/m/WeylScal4.m
index eed4fae..4c373ec 100644
--- a/m/WeylScal4.m
+++ b/m/WeylScal4.m
@@ -1,5 +1,4 @@
-$Path = Join[$Path, {"~/Calpha/kranc/Tools/CodeGen",
- "~/Calpha/kranc/Tools/MathematicaMisc"}];
+$Path = Join[$Path, Map[ToString, ReadList[StringToStream[Environment["MATHPATH"]], Word, WordSeparators->{":"}]]];
$RecursionLimit = 1000;
@@ -48,16 +47,19 @@ derivatives =
Map[DefineTensor,
{
R, gamma,g, gInv, k, ltet, n, rm, im, rmbar, imbar, tn, va, vb, vc,
+ wa, wb, wc, ea, eb, ec,
Ro, Rojo, R4p, Psi0r, Psi0i, Psi1r, Psi1i, Psi2r, Psi2i, Psi3r,
Psi3i, Psi4r,Psi4i
}];
-SetTensorAttribute[Psi0r, TensorManualCartesianParities, {1,1,1}];
-SetTensorAttribute[Psi2r, TensorManualCartesianParities, {1,1,1}];
-SetTensorAttribute[Psi4r, TensorManualCartesianParities, {1,1,1}];
-SetTensorAttribute[Psi0i, TensorManualCartesianParities, {-1,-1,-1}];
-SetTensorAttribute[Psi2i, TensorManualCartesianParities, {-1,-1,-1}];
-SetTensorAttribute[Psi4i, TensorManualCartesianParities, {-1,-1,-1}];
+(* Psi0,2,4 behave as (pseudo)scalars *)
+SetTensorAttribute[Psi0r, TensorParity, +1];
+SetTensorAttribute[Psi2r, TensorParity, +1];
+SetTensorAttribute[Psi4r, TensorParity, +1];
+SetTensorAttribute[Psi0i, TensorParity, -1];
+SetTensorAttribute[Psi2i, TensorParity, -1];
+SetTensorAttribute[Psi4i, TensorParity, -1];
+(* these are 'special' and require a patch to the symmetry thorns *)
SetTensorAttribute[Psi1r, TensorManualCartesianParities, {1,1,-1}];
SetTensorAttribute[Psi3r, TensorManualCartesianParities, {-1,-1,1}];
SetTensorAttribute[Psi1i, TensorManualCartesianParities, {-1,-1,1}];
@@ -109,6 +111,7 @@ shorthands =
gamma[ua,lb,lc], R[la,lb,lc,ld], invdetg, detg, third, detgmthirdroot,
gInv[ua,ub], Ro[la,lb,lc], Rojo[la,lb], R4p[li,lj,lk,ll],
omega11, omega22, omega33, omega12, omega13, omega23, va[ua], vb[ua], vc[ua],
+ wa[ua], wb[ua], wc[ua], ea[ua], eb[ua], ec[ua],
tn[ua], nn, ltet[ua],n[ua],rm[ua],im[ua],rmbar[ua],imbar[ua], isqrt2, xmoved,
ymoved, zmoved
};
@@ -121,7 +124,7 @@ realParameters = {{Name -> offset, Default -> 10^(-15)},xorig,yorig,zorig};
PsisCalc[fdOrder_, PD_] :=
{
Name -> "psis_calc_" <> fdOrder,
- Schedule -> {"at CCTK_EVOL after MoL_Evolution after evolved_to_adm as calc_np"},
+ Schedule -> {"in WeylScal4_Calculate as calc_np"},
Where -> Interior,
ConditionalOnKeyword -> {"fd_order", fdOrder},
Shorthands -> shorthands,
@@ -151,28 +154,29 @@ PsisCalc[fdOrder_, PD_] :=
(* Orthonormalize using Gram-Schmidt*)
- omega11 -> va[ua] va[ub] g[la,lb],
- va[ua] -> va[ua] / Sqrt[omega11],
+ wa[ua] -> va[ua],
+ omega11 -> wa[ua] wa[ub] g[la,lb],
+ ea[ua] -> wa[ua] / Sqrt[omega11],
- omega12 -> va[ua] vb[ub] g[la,lb],
- vb[ua] -> vb[ua] - omega12 va[ua],
- omega22 -> vb[ua] vb[ub] g[la,lb],
- vb[ua] -> vb[ua]/Sqrt[omega22],
+ omega12 -> ea[ua] vb[ub] g[la,lb],
+ wb[ua] -> vb[ua] - omega12 ea[ua],
+ omega22 -> wb[ua] wb[ub] g[la,lb],
+ eb[ua] -> wb[ua]/Sqrt[omega22],
- omega13 -> va[ua] vc[ub] g[la,lb],
- omega23 -> vb[ua] vc[ub] g[la,lb],
- vc[ua] -> vc[ua] - omega13 va[ua] - omega23 vb[ua],
- omega33 -> vc[ua] vc[ub] g[la,lb],
- vc[ua] -> vc[ua]/Sqrt[omega33],
+ omega13 -> ea[ua] vc[ub] g[la,lb],
+ omega23 -> eb[ua] vc[ub] g[la,lb],
+ wc[ua] -> vc[ua] - omega13 ea[ua] - omega23 eb[ua],
+ omega33 -> wc[ua] wc[ub] g[la,lb],
+ ec[ua] -> wc[ua]/Sqrt[omega33],
(* Create Spatial Portion of Null Tetrad *)
isqrt2 -> 0.7071067811865475244,
- ltet[ua] -> isqrt2 vb[ua],
- n[ua] -> - isqrt2 vb[ua],
- rm[ua] -> isqrt2 vc[ua],
- im[ua] -> isqrt2 va[ua],
- rmbar[ua] -> isqrt2 vc[ua],
- imbar[ua] -> -isqrt2 va[ua],
+ ltet[ua] -> isqrt2 eb[ua],
+ n[ua] -> - isqrt2 eb[ua],
+ rm[ua] -> isqrt2 ec[ua],
+ im[ua] -> isqrt2 ea[ua],
+ rmbar[ua] -> isqrt2 ec[ua],
+ imbar[ua] -> -isqrt2 ea[ua],
(* nn here is the projection of both l^a and n^a with u^a (the time-like unit
vector normal to the hypersurface). We do NOT save the t component of the
@@ -266,6 +270,29 @@ PsisCalc[fdOrder_, PD_] :=
}
};
+(* Dummy calculation routine to fool Kranc into thinking that the Weyl scalars
+ are evolved quantities. This way we get code to register boundary conditions.
+ Unfortunately it also registers with MoL so we have to remove that code by hand.
+*)
+DummyCalc :=
+{
+ Name -> "dummycalc",
+ Schedule -> {"in Nowhere_Nevertoberun"},
+ Equations ->
+ {
+ dot[Psi4r] -> 0,
+ dot[Psi4i] -> 0 (*,
+ dot[Psi3r] -> 0,
+ dot[Psi3i] -> 0,
+ dot[Psi2r] -> 0,
+ dot[Psi2i] -> 0,
+ dot[Psi1r] -> 0,
+ dot[Psi1i] -> 0,
+ dot[Psi0r] -> 0,
+ dot[Psi0i] -> 0 *)
+ }
+}
+
(****************************************************************************
Construct the thorn
****************************************************************************)
@@ -285,7 +312,8 @@ keywordParameters =
calculations =
{
PsisCalc["2nd", PDstandard2nd],
- PsisCalc["4th", PDstandard4th]
+ PsisCalc["4th", PDstandard4th],
+ DummyCalc
};
CreateKrancThornTT[groups, ".", "WeylScal4",
diff --git a/m/copy-if-changed.sh b/m/copy-if-changed.sh
index a8403d0..d46490f 100644..100755
--- a/m/copy-if-changed.sh
+++ b/m/copy-if-changed.sh
@@ -19,7 +19,7 @@ if test -f $src; then
# Both $src and $dst must be files.
- test -f $dst || exit 3
+ test -f $dst || ! test -e $dst || exit 3
# Copy file if it differs
srcfile=$src
@@ -49,7 +49,10 @@ if test -d $src; then
test -e $dst || mkdir -p $dst
test -d $dst || exit 3
-
+
+ # find inode number to identify the src directory later on
+ srcinode=$(ls -id $src | awk '{print $1}')
+
# Create all directories
for dir in $(cd $src && find . -type d); do
dstdir=$dst/$dir
@@ -62,7 +65,7 @@ if test -d $src; then
done
# Delete directories which do not exist
- for dir in $(cd $dst && find . -name 'CVS' -prune -name '.svn' -prune -name '.git' -prune -name '.hg' -prune -name '_darcs' -prune -type d -print); do
+ for dir in $(cd $dst && find . \( -name 'CVS' -o -name '.svn' -o -name '.git' -o -name '.hg' -o -name '_darcs' -o -inum $srcinode \) -prune -o -type d -print); do
srcdir=$src/$dir
dstdir=$dst/$dir
if test -d $srcdir; then
@@ -86,7 +89,7 @@ if test -d $src; then
done
# Delete files which do not exist
- for file in $(cd $dst && find . -name 'CVS' -prune -name '.svn' -prune -name '.git' -prune -name '.hg' -prune -name '_darcs' -prune -type f -print); do
+ for file in $(cd $dst && find . \( -name 'CVS' -o -name '.svn' -o -name '.git' -o -name '.hg' -o -name '_darcs' -o -inum $srcinode \) -prune -o -type f -print); do
srcfile=$src/$file
dstfile=$dst/$file
if test -e $srcfile; then
diff --git a/m/runmath.sh b/m/runmath.sh
index 306b2e1..b9a7bbf 100644..100755
--- a/m/runmath.sh
+++ b/m/runmath.sh
@@ -2,6 +2,8 @@
# Abort on errors
set -e
+# null-expand non-matching globs
+set -u
MATHEMATICA="math"
@@ -13,6 +15,46 @@ if test -z "$script"; then
exit 2
fi
+KRANCPATH="${KRANCPATH:+$KRANCPATH}"
+if [ -z "$KRANCPATH" ] ; then
+ KRANCPATHS=(. ../../../../arrangements/.. ../../../arrangements/.. $HOME)
+ # look for Kranc in a number of likely locations
+ # choice 2 and 3 are $CCTK_HOME if the thorn resides in arrangements or
+ # git-repos
+ for i in ${KRANCPATHS[@]} ; do
+ if [ -d $i/kranc/Tools ] ; then
+ KRANCPATH=$i/kranc
+ break
+ elif [ -d $i/Kranc/Tools ] ; then
+ KRANCPATH=$i/Kranc
+ break
+ fi
+ done
+fi
+if [ -z "$KRANCPATH" ] ; then # try some more clever things...
+ KRANCBIN="$(which kranc || true)"
+ if [ -h "$KRANCBIN" ] ; then
+ KRANCBIN=$(readlink "$KRANCBIN")
+ fi
+ if [ -d "$(dirname "$KRANCBIN")/../Tools" ] ; then
+ KRANCPATH="$(dirname "$KRANCBIN")/.."
+ fi
+fi
+if [ -n "$KRANCPATH" ] ; then
+ LOCALKRANCPATH="$KRANCPATH/Tools/CodeGen:$KRANCPATH/Tools/MathematicaMisc"
+
+ if [ -z "${MATHPATH:+}" ]
+ then
+ MATHPATH=$LOCALKRANCPATH
+ else
+ MATHPATH=$LOCALKRANCPATH:$MATHPATH
+ fi
+
+ export MATHPATH
+else
+ echo -e "Could not find Kranc. Expect trouble unless you have made sure Mathematica\nwill find Kranc. You might also consider setting \$KRANCPATH."
+fi
+
error=$(basename $script .m).err
output=$(basename $script .m).out
diff --git a/param.ccl b/param.ccl
index daa36fa..8a95473 100644
--- a/param.ccl
+++ b/param.ccl
@@ -52,31 +52,25 @@ KEYWORD fd_order "fd_order"
} "2nd"
restricted:
-CCTK_INT WeylScal4_MaxNumEvolvedVars "Number of evolved variables used by this thorn" ACCUMULATOR-BASE=MethodofLines::MoL_Num_Evolved_Vars
-{
- 0:0 :: "Number of evolved variables used by this thorn"
-} 0
-
-restricted:
CCTK_INT timelevels "Number of active timelevels"
{
0:3 :: ""
} 3
restricted:
-CCTK_INT rhs_timelevels "Number of active RHS timelevels"
+CCTK_INT psis_calc_2nd_calc_every "psis_calc_2nd_calc_every"
{
- 0:3 :: ""
+ *:* :: ""
} 1
restricted:
-CCTK_INT psis_calc_2nd_calc_every "psis_calc_2nd_calc_every"
+CCTK_INT psis_calc_4th_calc_every "psis_calc_4th_calc_every"
{
*:* :: ""
} 1
restricted:
-CCTK_INT psis_calc_4th_calc_every "psis_calc_4th_calc_every"
+CCTK_INT dummycalc_calc_every "dummycalc_calc_every"
{
*:* :: ""
} 1
@@ -93,3 +87,129 @@ CCTK_INT psis_calc_4th_calc_offset "psis_calc_4th_calc_offset"
*:* :: ""
} 0
+restricted:
+CCTK_INT dummycalc_calc_offset "dummycalc_calc_offset"
+{
+ *:* :: ""
+} 0
+
+private:
+KEYWORD Psi4i_bound "Boundary condition to implement"
+{
+ "flat" :: "Flat boundary condition"
+ "none" :: "No boundary condition"
+ "static" :: "Boundaries held fixed"
+ "radiative" :: "Radiation boundary condition"
+ "scalar" :: "Dirichlet boundary condition"
+ "newrad" :: "Improved radiative boundary condition"
+ "skip" :: "skip boundary condition code"
+} "skip"
+
+private:
+KEYWORD Psi4r_bound "Boundary condition to implement"
+{
+ "flat" :: "Flat boundary condition"
+ "none" :: "No boundary condition"
+ "static" :: "Boundaries held fixed"
+ "radiative" :: "Radiation boundary condition"
+ "scalar" :: "Dirichlet boundary condition"
+ "newrad" :: "Improved radiative boundary condition"
+ "skip" :: "skip boundary condition code"
+} "skip"
+
+private:
+KEYWORD Psi4i_group_bound "Boundary condition to implement"
+{
+ "flat" :: "Flat boundary condition"
+ "none" :: "No boundary condition"
+ "static" :: "Boundaries held fixed"
+ "radiative" :: "Radiation boundary condition"
+ "scalar" :: "Dirichlet boundary condition"
+ "newrad" :: "Improved radiative boundary condition"
+ "skip" :: "skip boundary condition code"
+} "skip"
+
+private:
+KEYWORD Psi4r_group_bound "Boundary condition to implement"
+{
+ "flat" :: "Flat boundary condition"
+ "none" :: "No boundary condition"
+ "static" :: "Boundaries held fixed"
+ "radiative" :: "Radiation boundary condition"
+ "scalar" :: "Dirichlet boundary condition"
+ "newrad" :: "Improved radiative boundary condition"
+ "skip" :: "skip boundary condition code"
+} "skip"
+
+private:
+CCTK_REAL Psi4i_bound_speed "characteristic speed at boundary"
+{
+ "0:*" :: "outgoing characteristic speed > 0"
+} 1.
+
+private:
+CCTK_REAL Psi4r_bound_speed "characteristic speed at boundary"
+{
+ "0:*" :: "outgoing characteristic speed > 0"
+} 1.
+
+private:
+CCTK_REAL Psi4i_group_bound_speed "characteristic speed at boundary"
+{
+ "0:*" :: "outgoing characteristic speed > 0"
+} 1.
+
+private:
+CCTK_REAL Psi4r_group_bound_speed "characteristic speed at boundary"
+{
+ "0:*" :: "outgoing characteristic speed > 0"
+} 1.
+
+private:
+CCTK_REAL Psi4i_bound_limit "limit value for r -> infinity"
+{
+ "*:*" :: "value of limit value is unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4r_bound_limit "limit value for r -> infinity"
+{
+ "*:*" :: "value of limit value is unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4i_group_bound_limit "limit value for r -> infinity"
+{
+ "*:*" :: "value of limit value is unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4r_group_bound_limit "limit value for r -> infinity"
+{
+ "*:*" :: "value of limit value is unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4i_bound_scalar "Dirichlet boundary value"
+{
+ "*:*" :: "unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4r_bound_scalar "Dirichlet boundary value"
+{
+ "*:*" :: "unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4i_group_bound_scalar "Dirichlet boundary value"
+{
+ "*:*" :: "unrestricted"
+} 0.
+
+private:
+CCTK_REAL Psi4r_group_bound_scalar "Dirichlet boundary value"
+{
+ "*:*" :: "unrestricted"
+} 0.
+
diff --git a/schedule.ccl b/schedule.ccl
index e800251..5d79431 100644
--- a/schedule.ccl
+++ b/schedule.ccl
@@ -1,9 +1,31 @@
# File produced by Kranc
-STORAGE: Psi4i_group[3]
+if (timelevels == 1)
+{
+ STORAGE: Psi4i_group[1]
+}
+if (timelevels == 2)
+{
+ STORAGE: Psi4i_group[2]
+}
+if (timelevels == 3)
+{
+ STORAGE: Psi4i_group[3]
+}
-STORAGE: Psi4r_group[3]
+if (timelevels == 1)
+{
+ STORAGE: Psi4r_group[1]
+}
+if (timelevels == 2)
+{
+ STORAGE: Psi4r_group[2]
+}
+if (timelevels == 3)
+{
+ STORAGE: Psi4r_group[3]
+}
schedule WeylScal4_Startup at STARTUP
{
@@ -24,9 +46,13 @@ schedule WeylScal4_RegisterSymmetries in SymmetryRegister
} "register symmetries"
+schedule group WeylScal4_Calculate in MoL_PseudoEvolution
+{
+} "Calculate the Newman-Penrose quantities"
+
if (CCTK_EQUALS(fd_order, "2nd"))
{
- schedule psis_calc_2nd at CCTK_EVOL after MoL_Evolution after evolved_to_adm as calc_np
+ schedule psis_calc_2nd in WeylScal4_Calculate as calc_np
{
LANG: C
SYNC: Psi4i_group
@@ -37,7 +63,7 @@ if (CCTK_EQUALS(fd_order, "2nd"))
if (CCTK_EQUALS(fd_order, "4th"))
{
- schedule psis_calc_4th at CCTK_EVOL after MoL_Evolution after evolved_to_adm as calc_np
+ schedule psis_calc_4th in WeylScal4_Calculate as calc_np
{
LANG: C
SYNC: Psi4i_group
@@ -45,10 +71,12 @@ if (CCTK_EQUALS(fd_order, "4th"))
} "psis_calc_4th"
}
-schedule WeylScal4_SelectBoundConds in MoL_PostStep
+schedule WeylScal4_SelectBoundConds in WeylScal4_Boundaries
{
LANG: C
OPTIONS: level
+ SYNC: Psi4i_group
+ SYNC: Psi4r_group
} "select boundary conditions"
schedule WeylScal4_CheckBoundaries at BASEGRID
@@ -57,7 +85,22 @@ schedule WeylScal4_CheckBoundaries at BASEGRID
OPTIONS: meta
} "check boundaries treatment"
-schedule group ApplyBCs as WeylScal4_ApplyBCs in MoL_PostStep after WeylScal4_SelectBoundConds
+schedule group ApplyBCs as WeylScal4_ApplyBCs in WeylScal4_Boundaries after WeylScal4_SelectBoundConds
+{
+ # no language specified
+} "Apply boundary conditions controlled by thorn Boundary"
+
+schedule group WeylScal4_Boundaries in WeylScal4_Calculate after calc_np
+{
+ # no language specified
+} "Apply boundary conditions controlled by thorn Boundary"
+
+schedule group WeylScal4_Boundaries in CCTK_POSTRESTRICTINITIAL
+{
+ # no language specified
+} "Apply boundary conditions controlled by thorn Boundary"
+
+schedule group WeylScal4_Boundaries in CCTK_POSTRESTRICT
{
# no language specified
} "Apply boundary conditions controlled by thorn Boundary"
diff --git a/src/Boundaries.c b/src/Boundaries.c
index ef1a009..b6e6cd0 100644
--- a/src/Boundaries.c
+++ b/src/Boundaries.c
@@ -31,11 +31,219 @@ void WeylScal4_SelectBoundConds(CCTK_ARGUMENTS)
DECLARE_CCTK_PARAMETERS;
CCTK_INT ierr = 0;
+
+ if (CCTK_EQUALS(Psi4i_group_bound, "none" ) ||
+ CCTK_EQUALS(Psi4i_group_bound, "static") ||
+ CCTK_EQUALS(Psi4i_group_bound, "flat" ) ||
+ CCTK_EQUALS(Psi4i_group_bound, "zero" ) )
+ {
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
+ "WeylScal4::Psi4i_group", Psi4i_group_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Psi4i_group_bound BC for WeylScal4::Psi4i_group!");
+ }
+
+ if (CCTK_EQUALS(Psi4r_group_bound, "none" ) ||
+ CCTK_EQUALS(Psi4r_group_bound, "static") ||
+ CCTK_EQUALS(Psi4r_group_bound, "flat" ) ||
+ CCTK_EQUALS(Psi4r_group_bound, "zero" ) )
+ {
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
+ "WeylScal4::Psi4r_group", Psi4r_group_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Psi4r_group_bound BC for WeylScal4::Psi4r_group!");
+ }
+
+ if (CCTK_EQUALS(Psi4i_bound, "none" ) ||
+ CCTK_EQUALS(Psi4i_bound, "static") ||
+ CCTK_EQUALS(Psi4i_bound, "flat" ) ||
+ CCTK_EQUALS(Psi4i_bound, "zero" ) )
+ {
+ ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
+ "WeylScal4::Psi4i", Psi4i_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Psi4i_bound BC for WeylScal4::Psi4i!");
+ }
+
+ if (CCTK_EQUALS(Psi4r_bound, "none" ) ||
+ CCTK_EQUALS(Psi4r_bound, "static") ||
+ CCTK_EQUALS(Psi4r_bound, "flat" ) ||
+ CCTK_EQUALS(Psi4r_bound, "zero" ) )
+ {
+ ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, -1,
+ "WeylScal4::Psi4r", Psi4r_bound);
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Psi4r_bound BC for WeylScal4::Psi4r!");
+ }
+
+ if (CCTK_EQUALS(Psi4i_group_bound, "radiative"))
+ {
+ /* select radiation boundary condition */
+ static CCTK_INT handle_Psi4i_group_bound = -1;
+ if (handle_Psi4i_group_bound < 0) handle_Psi4i_group_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4i_group_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4i_group_bound , Psi4i_group_bound_limit, "LIMIT") < 0)
+ CCTK_WARN(0, "could not set LIMIT value in table!");
+ if (Util_TableSetReal(handle_Psi4i_group_bound ,Psi4i_group_bound_speed, "SPEED") < 0)
+ CCTK_WARN(0, "could not set SPEED value in table!");
+
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4i_group_bound,
+ "WeylScal4::Psi4i_group", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for WeylScal4::Psi4i_group!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4r_group_bound, "radiative"))
+ {
+ /* select radiation boundary condition */
+ static CCTK_INT handle_Psi4r_group_bound = -1;
+ if (handle_Psi4r_group_bound < 0) handle_Psi4r_group_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4r_group_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4r_group_bound , Psi4r_group_bound_limit, "LIMIT") < 0)
+ CCTK_WARN(0, "could not set LIMIT value in table!");
+ if (Util_TableSetReal(handle_Psi4r_group_bound ,Psi4r_group_bound_speed, "SPEED") < 0)
+ CCTK_WARN(0, "could not set SPEED value in table!");
+
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4r_group_bound,
+ "WeylScal4::Psi4r_group", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for WeylScal4::Psi4r_group!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4i_bound, "radiative"))
+ {
+ /* select radiation boundary condition */
+ static CCTK_INT handle_Psi4i_bound = -1;
+ if (handle_Psi4i_bound < 0) handle_Psi4i_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4i_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4i_bound , Psi4i_bound_limit, "LIMIT") < 0)
+ CCTK_WARN(0, "could not set LIMIT value in table!");
+ if (Util_TableSetReal(handle_Psi4i_bound ,Psi4i_bound_speed, "SPEED") < 0)
+ CCTK_WARN(0, "could not set SPEED value in table!");
+
+ ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4i_bound,
+ "WeylScal4::Psi4i", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for WeylScal4::Psi4i!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4r_bound, "radiative"))
+ {
+ /* select radiation boundary condition */
+ static CCTK_INT handle_Psi4r_bound = -1;
+ if (handle_Psi4r_bound < 0) handle_Psi4r_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4r_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4r_bound , Psi4r_bound_limit, "LIMIT") < 0)
+ CCTK_WARN(0, "could not set LIMIT value in table!");
+ if (Util_TableSetReal(handle_Psi4r_bound ,Psi4r_bound_speed, "SPEED") < 0)
+ CCTK_WARN(0, "could not set SPEED value in table!");
+
+ ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4r_bound,
+ "WeylScal4::Psi4r", "Radiation");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Radiation BC for WeylScal4::Psi4r!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4i_group_bound, "scalar"))
+ {
+ /* select scalar boundary condition */
+ static CCTK_INT handle_Psi4i_group_bound = -1;
+ if (handle_Psi4i_group_bound < 0) handle_Psi4i_group_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4i_group_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4i_group_bound ,Psi4i_group_bound_scalar, "SCALAR") < 0)
+ CCTK_WARN(0, "could not set SCALAR value in table!");
+
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4i_group_bound,
+ "WeylScal4::Psi4i_group", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for WeylScal4::Psi4i_group!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4r_group_bound, "scalar"))
+ {
+ /* select scalar boundary condition */
+ static CCTK_INT handle_Psi4r_group_bound = -1;
+ if (handle_Psi4r_group_bound < 0) handle_Psi4r_group_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4r_group_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4r_group_bound ,Psi4r_group_bound_scalar, "SCALAR") < 0)
+ CCTK_WARN(0, "could not set SCALAR value in table!");
+
+ ierr = Boundary_SelectGroupForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4r_group_bound,
+ "WeylScal4::Psi4r_group", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Failed to register Scalar BC for WeylScal4::Psi4r_group!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4i_bound, "scalar"))
+ {
+ /* select scalar boundary condition */
+ static CCTK_INT handle_Psi4i_bound = -1;
+ if (handle_Psi4i_bound < 0) handle_Psi4i_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4i_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4i_bound ,Psi4i_bound_scalar, "SCALAR") < 0)
+ CCTK_WARN(0, "could not set SCALAR value in table!");
+
+ ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4i_bound,
+ "WeylScal4::Psi4i", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for WeylScal4::Psi4i!");
+
+ }
+
+ if (CCTK_EQUALS(Psi4r_bound, "scalar"))
+ {
+ /* select scalar boundary condition */
+ static CCTK_INT handle_Psi4r_bound = -1;
+ if (handle_Psi4r_bound < 0) handle_Psi4r_bound = Util_TableCreate(UTIL_TABLE_FLAGS_CASE_INSENSITIVE);
+ if (handle_Psi4r_bound < 0) CCTK_WARN(0, "could not create table!");
+ if (Util_TableSetReal(handle_Psi4r_bound ,Psi4r_bound_scalar, "SCALAR") < 0)
+ CCTK_WARN(0, "could not set SCALAR value in table!");
+
+ ierr = Boundary_SelectVarForBC(cctkGH, CCTK_ALL_FACES, 1, handle_Psi4r_bound,
+ "WeylScal4::Psi4r", "scalar");
+
+ if (ierr < 0)
+ CCTK_WARN(0, "Error in registering Scalar BC for WeylScal4::Psi4r!");
+
+ }
return;
}
/* template for entries in parameter file:
+#$bound$#WeylScal4::Psi4i_group_bound = "skip"
+#$bound$#WeylScal4::Psi4i_group_bound_speed = 1.0
+#$bound$#WeylScal4::Psi4i_group_bound_limit = 0.0
+#$bound$#WeylScal4::Psi4i_group_bound_scalar = 0.0
+
+#$bound$#WeylScal4::Psi4r_group_bound = "skip"
+#$bound$#WeylScal4::Psi4r_group_bound_speed = 1.0
+#$bound$#WeylScal4::Psi4r_group_bound_limit = 0.0
+#$bound$#WeylScal4::Psi4r_group_bound_scalar = 0.0
+
+#$bound$#WeylScal4::Psi4i_bound = "skip"
+#$bound$#WeylScal4::Psi4i_bound_speed = 1.0
+#$bound$#WeylScal4::Psi4i_bound_limit = 0.0
+#$bound$#WeylScal4::Psi4i_bound_scalar = 0.0
+
+#$bound$#WeylScal4::Psi4r_bound = "skip"
+#$bound$#WeylScal4::Psi4r_bound_speed = 1.0
+#$bound$#WeylScal4::Psi4r_bound_limit = 0.0
+#$bound$#WeylScal4::Psi4r_bound_scalar = 0.0
+
*/
diff --git a/src/RegisterSymmetries.c b/src/RegisterSymmetries.c
index 20511fd..df4787a 100644
--- a/src/RegisterSymmetries.c
+++ b/src/RegisterSymmetries.c
@@ -16,9 +16,9 @@ void WeylScal4_RegisterSymmetries(CCTK_ARGUMENTS)
/* Register symmetries of grid functions */
- sym[0] = 1;
- sym[1] = 1;
- sym[2] = 1;
+ sym[0] = -1;
+ sym[1] = -1;
+ sym[2] = -1;
SetCartSymVN(cctkGH, sym, "WeylScal4::Psi4i");
sym[0] = 1;
diff --git a/src/psis_calc_2nd.c b/src/psis_calc_2nd.c
index f97fa78..193c552 100644
--- a/src/psis_calc_2nd.c
+++ b/src/psis_calc_2nd.c
@@ -353,85 +353,94 @@ void psis_calc_2nd_Body(cGH const * restrict const cctkGH, int const dir, int co
CCTK_REAL vc3 = ((-(gInv33*va2) + gInv32*va3)*vb1 + (gInv33*va1 -
gInv31*va3)*vb2 + (-(gInv32*va1) + gInv31*va2)*vb3)*pow(detg,0.5);
- CCTK_REAL omega11 = 2*(gyzL*va2*va3 + va1*(gxyL*va2 + gxzL*va3)) +
- gxxL*SQR(va1) + gyyL*SQR(va2) + gzzL*SQR(va3);
+ CCTK_REAL wa1 = va1;
- va1 = va1*pow(omega11,-khalf);
+ CCTK_REAL wa2 = va2;
- va2 = va2*pow(omega11,-khalf);
+ CCTK_REAL wa3 = va3;
- va3 = va3*pow(omega11,-khalf);
+ CCTK_REAL omega11 = 2*(gyzL*wa2*wa3 + wa1*(gxyL*wa2 + gxzL*wa3)) +
+ gxxL*SQR(wa1) + gyyL*SQR(wa2) + gzzL*SQR(wa3);
- CCTK_REAL omega12 = (gxxL*va1 + gxyL*va2 + gxzL*va3)*vb1 + (gxyL*va1 +
- gyyL*va2 + gyzL*va3)*vb2 + (gxzL*va1 + gyzL*va2 + gzzL*va3)*vb3;
+ CCTK_REAL ea1 = wa1*pow(omega11,-khalf);
- vb1 = -(omega12*va1) + vb1;
+ CCTK_REAL ea2 = wa2*pow(omega11,-khalf);
- vb2 = -(omega12*va2) + vb2;
+ CCTK_REAL ea3 = wa3*pow(omega11,-khalf);
- vb3 = -(omega12*va3) + vb3;
+ CCTK_REAL omega12 = ea1*(gxxL*vb1 + gxyL*vb2 + gxzL*vb3) +
+ ea2*(gxyL*vb1 + gyyL*vb2 + gyzL*vb3) + ea3*(gxzL*vb1 + gyzL*vb2 +
+ gzzL*vb3);
- CCTK_REAL omega22 = 2*(gyzL*vb2*vb3 + vb1*(gxyL*vb2 + gxzL*vb3)) +
- gxxL*SQR(vb1) + gyyL*SQR(vb2) + gzzL*SQR(vb3);
+ CCTK_REAL wb1 = -(ea1*omega12) + vb1;
- vb1 = vb1*pow(omega22,-khalf);
+ CCTK_REAL wb2 = -(ea2*omega12) + vb2;
- vb2 = vb2*pow(omega22,-khalf);
+ CCTK_REAL wb3 = -(ea3*omega12) + vb3;
- vb3 = vb3*pow(omega22,-khalf);
+ CCTK_REAL omega22 = 2*(gyzL*wb2*wb3 + wb1*(gxyL*wb2 + gxzL*wb3)) +
+ gxxL*SQR(wb1) + gyyL*SQR(wb2) + gzzL*SQR(wb3);
- CCTK_REAL omega13 = (gxxL*va1 + gxyL*va2 + gxzL*va3)*vc1 + (gxyL*va1 +
- gyyL*va2 + gyzL*va3)*vc2 + (gxzL*va1 + gyzL*va2 + gzzL*va3)*vc3;
+ CCTK_REAL eb1 = wb1*pow(omega22,-khalf);
- CCTK_REAL omega23 = (gxxL*vb1 + gxyL*vb2 + gxzL*vb3)*vc1 + (gxyL*vb1 +
- gyyL*vb2 + gyzL*vb3)*vc2 + (gxzL*vb1 + gyzL*vb2 + gzzL*vb3)*vc3;
+ CCTK_REAL eb2 = wb2*pow(omega22,-khalf);
- vc1 = -(omega13*va1) - omega23*vb1 + vc1;
+ CCTK_REAL eb3 = wb3*pow(omega22,-khalf);
- vc2 = -(omega13*va2) - omega23*vb2 + vc2;
+ CCTK_REAL omega13 = ea1*(gxxL*vc1 + gxyL*vc2 + gxzL*vc3) +
+ ea2*(gxyL*vc1 + gyyL*vc2 + gyzL*vc3) + ea3*(gxzL*vc1 + gyzL*vc2 +
+ gzzL*vc3);
- vc3 = -(omega13*va3) - omega23*vb3 + vc3;
+ CCTK_REAL omega23 = eb1*(gxxL*vc1 + gxyL*vc2 + gxzL*vc3) +
+ eb2*(gxyL*vc1 + gyyL*vc2 + gyzL*vc3) + eb3*(gxzL*vc1 + gyzL*vc2 +
+ gzzL*vc3);
- CCTK_REAL omega33 = 2*(gyzL*vc2*vc3 + vc1*(gxyL*vc2 + gxzL*vc3)) +
- gxxL*SQR(vc1) + gyyL*SQR(vc2) + gzzL*SQR(vc3);
+ CCTK_REAL wc1 = -(ea1*omega13) - eb1*omega23 + vc1;
- vc1 = vc1*pow(omega33,-khalf);
+ CCTK_REAL wc2 = -(ea2*omega13) - eb2*omega23 + vc2;
- vc2 = vc2*pow(omega33,-khalf);
+ CCTK_REAL wc3 = -(ea3*omega13) - eb3*omega23 + vc3;
- vc3 = vc3*pow(omega33,-khalf);
+ CCTK_REAL omega33 = 2*(gyzL*wc2*wc3 + wc1*(gxyL*wc2 + gxzL*wc3)) +
+ gxxL*SQR(wc1) + gyyL*SQR(wc2) + gzzL*SQR(wc3);
+
+ CCTK_REAL ec1 = wc1*pow(omega33,-khalf);
+
+ CCTK_REAL ec2 = wc2*pow(omega33,-khalf);
+
+ CCTK_REAL ec3 = wc3*pow(omega33,-khalf);
CCTK_REAL isqrt2 = 0.707106781186547524;
- CCTK_REAL n1 = -(isqrt2*vb1);
+ CCTK_REAL n1 = -(eb1*isqrt2);
- CCTK_REAL n2 = -(isqrt2*vb2);
+ CCTK_REAL n2 = -(eb2*isqrt2);
- CCTK_REAL n3 = -(isqrt2*vb3);
+ CCTK_REAL n3 = -(eb3*isqrt2);
- CCTK_REAL rm1 = isqrt2*vc1;
+ CCTK_REAL rm1 = ec1*isqrt2;
- CCTK_REAL rm2 = isqrt2*vc2;
+ CCTK_REAL rm2 = ec2*isqrt2;
- CCTK_REAL rm3 = isqrt2*vc3;
+ CCTK_REAL rm3 = ec3*isqrt2;
- CCTK_REAL im1 = isqrt2*va1;
+ CCTK_REAL im1 = ea1*isqrt2;
- CCTK_REAL im2 = isqrt2*va2;
+ CCTK_REAL im2 = ea2*isqrt2;
- CCTK_REAL im3 = isqrt2*va3;
+ CCTK_REAL im3 = ea3*isqrt2;
- CCTK_REAL rmbar1 = isqrt2*vc1;
+ CCTK_REAL rmbar1 = ec1*isqrt2;
- CCTK_REAL rmbar2 = isqrt2*vc2;
+ CCTK_REAL rmbar2 = ec2*isqrt2;
- CCTK_REAL rmbar3 = isqrt2*vc3;
+ CCTK_REAL rmbar3 = ec3*isqrt2;
- CCTK_REAL imbar1 = -(isqrt2*va1);
+ CCTK_REAL imbar1 = -(ea1*isqrt2);
- CCTK_REAL imbar2 = -(isqrt2*va2);
+ CCTK_REAL imbar2 = -(ea2*isqrt2);
- CCTK_REAL imbar3 = -(isqrt2*va3);
+ CCTK_REAL imbar3 = -(ea3*isqrt2);
CCTK_REAL nn = isqrt2;
diff --git a/src/psis_calc_4th.c b/src/psis_calc_4th.c
index 3be80e2..32fd7c2 100644
--- a/src/psis_calc_4th.c
+++ b/src/psis_calc_4th.c
@@ -353,85 +353,94 @@ void psis_calc_4th_Body(cGH const * restrict const cctkGH, int const dir, int co
CCTK_REAL vc3 = ((-(gInv33*va2) + gInv32*va3)*vb1 + (gInv33*va1 -
gInv31*va3)*vb2 + (-(gInv32*va1) + gInv31*va2)*vb3)*pow(detg,0.5);
- CCTK_REAL omega11 = 2*(gyzL*va2*va3 + va1*(gxyL*va2 + gxzL*va3)) +
- gxxL*SQR(va1) + gyyL*SQR(va2) + gzzL*SQR(va3);
+ CCTK_REAL wa1 = va1;
- va1 = va1*pow(omega11,-khalf);
+ CCTK_REAL wa2 = va2;
- va2 = va2*pow(omega11,-khalf);
+ CCTK_REAL wa3 = va3;
- va3 = va3*pow(omega11,-khalf);
+ CCTK_REAL omega11 = 2*(gyzL*wa2*wa3 + wa1*(gxyL*wa2 + gxzL*wa3)) +
+ gxxL*SQR(wa1) + gyyL*SQR(wa2) + gzzL*SQR(wa3);
- CCTK_REAL omega12 = (gxxL*va1 + gxyL*va2 + gxzL*va3)*vb1 + (gxyL*va1 +
- gyyL*va2 + gyzL*va3)*vb2 + (gxzL*va1 + gyzL*va2 + gzzL*va3)*vb3;
+ CCTK_REAL ea1 = wa1*pow(omega11,-khalf);
- vb1 = -(omega12*va1) + vb1;
+ CCTK_REAL ea2 = wa2*pow(omega11,-khalf);
- vb2 = -(omega12*va2) + vb2;
+ CCTK_REAL ea3 = wa3*pow(omega11,-khalf);
- vb3 = -(omega12*va3) + vb3;
+ CCTK_REAL omega12 = ea1*(gxxL*vb1 + gxyL*vb2 + gxzL*vb3) +
+ ea2*(gxyL*vb1 + gyyL*vb2 + gyzL*vb3) + ea3*(gxzL*vb1 + gyzL*vb2 +
+ gzzL*vb3);
- CCTK_REAL omega22 = 2*(gyzL*vb2*vb3 + vb1*(gxyL*vb2 + gxzL*vb3)) +
- gxxL*SQR(vb1) + gyyL*SQR(vb2) + gzzL*SQR(vb3);
+ CCTK_REAL wb1 = -(ea1*omega12) + vb1;
- vb1 = vb1*pow(omega22,-khalf);
+ CCTK_REAL wb2 = -(ea2*omega12) + vb2;
- vb2 = vb2*pow(omega22,-khalf);
+ CCTK_REAL wb3 = -(ea3*omega12) + vb3;
- vb3 = vb3*pow(omega22,-khalf);
+ CCTK_REAL omega22 = 2*(gyzL*wb2*wb3 + wb1*(gxyL*wb2 + gxzL*wb3)) +
+ gxxL*SQR(wb1) + gyyL*SQR(wb2) + gzzL*SQR(wb3);
- CCTK_REAL omega13 = (gxxL*va1 + gxyL*va2 + gxzL*va3)*vc1 + (gxyL*va1 +
- gyyL*va2 + gyzL*va3)*vc2 + (gxzL*va1 + gyzL*va2 + gzzL*va3)*vc3;
+ CCTK_REAL eb1 = wb1*pow(omega22,-khalf);
- CCTK_REAL omega23 = (gxxL*vb1 + gxyL*vb2 + gxzL*vb3)*vc1 + (gxyL*vb1 +
- gyyL*vb2 + gyzL*vb3)*vc2 + (gxzL*vb1 + gyzL*vb2 + gzzL*vb3)*vc3;
+ CCTK_REAL eb2 = wb2*pow(omega22,-khalf);
- vc1 = -(omega13*va1) - omega23*vb1 + vc1;
+ CCTK_REAL eb3 = wb3*pow(omega22,-khalf);
- vc2 = -(omega13*va2) - omega23*vb2 + vc2;
+ CCTK_REAL omega13 = ea1*(gxxL*vc1 + gxyL*vc2 + gxzL*vc3) +
+ ea2*(gxyL*vc1 + gyyL*vc2 + gyzL*vc3) + ea3*(gxzL*vc1 + gyzL*vc2 +
+ gzzL*vc3);
- vc3 = -(omega13*va3) - omega23*vb3 + vc3;
+ CCTK_REAL omega23 = eb1*(gxxL*vc1 + gxyL*vc2 + gxzL*vc3) +
+ eb2*(gxyL*vc1 + gyyL*vc2 + gyzL*vc3) + eb3*(gxzL*vc1 + gyzL*vc2 +
+ gzzL*vc3);
- CCTK_REAL omega33 = 2*(gyzL*vc2*vc3 + vc1*(gxyL*vc2 + gxzL*vc3)) +
- gxxL*SQR(vc1) + gyyL*SQR(vc2) + gzzL*SQR(vc3);
+ CCTK_REAL wc1 = -(ea1*omega13) - eb1*omega23 + vc1;
- vc1 = vc1*pow(omega33,-khalf);
+ CCTK_REAL wc2 = -(ea2*omega13) - eb2*omega23 + vc2;
- vc2 = vc2*pow(omega33,-khalf);
+ CCTK_REAL wc3 = -(ea3*omega13) - eb3*omega23 + vc3;
- vc3 = vc3*pow(omega33,-khalf);
+ CCTK_REAL omega33 = 2*(gyzL*wc2*wc3 + wc1*(gxyL*wc2 + gxzL*wc3)) +
+ gxxL*SQR(wc1) + gyyL*SQR(wc2) + gzzL*SQR(wc3);
+
+ CCTK_REAL ec1 = wc1*pow(omega33,-khalf);
+
+ CCTK_REAL ec2 = wc2*pow(omega33,-khalf);
+
+ CCTK_REAL ec3 = wc3*pow(omega33,-khalf);
CCTK_REAL isqrt2 = 0.707106781186547524;
- CCTK_REAL n1 = -(isqrt2*vb1);
+ CCTK_REAL n1 = -(eb1*isqrt2);
- CCTK_REAL n2 = -(isqrt2*vb2);
+ CCTK_REAL n2 = -(eb2*isqrt2);
- CCTK_REAL n3 = -(isqrt2*vb3);
+ CCTK_REAL n3 = -(eb3*isqrt2);
- CCTK_REAL rm1 = isqrt2*vc1;
+ CCTK_REAL rm1 = ec1*isqrt2;
- CCTK_REAL rm2 = isqrt2*vc2;
+ CCTK_REAL rm2 = ec2*isqrt2;
- CCTK_REAL rm3 = isqrt2*vc3;
+ CCTK_REAL rm3 = ec3*isqrt2;
- CCTK_REAL im1 = isqrt2*va1;
+ CCTK_REAL im1 = ea1*isqrt2;
- CCTK_REAL im2 = isqrt2*va2;
+ CCTK_REAL im2 = ea2*isqrt2;
- CCTK_REAL im3 = isqrt2*va3;
+ CCTK_REAL im3 = ea3*isqrt2;
- CCTK_REAL rmbar1 = isqrt2*vc1;
+ CCTK_REAL rmbar1 = ec1*isqrt2;
- CCTK_REAL rmbar2 = isqrt2*vc2;
+ CCTK_REAL rmbar2 = ec2*isqrt2;
- CCTK_REAL rmbar3 = isqrt2*vc3;
+ CCTK_REAL rmbar3 = ec3*isqrt2;
- CCTK_REAL imbar1 = -(isqrt2*va1);
+ CCTK_REAL imbar1 = -(ea1*isqrt2);
- CCTK_REAL imbar2 = -(isqrt2*va2);
+ CCTK_REAL imbar2 = -(ea2*isqrt2);
- CCTK_REAL imbar3 = -(isqrt2*va3);
+ CCTK_REAL imbar3 = -(ea3*isqrt2);
CCTK_REAL nn = isqrt2;
diff --git a/test/test.ccl b/test/test.ccl
new file mode 100644
index 0000000..086cd00
--- /dev/null
+++ b/test/test.ccl
@@ -0,0 +1 @@
+NPROCS 1
diff --git a/test/teukolsky.par b/test/teukolsky.par
new file mode 100644
index 0000000..2aee7e6
--- /dev/null
+++ b/test/teukolsky.par
@@ -0,0 +1,102 @@
+# Initial data and short evolution for gauge wave in Minkowski spacetime
+# Author: Mitica Vulcanov <vulcan@aei.mpg.de>
+# Author: Roland Haas <roland.haas@physics.gatech.edu>
+# $Header$
+
+# Required thorns
+ActiveThorns = "CartGrid3D CoordBase SymBase Boundary Time Carpet CarpetLib CarpetSlab CarpetRegrid CarpetReduce InitBase CarpetIOAscii IOUtil IOBasic ADMBase ADMMacros ADMConstraints GenericFD TmunuBase ADMCoupling StaticConformal CoordGauge SpaceMask LocalReduce IDLinearWaves LoopControl GSL WeylScal4 ML_BSSN_O2 ML_BSSN_O2_Helper GenericFD MoL ReflectionSymmetry"
+
+# Grid
+driver::ghost_size = 1
+
+CartGrid3D::avoid_origin = no
+
+Carpet::max_refinement_levels = 3
+Carpet::prolongation_order_space = 1
+Carpet::prolongation_order_time = 2
+Carpet::domain_from_coordbase = yes
+
+Carpet::poison_new_timelevels = "yes"
+Carpet::check_for_poison = "no"
+Carpet::poison_value = 113
+CarpetLib::poison_new_memory = "yes"
+CarpetLib::poison_value = 114
+
+InitBase::initial_data_setup_method = init_some_levels
+Carpet::init_fill_timelevels = yes
+
+CarpetRegrid::refinement_levels = 3
+CarpetRegrid::regrid_every = 0
+CarpetRegrid::refined_regions = "manual-coordinate-list"
+CarpetRegrid::coordinates = "[[([-1.0625,-1.0625,0.0]:[0.9375,0.9375,1.0]:[0.25,0.25,0.25])],[([-0.5625,-0.5625,0.0]:[0.4375,0.4375,0.5]:[0.125,0.125,0.125])]]"
+CarpetRegrid::smart_outer_boundaries = "yes"
+
+Grid::type = "coordbase"
+
+CoordBase::xmin = -2.0625
+CoordBase::ymin = -2.0625
+CoordBase::zmin = 0.0
+CoordBase::xmax = 1.9375
+CoordBase::ymax = 1.9375
+CoordBase::zmax = 2.0
+CoordBase::dx = 0.5
+CoordBase::dy = 0.5
+CoordBase::dz = 0.5
+
+CoordBase::boundary_size_x_lower = 1
+CoordBase::boundary_size_y_lower = 1
+CoordBase::boundary_size_z_lower = 1
+CoordBase::boundary_size_x_upper = 1
+CoordBase::boundary_size_y_upper = 1
+CoordBase::boundary_size_z_upper = 1
+
+CoordBase::boundary_shiftout_z_lower = 1
+CoordBase::boundary_shiftout_z_upper = 0
+
+ReflectionSymmetry::avoid_origin_z = "no"
+ReflectionSymmetry::reflection_z = "yes"
+
+cactus::cctk_initial_time = 0
+cactus::cctk_itlast = 4
+
+# Initial data
+ADMBase::initial_data = "teukwaves"
+ADMBase::initial_shift = "zero"
+ADMBase::initial_lapse = "one"
+IDLinearWaves::mvalue = 2
+
+# Gauge
+ADMBase::lapse_evolution_method = "ML_BSSN_O2"
+ADMBase::shift_evolution_method = "ML_BSSN_O2"
+ADMBase::dtshift_evolution_method = "ML_BSSN_O2"
+
+# Evolution
+ADMBase::evolution_method = "ML_BSSN_O2"
+
+ML_BSSN_O2::harmonicF = 2
+ML_BSSN_O2::harmonicN = 1 # 1+log
+ML_BSSN_O2::ShiftGammaCoeff = 0
+
+# These are necessary
+ML_BSSN_O2::ML_log_confac_bound = "flat"
+ML_BSSN_O2::ML_metric_bound = "flat"
+ML_BSSN_O2::ML_Gamma_bound = "flat"
+ML_BSSN_O2::ML_trace_curv_bound = "flat"
+ML_BSSN_O2::ML_curv_bound = "flat"
+ML_BSSN_O2::ML_lapse_bound = "flat"
+ML_BSSN_O2::ML_dtlapse_bound = "flat"
+ML_BSSN_O2::ML_shift_bound = "flat"
+ML_BSSN_O2::ML_dtshift_bound = "flat"
+
+WeylScal4::Psi4r_group_bound = "flat"
+WeylScal4::Psi4i_group_bound = "flat"
+
+# Output
+IO::out_dir = $parfile
+IO::out_fileinfo = "none"
+IO::parfile_write = "no"
+
+IOASCII::out1D_every = 1
+IOASCII::out1d_zline_x = -0.0625
+IOASCII::out1d_zline_y = -0.0625
+IOASCII::out1D_vars = "weylscal4::psi4r weylscal4::psi4i"
diff --git a/test/teukolsky/Psi4i.d.asc b/test/teukolsky/Psi4i.d.asc
new file mode 100644
index 0000000..224424f
--- /dev/null
+++ b/test/teukolsky/Psi4i.d.asc
@@ -0,0 +1,256 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 0 0 0 -2.0625 -2.0625 -0.5 -0.000492551917381022
+0 0 0 0 0 4 4 4 0 -1.5625 -1.5625 0 -0
+0 0 0 0 0 8 8 8 0 -1.0625 -1.0625 0.5 0.00192353690921836
+0 0 0 0 0 12 12 12 0 -0.5625 -0.5625 1 -0.026938909649388
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 0.00162884088777977
+0 0 0 0 0 20 20 20 0 0.4375 0.4375 2 0.00368433590892682
+#
+#
+#
+
+
+#
+#
+#
+0 0 1 0 0 6 6 6 0 -1.3125 -1.3125 0.25 0.00067555740529781
+0 0 1 0 0 8 8 8 0 -1.0625 -1.0625 0.5 0.00192353690921836
+0 0 1 0 0 10 10 10 0 -0.8125 -0.8125 0.75 -0.0112792424499434
+0 0 1 0 0 12 12 12 0 -0.5625 -0.5625 1 -0.026938909649388
+0 0 1 0 0 14 14 14 0 -0.3125 -0.3125 1.25 -0.0140926846273359
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+2 0 1 0 0 6 6 6 0.125 -1.3125 -1.3125 0.25 0.000213327167351093
+2 0 1 0 0 8 8 8 0.125 -1.0625 -1.0625 0.5 -0.000926053604318068
+2 0 1 0 0 10 10 10 0.125 -0.8125 -0.8125 0.75 -0.0184317139026762
+2 0 1 0 0 12 12 12 0.125 -0.5625 -0.5625 1 -0.0358412937591744
+2 0 1 0 0 14 14 14 0.125 -0.3125 -0.3125 1.25 -0.0125880781288412
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+4 0 0 0 0 0 0 0 0.25 -2.0625 -2.0625 -0.5 -0.000990747036433852
+4 0 0 0 0 4 4 4 0.25 -1.5625 -1.5625 0 -0
+4 0 0 0 0 8 8 8 0.25 -1.0625 -1.0625 0.5 -0.00590012486459349
+4 0 0 0 0 12 12 12 0.25 -0.5625 -0.5625 1 -0.0365411901566698
+4 0 0 0 0 16 16 16 0.25 -0.0625 -0.0625 1.5 -0.0121204001177446
+4 0 0 0 0 20 20 20 0.25 0.4375 0.4375 2 -0.00875852857982729
+#
+#
+#
+
+
+#
+#
+#
+4 0 1 0 0 6 6 6 0.25 -1.3125 -1.3125 0.25 -0.000619109939924643
+4 0 1 0 0 8 8 8 0.25 -1.0625 -1.0625 0.5 -0.00590012486459349
+4 0 1 0 0 10 10 10 0.25 -0.8125 -0.8125 0.75 -0.0227214125076358
+4 0 1 0 0 12 12 12 0.25 -0.5625 -0.5625 1 -0.0365411901566698
+4 0 1 0 0 14 14 14 0.25 -0.3125 -0.3125 1.25 -0.0132300922089961
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
diff --git a/test/teukolsky/Psi4i.x.asc b/test/teukolsky/Psi4i.x.asc
new file mode 100644
index 0000000..15b827d
--- /dev/null
+++ b/test/teukolsky/Psi4i.x.asc
@@ -0,0 +1,128 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 16 4 0 -2.0625 -0.0625 0 -0
+0 0 0 0 0 4 16 4 0 -1.5625 -0.0625 0 -0
+0 0 0 0 0 8 16 4 0 -1.0625 -0.0625 0 -0
+0 0 0 0 0 12 16 4 0 -0.5625 -0.0625 0 0
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 0
+0 0 0 0 0 20 16 4 0 0.4375 -0.0625 0 0
+0 0 0 0 0 24 16 4 0 0.9375 -0.0625 0 0
+0 0 0 0 0 28 16 4 0 1.4375 -0.0625 0 0
+0 0 0 0 0 32 16 4 0 1.9375 -0.0625 0 0
+
+
+0 0 1 0 0 6 18 4 0 -1.3125 0.1875 0 0
+0 0 1 0 0 8 18 4 0 -1.0625 0.1875 0 0
+0 0 1 0 0 10 18 4 0 -0.8125 0.1875 0 0
+0 0 1 0 0 12 18 4 0 -0.5625 0.1875 0 0
+0 0 1 0 0 14 18 4 0 -0.3125 0.1875 0 0
+0 0 1 0 0 16 18 4 0 -0.0625 0.1875 0 0
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 0
+0 0 1 0 0 20 18 4 0 0.4375 0.1875 0 0
+0 0 1 0 0 22 18 4 0 0.6875 0.1875 0 0
+0 0 1 0 0 24 18 4 0 0.9375 0.1875 0 0
+0 0 1 0 0 26 18 4 0 1.1875 0.1875 0 0
+
+
+0 0 2 0 0 11 17 4 0 -0.6875 0.0625 0 0
+0 0 2 0 0 12 17 4 0 -0.5625 0.0625 0 0
+0 0 2 0 0 13 17 4 0 -0.4375 0.0625 0 0
+0 0 2 0 0 14 17 4 0 -0.3125 0.0625 0 0
+0 0 2 0 0 15 17 4 0 -0.1875 0.0625 0 0
+0 0 2 0 0 16 17 4 0 -0.0625 0.0625 0 0
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 0
+0 0 2 0 0 18 17 4 0 0.1875 0.0625 0 0
+0 0 2 0 0 19 17 4 0 0.3125 0.0625 0 0
+0 0 2 0 0 20 17 4 0 0.4375 0.0625 0 0
+0 0 2 0 0 21 17 4 0 0.5625 0.0625 0 0
+
+
+1 0 2 0 0 11 17 4 0.0625 -0.6875 0.0625 0 0
+1 0 2 0 0 12 17 4 0.0625 -0.5625 0.0625 0 0
+1 0 2 0 0 13 17 4 0.0625 -0.4375 0.0625 0 0
+1 0 2 0 0 14 17 4 0.0625 -0.3125 0.0625 0 0
+1 0 2 0 0 15 17 4 0.0625 -0.1875 0.0625 0 0
+1 0 2 0 0 16 17 4 0.0625 -0.0625 0.0625 0 0
+1 0 2 0 0 17 17 4 0.0625 0.0625 0.0625 0 0
+1 0 2 0 0 18 17 4 0.0625 0.1875 0.0625 0 0
+1 0 2 0 0 19 17 4 0.0625 0.3125 0.0625 0 0
+1 0 2 0 0 20 17 4 0.0625 0.4375 0.0625 0 0
+1 0 2 0 0 21 17 4 0.0625 0.5625 0.0625 0 0
+
+
+2 0 1 0 0 6 18 4 0.125 -1.3125 0.1875 0 0
+2 0 1 0 0 8 18 4 0.125 -1.0625 0.1875 0 0
+2 0 1 0 0 10 18 4 0.125 -0.8125 0.1875 0 0
+2 0 1 0 0 12 18 4 0.125 -0.5625 0.1875 0 0
+2 0 1 0 0 14 18 4 0.125 -0.3125 0.1875 0 0
+2 0 1 0 0 16 18 4 0.125 -0.0625 0.1875 0 0
+2 0 1 0 0 18 18 4 0.125 0.1875 0.1875 0 0
+2 0 1 0 0 20 18 4 0.125 0.4375 0.1875 0 0
+2 0 1 0 0 22 18 4 0.125 0.6875 0.1875 0 0
+2 0 1 0 0 24 18 4 0.125 0.9375 0.1875 0 0
+2 0 1 0 0 26 18 4 0.125 1.1875 0.1875 0 0
+
+
+2 0 2 0 0 11 17 4 0.125 -0.6875 0.0625 0 0
+2 0 2 0 0 12 17 4 0.125 -0.5625 0.0625 0 0
+2 0 2 0 0 13 17 4 0.125 -0.4375 0.0625 0 0
+2 0 2 0 0 14 17 4 0.125 -0.3125 0.0625 0 0
+2 0 2 0 0 15 17 4 0.125 -0.1875 0.0625 0 0
+2 0 2 0 0 16 17 4 0.125 -0.0625 0.0625 0 0
+2 0 2 0 0 17 17 4 0.125 0.0625 0.0625 0 0
+2 0 2 0 0 18 17 4 0.125 0.1875 0.0625 0 0
+2 0 2 0 0 19 17 4 0.125 0.3125 0.0625 0 0
+2 0 2 0 0 20 17 4 0.125 0.4375 0.0625 0 0
+2 0 2 0 0 21 17 4 0.125 0.5625 0.0625 0 0
+
+
+3 0 2 0 0 11 17 4 0.1875 -0.6875 0.0625 0 0
+3 0 2 0 0 12 17 4 0.1875 -0.5625 0.0625 0 0
+3 0 2 0 0 13 17 4 0.1875 -0.4375 0.0625 0 0
+3 0 2 0 0 14 17 4 0.1875 -0.3125 0.0625 0 0
+3 0 2 0 0 15 17 4 0.1875 -0.1875 0.0625 0 0
+3 0 2 0 0 16 17 4 0.1875 -0.0625 0.0625 0 0
+3 0 2 0 0 17 17 4 0.1875 0.0625 0.0625 0 0
+3 0 2 0 0 18 17 4 0.1875 0.1875 0.0625 0 0
+3 0 2 0 0 19 17 4 0.1875 0.3125 0.0625 0 0
+3 0 2 0 0 20 17 4 0.1875 0.4375 0.0625 0 0
+3 0 2 0 0 21 17 4 0.1875 0.5625 0.0625 0 0
+
+
+4 0 0 0 0 0 16 4 0.25 -2.0625 -0.0625 0 0
+4 0 0 0 0 4 16 4 0.25 -1.5625 -0.0625 0 0
+4 0 0 0 0 8 16 4 0.25 -1.0625 -0.0625 0 0
+4 0 0 0 0 12 16 4 0.25 -0.5625 -0.0625 0 0
+4 0 0 0 0 16 16 4 0.25 -0.0625 -0.0625 0 0
+4 0 0 0 0 20 16 4 0.25 0.4375 -0.0625 0 0
+4 0 0 0 0 24 16 4 0.25 0.9375 -0.0625 0 0
+4 0 0 0 0 28 16 4 0.25 1.4375 -0.0625 0 0
+4 0 0 0 0 32 16 4 0.25 1.9375 -0.0625 0 0
+
+
+4 0 1 0 0 6 18 4 0.25 -1.3125 0.1875 0 0
+4 0 1 0 0 8 18 4 0.25 -1.0625 0.1875 0 -0
+4 0 1 0 0 10 18 4 0.25 -0.8125 0.1875 0 0
+4 0 1 0 0 12 18 4 0.25 -0.5625 0.1875 0 0
+4 0 1 0 0 14 18 4 0.25 -0.3125 0.1875 0 0
+4 0 1 0 0 16 18 4 0.25 -0.0625 0.1875 0 0
+4 0 1 0 0 18 18 4 0.25 0.1875 0.1875 0 0
+4 0 1 0 0 20 18 4 0.25 0.4375 0.1875 0 0
+4 0 1 0 0 22 18 4 0.25 0.6875 0.1875 0 0
+4 0 1 0 0 24 18 4 0.25 0.9375 0.1875 0 0
+4 0 1 0 0 26 18 4 0.25 1.1875 0.1875 0 0
+
+
+4 0 2 0 0 11 17 4 0.25 -0.6875 0.0625 0 0
+4 0 2 0 0 12 17 4 0.25 -0.5625 0.0625 0 0
+4 0 2 0 0 13 17 4 0.25 -0.4375 0.0625 0 0
+4 0 2 0 0 14 17 4 0.25 -0.3125 0.0625 0 0
+4 0 2 0 0 15 17 4 0.25 -0.1875 0.0625 0 0
+4 0 2 0 0 16 17 4 0.25 -0.0625 0.0625 0 0
+4 0 2 0 0 17 17 4 0.25 0.0625 0.0625 0 0
+4 0 2 0 0 18 17 4 0.25 0.1875 0.0625 0 0
+4 0 2 0 0 19 17 4 0.25 0.3125 0.0625 0 0
+4 0 2 0 0 20 17 4 0.25 0.4375 0.0625 0 0
+4 0 2 0 0 21 17 4 0.25 0.5625 0.0625 0 0
+
+
diff --git a/test/teukolsky/Psi4i.y.asc b/test/teukolsky/Psi4i.y.asc
new file mode 100644
index 0000000..dfa3914
--- /dev/null
+++ b/test/teukolsky/Psi4i.y.asc
@@ -0,0 +1,128 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 0 4 0 -0.0625 -2.0625 0 -0
+0 0 0 0 0 16 4 4 0 -0.0625 -1.5625 0 -0
+0 0 0 0 0 16 8 4 0 -0.0625 -1.0625 0 -0
+0 0 0 0 0 16 12 4 0 -0.0625 -0.5625 0 0
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 0
+0 0 0 0 0 16 20 4 0 -0.0625 0.4375 0 0
+0 0 0 0 0 16 24 4 0 -0.0625 0.9375 0 0
+0 0 0 0 0 16 28 4 0 -0.0625 1.4375 0 -0
+0 0 0 0 0 16 32 4 0 -0.0625 1.9375 0 -0
+
+
+0 0 1 0 0 18 6 4 0 0.1875 -1.3125 0 0
+0 0 1 0 0 18 8 4 0 0.1875 -1.0625 0 0
+0 0 1 0 0 18 10 4 0 0.1875 -0.8125 0 0
+0 0 1 0 0 18 12 4 0 0.1875 -0.5625 0 0
+0 0 1 0 0 18 14 4 0 0.1875 -0.3125 0 0
+0 0 1 0 0 18 16 4 0 0.1875 -0.0625 0 0
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 0
+0 0 1 0 0 18 20 4 0 0.1875 0.4375 0 0
+0 0 1 0 0 18 22 4 0 0.1875 0.6875 0 0
+0 0 1 0 0 18 24 4 0 0.1875 0.9375 0 0
+0 0 1 0 0 18 26 4 0 0.1875 1.1875 0 0
+
+
+0 0 2 0 0 17 11 4 0 0.0625 -0.6875 0 0
+0 0 2 0 0 17 12 4 0 0.0625 -0.5625 0 0
+0 0 2 0 0 17 13 4 0 0.0625 -0.4375 0 0
+0 0 2 0 0 17 14 4 0 0.0625 -0.3125 0 0
+0 0 2 0 0 17 15 4 0 0.0625 -0.1875 0 0
+0 0 2 0 0 17 16 4 0 0.0625 -0.0625 0 0
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 0
+0 0 2 0 0 17 18 4 0 0.0625 0.1875 0 0
+0 0 2 0 0 17 19 4 0 0.0625 0.3125 0 0
+0 0 2 0 0 17 20 4 0 0.0625 0.4375 0 0
+0 0 2 0 0 17 21 4 0 0.0625 0.5625 0 0
+
+
+1 0 2 0 0 17 11 4 0.0625 0.0625 -0.6875 0 0
+1 0 2 0 0 17 12 4 0.0625 0.0625 -0.5625 0 0
+1 0 2 0 0 17 13 4 0.0625 0.0625 -0.4375 0 0
+1 0 2 0 0 17 14 4 0.0625 0.0625 -0.3125 0 0
+1 0 2 0 0 17 15 4 0.0625 0.0625 -0.1875 0 0
+1 0 2 0 0 17 16 4 0.0625 0.0625 -0.0625 0 0
+1 0 2 0 0 17 17 4 0.0625 0.0625 0.0625 0 0
+1 0 2 0 0 17 18 4 0.0625 0.0625 0.1875 0 0
+1 0 2 0 0 17 19 4 0.0625 0.0625 0.3125 0 0
+1 0 2 0 0 17 20 4 0.0625 0.0625 0.4375 0 0
+1 0 2 0 0 17 21 4 0.0625 0.0625 0.5625 0 0
+
+
+2 0 1 0 0 18 6 4 0.125 0.1875 -1.3125 0 0
+2 0 1 0 0 18 8 4 0.125 0.1875 -1.0625 0 0
+2 0 1 0 0 18 10 4 0.125 0.1875 -0.8125 0 0
+2 0 1 0 0 18 12 4 0.125 0.1875 -0.5625 0 0
+2 0 1 0 0 18 14 4 0.125 0.1875 -0.3125 0 0
+2 0 1 0 0 18 16 4 0.125 0.1875 -0.0625 0 0
+2 0 1 0 0 18 18 4 0.125 0.1875 0.1875 0 0
+2 0 1 0 0 18 20 4 0.125 0.1875 0.4375 0 0
+2 0 1 0 0 18 22 4 0.125 0.1875 0.6875 0 0
+2 0 1 0 0 18 24 4 0.125 0.1875 0.9375 0 0
+2 0 1 0 0 18 26 4 0.125 0.1875 1.1875 0 0
+
+
+2 0 2 0 0 17 11 4 0.125 0.0625 -0.6875 0 0
+2 0 2 0 0 17 12 4 0.125 0.0625 -0.5625 0 0
+2 0 2 0 0 17 13 4 0.125 0.0625 -0.4375 0 0
+2 0 2 0 0 17 14 4 0.125 0.0625 -0.3125 0 0
+2 0 2 0 0 17 15 4 0.125 0.0625 -0.1875 0 0
+2 0 2 0 0 17 16 4 0.125 0.0625 -0.0625 0 0
+2 0 2 0 0 17 17 4 0.125 0.0625 0.0625 0 0
+2 0 2 0 0 17 18 4 0.125 0.0625 0.1875 0 0
+2 0 2 0 0 17 19 4 0.125 0.0625 0.3125 0 0
+2 0 2 0 0 17 20 4 0.125 0.0625 0.4375 0 0
+2 0 2 0 0 17 21 4 0.125 0.0625 0.5625 0 0
+
+
+3 0 2 0 0 17 11 4 0.1875 0.0625 -0.6875 0 0
+3 0 2 0 0 17 12 4 0.1875 0.0625 -0.5625 0 0
+3 0 2 0 0 17 13 4 0.1875 0.0625 -0.4375 0 0
+3 0 2 0 0 17 14 4 0.1875 0.0625 -0.3125 0 0
+3 0 2 0 0 17 15 4 0.1875 0.0625 -0.1875 0 0
+3 0 2 0 0 17 16 4 0.1875 0.0625 -0.0625 0 0
+3 0 2 0 0 17 17 4 0.1875 0.0625 0.0625 0 0
+3 0 2 0 0 17 18 4 0.1875 0.0625 0.1875 0 0
+3 0 2 0 0 17 19 4 0.1875 0.0625 0.3125 0 0
+3 0 2 0 0 17 20 4 0.1875 0.0625 0.4375 0 0
+3 0 2 0 0 17 21 4 0.1875 0.0625 0.5625 0 0
+
+
+4 0 0 0 0 16 0 4 0.25 -0.0625 -2.0625 0 0
+4 0 0 0 0 16 4 4 0.25 -0.0625 -1.5625 0 0
+4 0 0 0 0 16 8 4 0.25 -0.0625 -1.0625 0 0
+4 0 0 0 0 16 12 4 0.25 -0.0625 -0.5625 0 0
+4 0 0 0 0 16 16 4 0.25 -0.0625 -0.0625 0 0
+4 0 0 0 0 16 20 4 0.25 -0.0625 0.4375 0 0
+4 0 0 0 0 16 24 4 0.25 -0.0625 0.9375 0 0
+4 0 0 0 0 16 28 4 0.25 -0.0625 1.4375 0 0
+4 0 0 0 0 16 32 4 0.25 -0.0625 1.9375 0 0
+
+
+4 0 1 0 0 18 6 4 0.25 0.1875 -1.3125 0 0
+4 0 1 0 0 18 8 4 0.25 0.1875 -1.0625 0 0
+4 0 1 0 0 18 10 4 0.25 0.1875 -0.8125 0 0
+4 0 1 0 0 18 12 4 0.25 0.1875 -0.5625 0 0
+4 0 1 0 0 18 14 4 0.25 0.1875 -0.3125 0 0
+4 0 1 0 0 18 16 4 0.25 0.1875 -0.0625 0 0
+4 0 1 0 0 18 18 4 0.25 0.1875 0.1875 0 0
+4 0 1 0 0 18 20 4 0.25 0.1875 0.4375 0 0
+4 0 1 0 0 18 22 4 0.25 0.1875 0.6875 0 0
+4 0 1 0 0 18 24 4 0.25 0.1875 0.9375 0 0
+4 0 1 0 0 18 26 4 0.25 0.1875 1.1875 0 0
+
+
+4 0 2 0 0 17 11 4 0.25 0.0625 -0.6875 0 0
+4 0 2 0 0 17 12 4 0.25 0.0625 -0.5625 0 0
+4 0 2 0 0 17 13 4 0.25 0.0625 -0.4375 0 0
+4 0 2 0 0 17 14 4 0.25 0.0625 -0.3125 0 0
+4 0 2 0 0 17 15 4 0.25 0.0625 -0.1875 0 0
+4 0 2 0 0 17 16 4 0.25 0.0625 -0.0625 0 0
+4 0 2 0 0 17 17 4 0.25 0.0625 0.0625 0 0
+4 0 2 0 0 17 18 4 0.25 0.0625 0.1875 0 0
+4 0 2 0 0 17 19 4 0.25 0.0625 0.3125 0 0
+4 0 2 0 0 17 20 4 0.25 0.0625 0.4375 0 0
+4 0 2 0 0 17 21 4 0.25 0.0625 0.5625 0 0
+
+
diff --git a/test/teukolsky/Psi4i.z.asc b/test/teukolsky/Psi4i.z.asc
new file mode 100644
index 0000000..a20a964
--- /dev/null
+++ b/test/teukolsky/Psi4i.z.asc
@@ -0,0 +1,90 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 16 0 0 -0.0625 -0.0625 -0.5 0.00324203851543642
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 0
+0 0 0 0 0 16 16 8 0 -0.0625 -0.0625 0.5 -0.00324203851543642
+0 0 0 0 0 16 16 12 0 -0.0625 -0.0625 1 -0.0729184475382813
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 0.00162884088777977
+0 0 0 0 0 16 16 20 0 -0.0625 -0.0625 2 0.00162884088777977
+
+
+0 0 1 0 0 16 16 2 0 -0.0625 -0.0625 -0.25 -0.108107083030806
+0 0 1 0 0 16 16 4 0 -0.0625 -0.0625 0 0
+0 0 1 0 0 16 16 6 0 -0.0625 -0.0625 0.25 0.108107083030806
+0 0 1 0 0 16 16 8 0 -0.0625 -0.0625 0.5 -0.00324203851543642
+0 0 1 0 0 16 16 10 0 -0.0625 -0.0625 0.75 -0.0472297602104878
+0 0 1 0 0 16 16 12 0 -0.0625 -0.0625 1 -0.0729184475382813
+0 0 1 0 0 16 16 14 0 -0.0625 -0.0625 1.25 -0.0356448033252508
+
+
+0 0 2 0 0 16 16 3 0 -0.0625 -0.0625 -0.125 -0.119774776965781
+0 0 2 0 0 16 16 4 0 -0.0625 -0.0625 0 0
+0 0 2 0 0 16 16 5 0 -0.0625 -0.0625 0.125 0.119774776965781
+0 0 2 0 0 16 16 6 0 -0.0625 -0.0625 0.25 0.108107083030806
+0 0 2 0 0 16 16 7 0 -0.0625 -0.0625 0.375 0.0676017421667042
+0 0 2 0 0 16 16 8 0 -0.0625 -0.0625 0.5 -0.00324203851543642
+0 0 2 0 0 16 16 9 0 -0.0625 -0.0625 0.625 -0.0133627027966295
+
+
+1 0 2 0 0 16 16 3 0.0625 -0.0625 -0.0625 -0.125 -0.129597294587271
+1 0 2 0 0 16 16 4 0.0625 -0.0625 -0.0625 0 0
+1 0 2 0 0 16 16 5 0.0625 -0.0625 -0.0625 0.125 0.129597294587271
+1 0 2 0 0 16 16 6 0.0625 -0.0625 -0.0625 0.25 0.129748379779754
+1 0 2 0 0 16 16 7 0.0625 -0.0625 -0.0625 0.375 0.0970814306106842
+1 0 2 0 0 16 16 8 0.0625 -0.0625 -0.0625 0.5 0.0324994566105558
+1 0 2 0 0 16 16 9 0.0625 -0.0625 -0.0625 0.625 -0.00487665710558943
+
+
+2 0 1 0 0 16 16 2 0.125 -0.0625 -0.0625 -0.25 -0.142813011745519
+2 0 1 0 0 16 16 4 0.125 -0.0625 -0.0625 0 0
+2 0 1 0 0 16 16 6 0.125 -0.0625 -0.0625 0.25 0.142813011745519
+2 0 1 0 0 16 16 8 0.125 -0.0625 -0.0625 0.5 0.0730110653588677
+2 0 1 0 0 16 16 10 0.125 -0.0625 -0.0625 0.75 -0.00608857789002302
+2 0 1 0 0 16 16 12 0.125 -0.0625 -0.0625 1 -0.0627033770298517
+2 0 1 0 0 16 16 14 0.125 -0.0625 -0.0625 1.25 -0.0283729174421699
+
+
+2 0 2 0 0 16 16 3 0.125 -0.0625 -0.0625 -0.125 -0.130776880883905
+2 0 2 0 0 16 16 4 0.125 -0.0625 -0.0625 0 0
+2 0 2 0 0 16 16 5 0.125 -0.0625 -0.0625 0.125 0.130776880883905
+2 0 2 0 0 16 16 6 0.125 -0.0625 -0.0625 0.25 0.142813011745519
+2 0 2 0 0 16 16 7 0.125 -0.0625 -0.0625 0.375 0.118232188504829
+2 0 2 0 0 16 16 8 0.125 -0.0625 -0.0625 0.5 0.0730110653588677
+2 0 2 0 0 16 16 9 0.125 -0.0625 -0.0625 0.625 0.0330131455121426
+
+
+3 0 2 0 0 16 16 3 0.1875 -0.0625 -0.0625 -0.125 -0.123248907848475
+3 0 2 0 0 16 16 4 0.1875 -0.0625 -0.0625 0 0
+3 0 2 0 0 16 16 5 0.1875 -0.0625 -0.0625 0.125 0.123248907848475
+3 0 2 0 0 16 16 6 0.1875 -0.0625 -0.0625 0.25 0.145776168183895
+3 0 2 0 0 16 16 7 0.1875 -0.0625 -0.0625 0.375 0.132783206348966
+3 0 2 0 0 16 16 8 0.1875 -0.0625 -0.0625 0.5 0.0985207162675145
+3 0 2 0 0 16 16 9 0.1875 -0.0625 -0.0625 0.625 0.0571467356564928
+
+
+4 0 0 0 0 16 16 0 0.25 -0.0625 -0.0625 -0.5 -0.113880574366821
+4 0 0 0 0 16 16 4 0.25 -0.0625 -0.0625 0 0
+4 0 0 0 0 16 16 8 0.25 -0.0625 -0.0625 0.5 0.113880574366821
+4 0 0 0 0 16 16 12 0.25 -0.0625 -0.0625 1 -0.0295506117568347
+4 0 0 0 0 16 16 16 0.25 -0.0625 -0.0625 1.5 -0.0121204001177446
+4 0 0 0 0 16 16 20 0.25 -0.0625 -0.0625 2 -0.0121204001177446
+
+
+4 0 1 0 0 16 16 2 0.25 -0.0625 -0.0625 -0.25 -0.138736785306786
+4 0 1 0 0 16 16 4 0.25 -0.0625 -0.0625 0 0
+4 0 1 0 0 16 16 6 0.25 -0.0625 -0.0625 0.25 0.138736785306786
+4 0 1 0 0 16 16 8 0.25 -0.0625 -0.0625 0.5 0.113880574366821
+4 0 1 0 0 16 16 10 0.25 -0.0625 -0.0625 0.75 0.0375280041908396
+4 0 1 0 0 16 16 12 0.25 -0.0625 -0.0625 1 -0.0295506117568347
+4 0 1 0 0 16 16 14 0.25 -0.0625 -0.0625 1.25 -0.0208355059372897
+
+
+4 0 2 0 0 16 16 3 0.25 -0.0625 -0.0625 -0.125 -0.107440307402569
+4 0 2 0 0 16 16 4 0.25 -0.0625 -0.0625 0 0
+4 0 2 0 0 16 16 5 0.25 -0.0625 -0.0625 0.125 0.107440307402569
+4 0 2 0 0 16 16 6 0.25 -0.0625 -0.0625 0.25 0.138736785306786
+4 0 2 0 0 16 16 7 0.25 -0.0625 -0.0625 0.375 0.141140601611317
+4 0 2 0 0 16 16 8 0.25 -0.0625 -0.0625 0.5 0.113880574366821
+4 0 2 0 0 16 16 9 0.25 -0.0625 -0.0625 0.625 0.0770568411608155
+
+
diff --git a/test/teukolsky/Psi4r.d.asc b/test/teukolsky/Psi4r.d.asc
new file mode 100644
index 0000000..68012fe
--- /dev/null
+++ b/test/teukolsky/Psi4r.d.asc
@@ -0,0 +1,256 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 0 0 0 -2.0625 -2.0625 -0.5 -1.59794882011747e-07
+0 0 0 0 0 4 4 4 0 -1.5625 -1.5625 0 -2.74962271746909e-07
+0 0 0 0 0 8 8 8 0 -1.0625 -1.0625 0.5 -1.00700649873715e-05
+0 0 0 0 0 12 12 12 0 -0.5625 -0.5625 1 -0.000144580943334948
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 6.92786689356833e-06
+0 0 0 0 0 20 20 20 0 0.4375 0.4375 2 1.38596328785211e-05
+#
+#
+#
+
+
+#
+#
+#
+0 0 1 0 0 6 6 6 0 -1.3125 -1.3125 0.25 -3.97966267647558e-06
+0 0 1 0 0 8 8 8 0 -1.0625 -1.0625 0.5 -1.00700649873715e-05
+0 0 1 0 0 10 10 10 0 -0.8125 -0.8125 0.75 -3.16134062872126e-05
+0 0 1 0 0 12 12 12 0 -0.5625 -0.5625 1 -0.000144580943334948
+0 0 1 0 0 14 14 14 0 -0.3125 -0.3125 1.25 -9.11064033485666e-05
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+2 0 1 0 0 6 6 6 0.125 -1.3125 -1.3125 0.25 -1.96324893288534e-06
+2 0 1 0 0 8 8 8 0.125 -1.0625 -1.0625 0.5 -5.95318508247115e-06
+2 0 1 0 0 10 10 10 0.125 -0.8125 -0.8125 0.75 -2.5323318350888e-05
+2 0 1 0 0 12 12 12 0.125 -0.5625 -0.5625 1 -0.000149801554856064
+2 0 1 0 0 14 14 14 0.125 -0.3125 -0.3125 1.25 -6.99125225690488e-05
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+4 0 0 0 0 0 0 0 0.25 -2.0625 -2.0625 -0.5 -1.9570986522978e-06
+4 0 0 0 0 4 4 4 0.25 -1.5625 -1.5625 0 -2.94342009318854e-06
+4 0 0 0 0 8 8 8 0.25 -1.0625 -1.0625 0.5 1.1924886237815e-05
+4 0 0 0 0 12 12 12 0.25 -0.5625 -0.5625 1 -9.61753876864806e-05
+4 0 0 0 0 16 16 16 0.25 -0.0625 -0.0625 1.5 -4.58977798900331e-05
+4 0 0 0 0 20 20 20 0.25 0.4375 0.4375 2 -9.84701038137855e-06
+#
+#
+#
+
+
+#
+#
+#
+4 0 1 0 0 6 6 6 0.25 -1.3125 -1.3125 0.25 5.06593994823524e-06
+4 0 1 0 0 8 8 8 0.25 -1.0625 -1.0625 0.5 1.1924886237815e-05
+4 0 1 0 0 10 10 10 0.25 -0.8125 -0.8125 0.75 -1.17625385286608e-05
+4 0 1 0 0 12 12 12 0.25 -0.5625 -0.5625 1 -9.61753876864806e-05
+4 0 1 0 0 14 14 14 0.25 -0.3125 -0.3125 1.25 -3.16243598901786e-05
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
diff --git a/test/teukolsky/Psi4r.x.asc b/test/teukolsky/Psi4r.x.asc
new file mode 100644
index 0000000..886c97b
--- /dev/null
+++ b/test/teukolsky/Psi4r.x.asc
@@ -0,0 +1,128 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 16 4 0 -2.0625 -0.0625 0 0.00214660524252594
+0 0 0 0 0 4 16 4 0 -1.5625 -0.0625 0 0.00214660524252594
+0 0 0 0 0 8 16 4 0 -1.0625 -0.0625 0 -0.0322295444689017
+0 0 0 0 0 12 16 4 0 -0.5625 -0.0625 0 -0.0143867718762753
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 -0.00380414718797284
+0 0 0 0 0 20 16 4 0 0.4375 -0.0625 0 0.0131285149823694
+0 0 0 0 0 24 16 4 0 0.9375 -0.0625 0 -0.0390247873457668
+0 0 0 0 0 28 16 4 0 1.4375 -0.0625 0 -0.000810837965686214
+0 0 0 0 0 32 16 4 0 1.9375 -0.0625 0 -0.000810837965686214
+
+
+0 0 1 0 0 6 18 4 0 -1.3125 0.1875 0 -0.0121040094710415
+0 0 1 0 0 8 18 4 0 -1.0625 0.1875 0 -0.0333276174614147
+0 0 1 0 0 10 18 4 0 -0.8125 0.1875 0 -0.0258730223353568
+0 0 1 0 0 12 18 4 0 -0.5625 0.1875 0 -0.0163508290557378
+0 0 1 0 0 14 18 4 0 -0.3125 0.1875 0 0.016471087376056
+0 0 1 0 0 16 18 4 0 -0.0625 0.1875 0 -0.0564077253562933
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 -0.00284240990537598
+0 0 1 0 0 20 18 4 0 0.4375 0.1875 0 0.00399838007658826
+0 0 1 0 0 22 18 4 0 0.6875 0.1875 0 -0.0168325588059545
+0 0 1 0 0 24 18 4 0 0.9375 0.1875 0 -0.040385600111892
+0 0 1 0 0 26 18 4 0 1.1875 0.1875 0 -0.0162440277627701
+
+
+0 0 2 0 0 11 17 4 0 -0.6875 0.0625 0 -0.0140780471998282
+0 0 2 0 0 12 17 4 0 -0.5625 0.0625 0 -0.0199187273708074
+0 0 2 0 0 13 17 4 0 -0.4375 0.0625 0 0.021832417262598
+0 0 2 0 0 14 17 4 0 -0.3125 0.0625 0 0.042778376709051
+0 0 2 0 0 15 17 4 0 -0.1875 0.0625 0 0.0520239956084502
+0 0 2 0 0 16 17 4 0 -0.0625 0.0625 0 -0.00380414718797285
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 -0.00380414718797199
+0 0 2 0 0 18 17 4 0 0.1875 0.0625 0 0.0520239956084487
+0 0 2 0 0 19 17 4 0 0.3125 0.0625 0 0.0427783767090511
+0 0 2 0 0 20 17 4 0 0.4375 0.0625 0 0.00815952912332452
+0 0 2 0 0 21 17 4 0 0.5625 0.0625 0 -0.000572015851519302
+
+
+1 0 2 0 0 11 17 4 0.0625 -0.6875 0.0625 0 -0.0120993678794921
+1 0 2 0 0 12 17 4 0.0625 -0.5625 0.0625 0 0.00176284052289553
+1 0 2 0 0 13 17 4 0.0625 -0.4375 0.0625 0 0.0367644782784345
+1 0 2 0 0 14 17 4 0.0625 -0.3125 0.0625 0 0.0547364813418251
+1 0 2 0 0 15 17 4 0.0625 -0.1875 0.0625 0 0.0583995120685405
+1 0 2 0 0 16 17 4 0.0625 -0.0625 0.0625 0 -0.0037523666688293
+1 0 2 0 0 17 17 4 0.0625 0.0625 0.0625 0 -0.00375236666882674
+1 0 2 0 0 18 17 4 0.0625 0.1875 0.0625 0 0.0585354535818576
+1 0 2 0 0 19 17 4 0.0625 0.3125 0.0625 0 0.0546442199949572
+1 0 2 0 0 20 17 4 0.0625 0.4375 0.0625 0 0.0318024841414062
+1 0 2 0 0 21 17 4 0.0625 0.5625 0.0625 0 0.00447571029595408
+
+
+2 0 1 0 0 6 18 4 0.125 -1.3125 0.1875 0 -0.0103570833322619
+2 0 1 0 0 8 18 4 0.125 -1.0625 0.1875 0 -0.0297655399561455
+2 0 1 0 0 10 18 4 0.125 -0.8125 0.1875 0 -0.0113592651818325
+2 0 1 0 0 12 18 4 0.125 -0.5625 0.1875 0 0.0140328822475577
+2 0 1 0 0 14 18 4 0.125 -0.3125 0.1875 0 0.0279645096102599
+2 0 1 0 0 16 18 4 0.125 -0.0625 0.1875 0 -0.065816057358643
+2 0 1 0 0 18 18 4 0.125 0.1875 0.1875 0 -0.00322691531371868
+2 0 1 0 0 20 18 4 0.125 0.4375 0.1875 0 0.0275473270984525
+2 0 1 0 0 22 18 4 0.125 0.6875 0.1875 0 0.00225904880263885
+2 0 1 0 0 24 18 4 0.125 0.9375 0.1875 0 -0.0301349025117495
+2 0 1 0 0 26 18 4 0.125 1.1875 0.1875 0 -0.0124726715945088
+
+
+2 0 2 0 0 11 17 4 0.125 -0.6875 0.0625 0 0.00505933385075161
+2 0 2 0 0 12 17 4 0.125 -0.5625 0.0625 0 0.0283536702545813
+2 0 2 0 0 13 17 4 0.125 -0.4375 0.0625 0 0.0484981071602151
+2 0 2 0 0 14 17 4 0.125 -0.3125 0.0625 0 0.0633569929967947
+2 0 2 0 0 15 17 4 0.125 -0.1875 0.0625 0 0.0612388302293202
+2 0 2 0 0 16 17 4 0.125 -0.0625 0.0625 0 -0.00307591924425475
+2 0 2 0 0 17 17 4 0.125 0.0625 0.0625 0 -0.00306776803963447
+2 0 2 0 0 18 17 4 0.125 0.1875 0.0625 0 0.0613265098919992
+2 0 2 0 0 19 17 4 0.125 0.3125 0.0625 0 0.063177552422429
+2 0 2 0 0 20 17 4 0.125 0.4375 0.0625 0 0.0533348461583834
+2 0 2 0 0 21 17 4 0.125 0.5625 0.0625 0 0.0199603281054835
+
+
+3 0 2 0 0 11 17 4 0.1875 -0.6875 0.0625 0 0.0152102216540937
+3 0 2 0 0 12 17 4 0.1875 -0.5625 0.0625 0 0.041728813743146
+3 0 2 0 0 13 17 4 0.1875 -0.4375 0.0625 0 0.0583443389905374
+3 0 2 0 0 14 17 4 0.1875 -0.3125 0.0625 0 0.0677931693429498
+3 0 2 0 0 15 17 4 0.1875 -0.1875 0.0625 0 0.0602647595989959
+3 0 2 0 0 16 17 4 0.1875 -0.0625 0.0625 0 -0.00194825618605865
+3 0 2 0 0 17 17 4 0.1875 0.0625 0.0625 0 -0.00193488793522373
+3 0 2 0 0 18 17 4 0.1875 0.1875 0.0625 0 0.0602176520634148
+3 0 2 0 0 19 17 4 0.1875 0.3125 0.0625 0 0.0688678752102956
+3 0 2 0 0 20 17 4 0.1875 0.4375 0.0625 0 0.0628126495185973
+3 0 2 0 0 21 17 4 0.1875 0.5625 0.0625 0 0.0302299476762777
+
+
+4 0 0 0 0 0 16 4 0.25 -2.0625 -0.0625 0 -0.00541960035903436
+4 0 0 0 0 4 16 4 0.25 -1.5625 -0.0625 0 -0.00541960035903436
+4 0 0 0 0 8 16 4 0.25 -1.0625 -0.0625 0 -0.0185911032687687
+4 0 0 0 0 12 16 4 0.25 -0.5625 -0.0625 0 0.0458817465613535
+4 0 0 0 0 16 16 4 0.25 -0.0625 -0.0625 0 -0.00062315860281116
+4 0 0 0 0 20 16 4 0.25 0.4375 -0.0625 0 0.0631645602293314
+4 0 0 0 0 24 16 4 0.25 0.9375 -0.0625 0 -0.00927170677890342
+4 0 0 0 0 28 16 4 0.25 1.4375 -0.0625 0 -0.00625739527854345
+4 0 0 0 0 32 16 4 0.25 1.9375 -0.0625 0 -0.00625739527854345
+
+
+4 0 1 0 0 6 18 4 0.25 -1.3125 0.1875 0 -0.0104614975953501
+4 0 1 0 0 8 18 4 0.25 -1.0625 0.1875 0 -0.017533319217607
+4 0 1 0 0 10 18 4 0.25 -0.8125 0.1875 0 0.00567346438324387
+4 0 1 0 0 12 18 4 0.25 -0.5625 0.1875 0 0.0348638188005043
+4 0 1 0 0 14 18 4 0.25 -0.3125 0.1875 0 0.032978999188246
+4 0 1 0 0 16 18 4 0.25 -0.0625 0.1875 0 -0.0563376642394458
+4 0 1 0 0 18 18 4 0.25 0.1875 0.1875 0 -0.00154394957385369
+4 0 1 0 0 20 18 4 0.25 0.4375 0.1875 0 0.0439906461778958
+4 0 1 0 0 22 18 4 0.25 0.6875 0.1875 0 0.0216362832876016
+4 0 1 0 0 24 18 4 0.25 0.9375 0.1875 0 -0.00906633948319834
+4 0 1 0 0 26 18 4 0.25 1.1875 0.1875 0 -0.00746732503784299
+
+
+4 0 2 0 0 11 17 4 0.25 -0.6875 0.0625 0 0.0258288685572701
+4 0 2 0 0 12 17 4 0.25 -0.5625 0.0625 0 0.0471238210201675
+4 0 2 0 0 13 17 4 0.25 -0.4375 0.0625 0 0.0651913431993494
+4 0 2 0 0 14 17 4 0.25 -0.3125 0.0625 0 0.0678755264933941
+4 0 2 0 0 15 17 4 0.25 -0.1875 0.0625 0 0.0552901874366737
+4 0 2 0 0 16 17 4 0.25 -0.0625 0.0625 0 -0.000641573151362232
+4 0 2 0 0 17 17 4 0.25 0.0625 0.0625 0 -0.000648865619004691
+4 0 2 0 0 18 17 4 0.25 0.1875 0.0625 0 0.0554257703721175
+4 0 2 0 0 19 17 4 0.25 0.3125 0.0625 0 0.0691641901830386
+4 0 2 0 0 20 17 4 0.25 0.4375 0.0625 0 0.0652512989670618
+4 0 2 0 0 21 17 4 0.25 0.5625 0.0625 0 0.0380200550842323
+
+
diff --git a/test/teukolsky/Psi4r.y.asc b/test/teukolsky/Psi4r.y.asc
new file mode 100644
index 0000000..b15bf8f
--- /dev/null
+++ b/test/teukolsky/Psi4r.y.asc
@@ -0,0 +1,128 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 0 4 0 -0.0625 -2.0625 0 -0.00212641480470281
+0 0 0 0 0 16 4 4 0 -0.0625 -1.5625 0 -0.00212641480470281
+0 0 0 0 0 16 8 4 0 -0.0625 -1.0625 0 0.0327166605195558
+0 0 0 0 0 16 12 4 0 -0.0625 -0.5625 0 0.0145648599448675
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 -0.00380414718797284
+0 0 0 0 0 16 20 4 0 -0.0625 0.4375 0 -0.0139988603960336
+0 0 0 0 0 16 24 4 0 -0.0625 0.9375 0 0.0397210649328944
+0 0 0 0 0 16 28 4 0 -0.0625 1.4375 0 0.000872630329753811
+0 0 0 0 0 16 32 4 0 -0.0625 1.9375 0 0.000872630329753811
+
+
+0 0 1 0 0 18 6 4 0 0.1875 -1.3125 0 0.0123005457096648
+0 0 1 0 0 18 8 4 0 0.1875 -1.0625 0 0.0337760496648182
+0 0 1 0 0 18 10 4 0 0.1875 -0.8125 0 0.0264742495681148
+0 0 1 0 0 18 12 4 0 0.1875 -0.5625 0 0.0163199723563988
+0 0 1 0 0 18 14 4 0 0.1875 -0.3125 0 -0.0200877273253634
+0 0 1 0 0 18 16 4 0 0.1875 -0.0625 0 0.0520239956084487
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 -0.00284240990537598
+0 0 1 0 0 18 20 4 0 0.1875 0.4375 0 -0.00536037829563379
+0 0 1 0 0 18 22 4 0 0.1875 0.6875 0 0.0171867546851684
+0 0 1 0 0 18 24 4 0 0.1875 0.9375 0 0.0410376957365256
+0 0 1 0 0 18 26 4 0 0.1875 1.1875 0 0.0165437711277421
+
+
+0 0 2 0 0 17 11 4 0 0.0625 -0.6875 0 0.0142879718826415
+0 0 2 0 0 17 12 4 0 0.0625 -0.5625 0 0.0202520604654181
+0 0 2 0 0 17 13 4 0 0.0625 -0.4375 0 -0.0229517575833819
+0 0 2 0 0 17 14 4 0 0.0625 -0.3125 0 -0.0452873223411451
+0 0 2 0 0 17 15 4 0 0.0625 -0.1875 0 -0.0564077253562922
+0 0 2 0 0 17 16 4 0 0.0625 -0.0625 0 -0.00380414718797154
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 -0.00380414718797199
+0 0 2 0 0 17 18 4 0 0.0625 0.1875 0 -0.0564077253562919
+0 0 2 0 0 17 19 4 0 0.0625 0.3125 0 -0.0452873223411451
+0 0 2 0 0 17 20 4 0 0.0625 0.4375 0 -0.00879611609440668
+0 0 2 0 0 17 21 4 0 0.0625 0.5625 0 0.000116240291775063
+
+
+1 0 2 0 0 17 11 4 0.0625 0.0625 -0.6875 0 0.0119730262415374
+1 0 2 0 0 17 12 4 0.0625 0.0625 -0.5625 0 -0.0026984138590055
+1 0 2 0 0 17 13 4 0.0625 0.0625 -0.4375 0 -0.038957641125576
+1 0 2 0 0 17 14 4 0.0625 0.0625 -0.3125 0 -0.0582624089788792
+1 0 2 0 0 17 15 4 0.0625 0.0625 -0.1875 0 -0.0633506690176002
+1 0 2 0 0 17 16 4 0.0625 0.0625 -0.0625 0 -0.00375236666882674
+1 0 2 0 0 17 17 4 0.0625 0.0625 0.0625 0 -0.00375236666882674
+1 0 2 0 0 17 18 4 0.0625 0.0625 0.1875 0 -0.063503253620972
+1 0 2 0 0 17 19 4 0.0625 0.0625 0.3125 0 -0.0581247053342094
+1 0 2 0 0 17 20 4 0.0625 0.0625 0.4375 0 -0.0339848077953541
+1 0 2 0 0 17 21 4 0.0625 0.0625 0.5625 0 -0.0053725449151666
+
+
+2 0 1 0 0 18 6 4 0.125 0.1875 -1.3125 0 0.0104911000774778
+2 0 1 0 0 18 8 4 0.125 0.1875 -1.0625 0 0.0301578559635892
+2 0 1 0 0 18 10 4 0.125 0.1875 -0.8125 0 0.0111894764873617
+2 0 1 0 0 18 12 4 0.125 0.1875 -0.5625 0 -0.0162594796622358
+2 0 1 0 0 18 14 4 0.125 0.1875 -0.3125 0 -0.0332303861655075
+2 0 1 0 0 18 16 4 0.125 0.1875 -0.0625 0 0.06125819378802
+2 0 1 0 0 18 18 4 0.125 0.1875 0.1875 0 -0.00322691531371868
+2 0 1 0 0 18 20 4 0.125 0.1875 0.4375 0 -0.0312300374218941
+2 0 1 0 0 18 22 4 0.125 0.1875 0.6875 0 -0.00312521059483472
+2 0 1 0 0 18 24 4 0.125 0.1875 0.9375 0 0.030409120862276
+2 0 1 0 0 18 26 4 0.125 0.1875 1.1875 0 0.0126419196121104
+
+
+2 0 2 0 0 17 11 4 0.125 0.0625 -0.6875 0 -0.00603794449477391
+2 0 2 0 0 17 12 4 0.125 0.0625 -0.5625 0 -0.0306923385624761
+2 0 2 0 0 17 13 4 0.125 0.0625 -0.4375 0 -0.0514564432163682
+2 0 2 0 0 17 14 4 0.125 0.0625 -0.3125 0 -0.0671999312796661
+2 0 2 0 0 17 15 4 0.125 0.0625 -0.1875 0 -0.0658017838435255
+2 0 2 0 0 17 16 4 0.125 0.0625 -0.0625 0 -0.00305410995098888
+2 0 2 0 0 17 17 4 0.125 0.0625 0.0625 0 -0.00306776803963447
+2 0 2 0 0 17 18 4 0.125 0.0625 0.1875 0 -0.0658963755404086
+2 0 2 0 0 17 19 4 0.125 0.0625 0.3125 0 -0.0670347427955264
+2 0 2 0 0 17 20 4 0.125 0.0625 0.4375 0 -0.0567688131802107
+2 0 2 0 0 17 21 4 0.125 0.0625 0.5625 0 -0.0217968679463026
+
+
+3 0 2 0 0 17 11 4 0.1875 0.0625 -0.6875 0 -0.0168340226927118
+3 0 2 0 0 17 12 4 0.1875 0.0625 -0.5625 0 -0.04459423818572
+3 0 2 0 0 17 13 4 0.1875 0.0625 -0.4375 0 -0.0616736621400441
+3 0 2 0 0 17 14 4 0.1875 0.0625 -0.3125 0 -0.0711509750687142
+3 0 2 0 0 17 15 4 0.1875 0.0625 -0.1875 0 -0.0635854622553993
+3 0 2 0 0 17 16 4 0.1875 0.0625 -0.0625 0 -0.00190154795246515
+3 0 2 0 0 17 17 4 0.1875 0.0625 0.0625 0 -0.00193488793522373
+3 0 2 0 0 17 18 4 0.1875 0.0625 0.1875 0 -0.063527058066146
+3 0 2 0 0 17 19 4 0.1875 0.0625 0.3125 0 -0.0724327554591806
+3 0 2 0 0 17 20 4 0.1875 0.0625 0.4375 0 -0.066520602022701
+3 0 2 0 0 17 21 4 0.1875 0.0625 0.5625 0 -0.0326454636932488
+
+
+4 0 0 0 0 16 0 4 0.25 -0.0625 -2.0625 0 0.00553374496852768
+4 0 0 0 0 16 4 4 0.25 -0.0625 -1.5625 0 0.00553374496852768
+4 0 0 0 0 16 8 4 0.25 -0.0625 -1.0625 0 0.0185734133211248
+4 0 0 0 0 16 12 4 0.25 -0.0625 -0.5625 0 -0.0482903498543416
+4 0 0 0 0 16 16 4 0.25 -0.0625 -0.0625 0 -0.00062315860281116
+4 0 0 0 0 16 20 4 0.25 -0.0625 0.4375 0 -0.066007227013449
+4 0 0 0 0 16 24 4 0.25 -0.0625 0.9375 0 0.00875434258559838
+4 0 0 0 0 16 28 4 0.25 -0.0625 1.4375 0 0.00641458785198177
+4 0 0 0 0 16 32 4 0.25 -0.0625 1.9375 0 0.00641458785198177
+
+
+4 0 1 0 0 18 6 4 0.25 0.1875 -1.3125 0 0.0105214342154745
+4 0 1 0 0 18 8 4 0.25 0.1875 -1.0625 0 0.0174935467278855
+4 0 1 0 0 18 10 4 0.25 0.1875 -0.8125 0 -0.00694880035707623
+4 0 1 0 0 18 12 4 0.25 0.1875 -0.5625 0 -0.037521971297225
+4 0 1 0 0 18 14 4 0.25 0.1875 -0.3125 0 -0.0363926514389531
+4 0 1 0 0 18 16 4 0.25 0.1875 -0.0625 0 0.054885853953104
+4 0 1 0 0 18 18 4 0.25 0.1875 0.1875 0 -0.00154394957385369
+4 0 1 0 0 18 20 4 0.25 0.1875 0.4375 0 -0.0474164620984126
+4 0 1 0 0 18 22 4 0.25 0.1875 0.6875 0 -0.0236212019062788
+4 0 1 0 0 18 24 4 0.25 0.1875 0.9375 0 0.00853295058359177
+4 0 1 0 0 18 26 4 0.25 0.1875 1.1875 0 0.00733869555641356
+
+
+4 0 2 0 0 17 11 4 0.25 0.0625 -0.6875 0 -0.0277390652359532
+4 0 2 0 0 17 12 4 0.25 0.0625 -0.5625 0 -0.0497680040524775
+4 0 2 0 0 17 13 4 0.25 0.0625 -0.4375 0 -0.068210032484899
+4 0 2 0 0 17 14 4 0.25 0.0625 -0.3125 0 -0.0700998007673486
+4 0 2 0 0 17 15 4 0.25 0.0625 -0.1875 0 -0.0568285272634548
+4 0 2 0 0 17 16 4 0.25 0.0625 -0.0625 0 -0.000610003636333088
+4 0 2 0 0 17 17 4 0.25 0.0625 0.0625 0 -0.000648865619004691
+4 0 2 0 0 17 18 4 0.25 0.0625 0.1875 0 -0.0569471560783194
+4 0 2 0 0 17 19 4 0.25 0.0625 0.3125 0 -0.0716313732984787
+4 0 2 0 0 17 20 4 0.25 0.0625 0.4375 0 -0.0683692694456717
+4 0 2 0 0 17 21 4 0.25 0.0625 0.5625 0 -0.0403485484477089
+
+
diff --git a/test/teukolsky/Psi4r.z.asc b/test/teukolsky/Psi4r.z.asc
new file mode 100644
index 0000000..0594b61
--- /dev/null
+++ b/test/teukolsky/Psi4r.z.asc
@@ -0,0 +1,90 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 16 0 0 -0.0625 -0.0625 -0.5 -8.71361723512774e-07
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 -0.00380414718797284
+0 0 0 0 0 16 16 8 0 -0.0625 -0.0625 0.5 -8.71361723512774e-07
+0 0 0 0 0 16 16 12 0 -0.0625 -0.0625 1 -0.000641440476858841
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 6.92786689356833e-06
+0 0 0 0 0 16 16 20 0 -0.0625 -0.0625 2 6.92786689356833e-06
+
+
+0 0 1 0 0 16 16 2 0 -0.0625 -0.0625 -0.25 -0.00217586688787071
+0 0 1 0 0 16 16 4 0 -0.0625 -0.0625 0 -0.00380414718797284
+0 0 1 0 0 16 16 6 0 -0.0625 -0.0625 0.25 -0.00217586688787071
+0 0 1 0 0 16 16 8 0 -0.0625 -0.0625 0.5 -8.71361723512774e-07
+0 0 1 0 0 16 16 10 0 -0.0625 -0.0625 0.75 -0.000193220264070799
+0 0 1 0 0 16 16 12 0 -0.0625 -0.0625 1 -0.000641440476858841
+0 0 1 0 0 16 16 14 0 -0.0625 -0.0625 1.25 -0.000317256304982636
+
+
+0 0 2 0 0 16 16 3 0 -0.0625 -0.0625 -0.125 -0.00333097979395741
+0 0 2 0 0 16 16 4 0 -0.0625 -0.0625 0 -0.00380414718797284
+0 0 2 0 0 16 16 5 0 -0.0625 -0.0625 0.125 -0.00333097979395741
+0 0 2 0 0 16 16 6 0 -0.0625 -0.0625 0.25 -0.00217586688787071
+0 0 2 0 0 16 16 7 0 -0.0625 -0.0625 0.375 -0.000943554132151961
+0 0 2 0 0 16 16 8 0 -0.0625 -0.0625 0.5 -8.71361723512774e-07
+0 0 2 0 0 16 16 9 0 -0.0625 -0.0625 0.625 -0.000178384667178864
+
+
+1 0 2 0 0 16 16 3 0.0625 -0.0625 -0.0625 -0.125 -0.00349944486830861
+1 0 2 0 0 16 16 4 0.0625 -0.0625 -0.0625 0 -0.0037523666688293
+1 0 2 0 0 16 16 5 0.0625 -0.0625 -0.0625 0.125 -0.00349944486830861
+1 0 2 0 0 16 16 6 0.0625 -0.0625 -0.0625 0.25 -0.00254398453304843
+1 0 2 0 0 16 16 7 0.0625 -0.0625 -0.0625 0.375 -0.00131828886246981
+1 0 2 0 0 16 16 8 0.0625 -0.0625 -0.0625 0.5 -0.000248134707361334
+1 0 2 0 0 16 16 9 0.0625 -0.0625 -0.0625 0.625 -0.000148834451157565
+
+
+2 0 1 0 0 16 16 2 0.125 -0.0625 -0.0625 -0.25 -0.00257631090729735
+2 0 1 0 0 16 16 4 0.125 -0.0625 -0.0625 0 -0.00306423418336092
+2 0 1 0 0 16 16 6 0.125 -0.0625 -0.0625 0.25 -0.00257631090729735
+2 0 1 0 0 16 16 8 0.125 -0.0625 -0.0625 0.5 -0.000513977601236253
+2 0 1 0 0 16 16 10 0.125 -0.0625 -0.0625 0.75 -2.62671090561355e-05
+2 0 1 0 0 16 16 12 0.125 -0.0625 -0.0625 1 -0.000478087764210338
+2 0 1 0 0 16 16 14 0.125 -0.0625 -0.0625 1.25 -0.000232462548120776
+
+
+2 0 2 0 0 16 16 3 0.125 -0.0625 -0.0625 -0.125 -0.00318346419834144
+2 0 2 0 0 16 16 4 0.125 -0.0625 -0.0625 0 -0.00306423418336092
+2 0 2 0 0 16 16 5 0.125 -0.0625 -0.0625 0.125 -0.00318346419834144
+2 0 2 0 0 16 16 6 0.125 -0.0625 -0.0625 0.25 -0.00257631090729735
+2 0 2 0 0 16 16 7 0.125 -0.0625 -0.0625 0.375 -0.00149810693346458
+2 0 2 0 0 16 16 8 0.125 -0.0625 -0.0625 0.5 -0.000513977601236253
+2 0 2 0 0 16 16 9 0.125 -0.0625 -0.0625 0.625 -0.000262261799685482
+
+
+3 0 2 0 0 16 16 3 0.1875 -0.0625 -0.0625 -0.125 -0.002467768311079
+3 0 2 0 0 16 16 4 0.1875 -0.0625 -0.0625 0 -0.00192334911485378
+3 0 2 0 0 16 16 5 0.1875 -0.0625 -0.0625 0.125 -0.002467768311079
+3 0 2 0 0 16 16 6 0.1875 -0.0625 -0.0625 0.25 -0.00226612862606827
+3 0 2 0 0 16 16 7 0.1875 -0.0625 -0.0625 0.375 -0.00149248613783483
+3 0 2 0 0 16 16 8 0.1875 -0.0625 -0.0625 0.5 -0.000646543681632718
+3 0 2 0 0 16 16 9 0.1875 -0.0625 -0.0625 0.625 -0.000313110163528634
+
+
+4 0 0 0 0 16 16 0 0.25 -0.0625 -0.0625 -0.5 -0.000666555963535859
+4 0 0 0 0 16 16 4 0.25 -0.0625 -0.0625 0 -0.00062315860281116
+4 0 0 0 0 16 16 8 0.25 -0.0625 -0.0625 0.5 -0.000666555963535859
+4 0 0 0 0 16 16 12 0.25 -0.0625 -0.0625 1 -0.000140315671642946
+4 0 0 0 0 16 16 16 0.25 -0.0625 -0.0625 1.5 -4.58977798900331e-05
+4 0 0 0 0 16 16 20 0.25 -0.0625 -0.0625 2 -4.58977798900331e-05
+
+
+4 0 1 0 0 16 16 2 0.25 -0.0625 -0.0625 -0.25 -0.00170289457022637
+4 0 1 0 0 16 16 4 0.25 -0.0625 -0.0625 0 -0.00062315860281116
+4 0 1 0 0 16 16 6 0.25 -0.0625 -0.0625 0.25 -0.00170289457022637
+4 0 1 0 0 16 16 8 0.25 -0.0625 -0.0625 0.5 -0.000666555963535859
+4 0 1 0 0 16 16 10 0.25 -0.0625 -0.0625 0.75 3.8907343178379e-05
+4 0 1 0 0 16 16 12 0.25 -0.0625 -0.0625 1 -0.000140315671642946
+4 0 1 0 0 16 16 14 0.25 -0.0625 -0.0625 1.25 -9.31067257664898e-05
+
+
+4 0 2 0 0 16 16 3 0.25 -0.0625 -0.0625 -0.125 -0.00153186362018364
+4 0 2 0 0 16 16 4 0.25 -0.0625 -0.0625 0 -0.00062315860281116
+4 0 2 0 0 16 16 5 0.25 -0.0625 -0.0625 0.125 -0.00153186362018364
+4 0 2 0 0 16 16 6 0.25 -0.0625 -0.0625 0.25 -0.00170289457022637
+4 0 2 0 0 16 16 7 0.25 -0.0625 -0.0625 0.375 -0.00132003625433488
+4 0 2 0 0 16 16 8 0.25 -0.0625 -0.0625 0.5 -0.000666555963535859
+4 0 2 0 0 16 16 9 0.25 -0.0625 -0.0625 0.625 -0.000327064330083023
+
+
diff --git a/test/teukolskyID.par b/test/teukolskyID.par
new file mode 100644
index 0000000..218dd16
--- /dev/null
+++ b/test/teukolskyID.par
@@ -0,0 +1,87 @@
+# Initial data and short evolution for gauge wave in Minkowski spacetime
+# Author: Mitica Vulcanov <vulcan@aei.mpg.de>
+# Author: Roland Haas <roland.haas@physics.gatech.edu>
+# $Header$
+
+# Required thorns
+ActiveThorns = "CartGrid3D CoordBase SymBase Boundary Time Carpet CarpetLib CarpetSlab CarpetRegrid CarpetReduce InitBase CarpetIOAscii IOUtil IOBasic ADMBase ADMMacros ADMConstraints GenericFD TmunuBase ADMCoupling StaticConformal CoordGauge SpaceMask LocalReduce IDLinearWaves LoopControl GSL WeylScal4 ReflectionSymmetry"
+
+# Grid
+driver::ghost_size = 1
+
+CartGrid3D::avoid_origin = no
+
+Carpet::max_refinement_levels = 3
+Carpet::prolongation_order_space = 1
+Carpet::prolongation_order_time = 2
+Carpet::domain_from_coordbase = yes
+
+Carpet::poison_new_timelevels = "yes"
+Carpet::check_for_poison = "no"
+Carpet::poison_value = 113
+CarpetLib::poison_new_memory = "yes"
+CarpetLib::poison_value = 114
+
+InitBase::initial_data_setup_method = init_some_levels
+Carpet::init_fill_timelevels = yes
+
+CarpetRegrid::refinement_levels = 3
+CarpetRegrid::regrid_every = 0
+CarpetRegrid::refined_regions = "manual-coordinate-list"
+CarpetRegrid::coordinates = "[[([-1.0625,-1.0625,0.0]:[0.9375,0.9375,1.0]:[0.25,0.25,0.25])],[([-0.5625,-0.5625,0.0]:[0.4375,0.4375,0.5]:[0.125,0.125,0.125])]]"
+CarpetRegrid::smart_outer_boundaries = "yes"
+
+Grid::type = "coordbase"
+
+CoordBase::xmin = -2.0625
+CoordBase::ymin = -2.0625
+CoordBase::zmin = 0.0
+CoordBase::xmax = 1.9375
+CoordBase::ymax = 1.9375
+CoordBase::zmax = 2.0
+CoordBase::dx = 0.5
+CoordBase::dy = 0.5
+CoordBase::dz = 0.5
+
+CoordBase::boundary_size_x_lower = 1
+CoordBase::boundary_size_y_lower = 1
+CoordBase::boundary_size_z_lower = 1
+CoordBase::boundary_size_x_upper = 1
+CoordBase::boundary_size_y_upper = 1
+CoordBase::boundary_size_z_upper = 1
+
+CoordBase::boundary_shiftout_z_lower = 1
+CoordBase::boundary_shiftout_z_upper = 0
+
+ReflectionSymmetry::avoid_origin_z = "no"
+ReflectionSymmetry::reflection_z = "yes"
+
+cactus::cctk_initial_time = 0
+cactus::cctk_itlast = 0
+
+# Initial data
+ADMBase::initial_data = "teukwaves"
+ADMBase::initial_shift = "zero"
+ADMBase::initial_lapse = "one"
+IDLinearWaves::mvalue = 2
+
+# Gauge
+ADMBase::lapse_evolution_method = "static"
+ADMBase::shift_evolution_method = "static"
+ADMBase::dtshift_evolution_method = "static"
+
+# Evolution
+ADMBase::evolution_method = "static"
+
+WeylScal4::Psi4r_group_bound = "flat"
+WeylScal4::Psi4i_group_bound = "flat"
+
+# Output
+IO::out_dir = $parfile
+IO::out_fileinfo = "none"
+IO::parfile_write = "no"
+
+IOASCII::out1D_every = 1
+IOASCII::out1d_zline_x = -0.0625
+IOASCII::out1d_zline_y = -0.0625
+IOASCII::out1D_vars = "weylscal4::psi4r weylscal4::psi4i"
diff --git a/test/teukolskyID/Psi4i.d.asc b/test/teukolskyID/Psi4i.d.asc
new file mode 100644
index 0000000..7a66c20
--- /dev/null
+++ b/test/teukolskyID/Psi4i.d.asc
@@ -0,0 +1,67 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 0 0 0 -2.0625 -2.0625 -0.5 -2.8396262443943e+238
+0 0 0 0 0 4 4 4 0 -1.5625 -1.5625 0 2.8396262443943e+238
+0 0 0 0 0 8 8 8 0 -1.0625 -1.0625 0.5 2.8396262443943e+238
+0 0 0 0 0 12 12 12 0 -0.5625 -0.5625 1 2.8396262443943e+238
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 2.8396262443943e+238
+0 0 0 0 0 20 20 20 0 0.4375 0.4375 2 2.8396262443943e+238
+#
+#
+#
+
+
+#
+#
+#
+0 0 1 0 0 6 6 6 0 -1.3125 -1.3125 0.25 2.8396262443943e+238
+0 0 1 0 0 8 8 8 0 -1.0625 -1.0625 0.5 2.8396262443943e+238
+0 0 1 0 0 10 10 10 0 -0.8125 -0.8125 0.75 2.8396262443943e+238
+0 0 1 0 0 12 12 12 0 -0.5625 -0.5625 1 2.8396262443943e+238
+0 0 1 0 0 14 14 14 0 -0.3125 -0.3125 1.25 2.8396262443943e+238
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
diff --git a/test/teukolskyID/Psi4i.x.asc b/test/teukolskyID/Psi4i.x.asc
new file mode 100644
index 0000000..3b0157f
--- /dev/null
+++ b/test/teukolskyID/Psi4i.x.asc
@@ -0,0 +1,39 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 16 4 0 -2.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 4 16 4 0 -1.5625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 8 16 4 0 -1.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 12 16 4 0 -0.5625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 20 16 4 0 0.4375 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 24 16 4 0 0.9375 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 28 16 4 0 1.4375 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 32 16 4 0 1.9375 -0.0625 0 2.8396262443943e+238
+
+
+0 0 1 0 0 6 18 4 0 -1.3125 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 8 18 4 0 -1.0625 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 10 18 4 0 -0.8125 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 12 18 4 0 -0.5625 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 14 18 4 0 -0.3125 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 16 18 4 0 -0.0625 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 20 18 4 0 0.4375 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 22 18 4 0 0.6875 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 24 18 4 0 0.9375 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 26 18 4 0 1.1875 0.1875 0 2.8396262443943e+238
+
+
+0 0 2 0 0 11 17 4 0 -0.6875 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 12 17 4 0 -0.5625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 13 17 4 0 -0.4375 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 14 17 4 0 -0.3125 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 15 17 4 0 -0.1875 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 16 17 4 0 -0.0625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 18 17 4 0 0.1875 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 19 17 4 0 0.3125 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 20 17 4 0 0.4375 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 21 17 4 0 0.5625 0.0625 0 2.8396262443943e+238
+
+
diff --git a/test/teukolskyID/Psi4i.y.asc b/test/teukolskyID/Psi4i.y.asc
new file mode 100644
index 0000000..55653ce
--- /dev/null
+++ b/test/teukolskyID/Psi4i.y.asc
@@ -0,0 +1,39 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 0 4 0 -0.0625 -2.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 4 4 0 -0.0625 -1.5625 0 2.8396262443943e+238
+0 0 0 0 0 16 8 4 0 -0.0625 -1.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 12 4 0 -0.0625 -0.5625 0 2.8396262443943e+238
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 20 4 0 -0.0625 0.4375 0 2.8396262443943e+238
+0 0 0 0 0 16 24 4 0 -0.0625 0.9375 0 2.8396262443943e+238
+0 0 0 0 0 16 28 4 0 -0.0625 1.4375 0 2.8396262443943e+238
+0 0 0 0 0 16 32 4 0 -0.0625 1.9375 0 2.8396262443943e+238
+
+
+0 0 1 0 0 18 6 4 0 0.1875 -1.3125 0 2.8396262443943e+238
+0 0 1 0 0 18 8 4 0 0.1875 -1.0625 0 2.8396262443943e+238
+0 0 1 0 0 18 10 4 0 0.1875 -0.8125 0 2.8396262443943e+238
+0 0 1 0 0 18 12 4 0 0.1875 -0.5625 0 2.8396262443943e+238
+0 0 1 0 0 18 14 4 0 0.1875 -0.3125 0 2.8396262443943e+238
+0 0 1 0 0 18 16 4 0 0.1875 -0.0625 0 2.8396262443943e+238
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 18 20 4 0 0.1875 0.4375 0 2.8396262443943e+238
+0 0 1 0 0 18 22 4 0 0.1875 0.6875 0 2.8396262443943e+238
+0 0 1 0 0 18 24 4 0 0.1875 0.9375 0 2.8396262443943e+238
+0 0 1 0 0 18 26 4 0 0.1875 1.1875 0 2.8396262443943e+238
+
+
+0 0 2 0 0 17 11 4 0 0.0625 -0.6875 0 2.8396262443943e+238
+0 0 2 0 0 17 12 4 0 0.0625 -0.5625 0 2.8396262443943e+238
+0 0 2 0 0 17 13 4 0 0.0625 -0.4375 0 2.8396262443943e+238
+0 0 2 0 0 17 14 4 0 0.0625 -0.3125 0 2.8396262443943e+238
+0 0 2 0 0 17 15 4 0 0.0625 -0.1875 0 2.8396262443943e+238
+0 0 2 0 0 17 16 4 0 0.0625 -0.0625 0 2.8396262443943e+238
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 17 18 4 0 0.0625 0.1875 0 2.8396262443943e+238
+0 0 2 0 0 17 19 4 0 0.0625 0.3125 0 2.8396262443943e+238
+0 0 2 0 0 17 20 4 0 0.0625 0.4375 0 2.8396262443943e+238
+0 0 2 0 0 17 21 4 0 0.0625 0.5625 0 2.8396262443943e+238
+
+
diff --git a/test/teukolskyID/Psi4i.z.asc b/test/teukolskyID/Psi4i.z.asc
new file mode 100644
index 0000000..4bc514e
--- /dev/null
+++ b/test/teukolskyID/Psi4i.z.asc
@@ -0,0 +1,28 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 16 0 0 -0.0625 -0.0625 -0.5 -2.8396262443943e+238
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 16 8 0 -0.0625 -0.0625 0.5 2.8396262443943e+238
+0 0 0 0 0 16 16 12 0 -0.0625 -0.0625 1 2.8396262443943e+238
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 2.8396262443943e+238
+0 0 0 0 0 16 16 20 0 -0.0625 -0.0625 2 2.8396262443943e+238
+
+
+0 0 1 0 0 16 16 2 0 -0.0625 -0.0625 -0.25 -2.8396262443943e+238
+0 0 1 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 1 0 0 16 16 6 0 -0.0625 -0.0625 0.25 2.8396262443943e+238
+0 0 1 0 0 16 16 8 0 -0.0625 -0.0625 0.5 2.8396262443943e+238
+0 0 1 0 0 16 16 10 0 -0.0625 -0.0625 0.75 2.8396262443943e+238
+0 0 1 0 0 16 16 12 0 -0.0625 -0.0625 1 2.8396262443943e+238
+0 0 1 0 0 16 16 14 0 -0.0625 -0.0625 1.25 2.8396262443943e+238
+
+
+0 0 2 0 0 16 16 3 0 -0.0625 -0.0625 -0.125 2.8396262443943e+238
+0 0 2 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 2 0 0 16 16 5 0 -0.0625 -0.0625 0.125 2.8396262443943e+238
+0 0 2 0 0 16 16 6 0 -0.0625 -0.0625 0.25 2.8396262443943e+238
+0 0 2 0 0 16 16 7 0 -0.0625 -0.0625 0.375 2.8396262443943e+238
+0 0 2 0 0 16 16 8 0 -0.0625 -0.0625 0.5 2.8396262443943e+238
+0 0 2 0 0 16 16 9 0 -0.0625 -0.0625 0.625 2.8396262443943e+238
+
+
diff --git a/test/teukolskyID/Psi4r.d.asc b/test/teukolskyID/Psi4r.d.asc
new file mode 100644
index 0000000..846bbfe
--- /dev/null
+++ b/test/teukolskyID/Psi4r.d.asc
@@ -0,0 +1,67 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 0 0 0 -2.0625 -2.0625 -0.5 2.8396262443943e+238
+0 0 0 0 0 4 4 4 0 -1.5625 -1.5625 0 2.8396262443943e+238
+0 0 0 0 0 8 8 8 0 -1.0625 -1.0625 0.5 2.8396262443943e+238
+0 0 0 0 0 12 12 12 0 -0.5625 -0.5625 1 2.8396262443943e+238
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 2.8396262443943e+238
+0 0 0 0 0 20 20 20 0 0.4375 0.4375 2 2.8396262443943e+238
+#
+#
+#
+
+
+#
+#
+#
+0 0 1 0 0 6 6 6 0 -1.3125 -1.3125 0.25 2.8396262443943e+238
+0 0 1 0 0 8 8 8 0 -1.0625 -1.0625 0.5 2.8396262443943e+238
+0 0 1 0 0 10 10 10 0 -0.8125 -0.8125 0.75 2.8396262443943e+238
+0 0 1 0 0 12 12 12 0 -0.5625 -0.5625 1 2.8396262443943e+238
+0 0 1 0 0 14 14 14 0 -0.3125 -0.3125 1.25 2.8396262443943e+238
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+#
+
+
diff --git a/test/teukolskyID/Psi4r.x.asc b/test/teukolskyID/Psi4r.x.asc
new file mode 100644
index 0000000..3b0157f
--- /dev/null
+++ b/test/teukolskyID/Psi4r.x.asc
@@ -0,0 +1,39 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 0 16 4 0 -2.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 4 16 4 0 -1.5625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 8 16 4 0 -1.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 12 16 4 0 -0.5625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 20 16 4 0 0.4375 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 24 16 4 0 0.9375 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 28 16 4 0 1.4375 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 32 16 4 0 1.9375 -0.0625 0 2.8396262443943e+238
+
+
+0 0 1 0 0 6 18 4 0 -1.3125 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 8 18 4 0 -1.0625 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 10 18 4 0 -0.8125 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 12 18 4 0 -0.5625 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 14 18 4 0 -0.3125 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 16 18 4 0 -0.0625 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 20 18 4 0 0.4375 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 22 18 4 0 0.6875 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 24 18 4 0 0.9375 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 26 18 4 0 1.1875 0.1875 0 2.8396262443943e+238
+
+
+0 0 2 0 0 11 17 4 0 -0.6875 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 12 17 4 0 -0.5625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 13 17 4 0 -0.4375 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 14 17 4 0 -0.3125 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 15 17 4 0 -0.1875 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 16 17 4 0 -0.0625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 18 17 4 0 0.1875 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 19 17 4 0 0.3125 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 20 17 4 0 0.4375 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 21 17 4 0 0.5625 0.0625 0 2.8396262443943e+238
+
+
diff --git a/test/teukolskyID/Psi4r.y.asc b/test/teukolskyID/Psi4r.y.asc
new file mode 100644
index 0000000..55653ce
--- /dev/null
+++ b/test/teukolskyID/Psi4r.y.asc
@@ -0,0 +1,39 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 0 4 0 -0.0625 -2.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 4 4 0 -0.0625 -1.5625 0 2.8396262443943e+238
+0 0 0 0 0 16 8 4 0 -0.0625 -1.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 12 4 0 -0.0625 -0.5625 0 2.8396262443943e+238
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 20 4 0 -0.0625 0.4375 0 2.8396262443943e+238
+0 0 0 0 0 16 24 4 0 -0.0625 0.9375 0 2.8396262443943e+238
+0 0 0 0 0 16 28 4 0 -0.0625 1.4375 0 2.8396262443943e+238
+0 0 0 0 0 16 32 4 0 -0.0625 1.9375 0 2.8396262443943e+238
+
+
+0 0 1 0 0 18 6 4 0 0.1875 -1.3125 0 2.8396262443943e+238
+0 0 1 0 0 18 8 4 0 0.1875 -1.0625 0 2.8396262443943e+238
+0 0 1 0 0 18 10 4 0 0.1875 -0.8125 0 2.8396262443943e+238
+0 0 1 0 0 18 12 4 0 0.1875 -0.5625 0 2.8396262443943e+238
+0 0 1 0 0 18 14 4 0 0.1875 -0.3125 0 2.8396262443943e+238
+0 0 1 0 0 18 16 4 0 0.1875 -0.0625 0 2.8396262443943e+238
+0 0 1 0 0 18 18 4 0 0.1875 0.1875 0 2.8396262443943e+238
+0 0 1 0 0 18 20 4 0 0.1875 0.4375 0 2.8396262443943e+238
+0 0 1 0 0 18 22 4 0 0.1875 0.6875 0 2.8396262443943e+238
+0 0 1 0 0 18 24 4 0 0.1875 0.9375 0 2.8396262443943e+238
+0 0 1 0 0 18 26 4 0 0.1875 1.1875 0 2.8396262443943e+238
+
+
+0 0 2 0 0 17 11 4 0 0.0625 -0.6875 0 2.8396262443943e+238
+0 0 2 0 0 17 12 4 0 0.0625 -0.5625 0 2.8396262443943e+238
+0 0 2 0 0 17 13 4 0 0.0625 -0.4375 0 2.8396262443943e+238
+0 0 2 0 0 17 14 4 0 0.0625 -0.3125 0 2.8396262443943e+238
+0 0 2 0 0 17 15 4 0 0.0625 -0.1875 0 2.8396262443943e+238
+0 0 2 0 0 17 16 4 0 0.0625 -0.0625 0 2.8396262443943e+238
+0 0 2 0 0 17 17 4 0 0.0625 0.0625 0 2.8396262443943e+238
+0 0 2 0 0 17 18 4 0 0.0625 0.1875 0 2.8396262443943e+238
+0 0 2 0 0 17 19 4 0 0.0625 0.3125 0 2.8396262443943e+238
+0 0 2 0 0 17 20 4 0 0.0625 0.4375 0 2.8396262443943e+238
+0 0 2 0 0 17 21 4 0 0.0625 0.5625 0 2.8396262443943e+238
+
+
diff --git a/test/teukolskyID/Psi4r.z.asc b/test/teukolskyID/Psi4r.z.asc
new file mode 100644
index 0000000..1a072bf
--- /dev/null
+++ b/test/teukolskyID/Psi4r.z.asc
@@ -0,0 +1,28 @@
+# 1D ASCII output created by CarpetIOASCII
+#
+0 0 0 0 0 16 16 0 0 -0.0625 -0.0625 -0.5 2.8396262443943e+238
+0 0 0 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 0 0 0 16 16 8 0 -0.0625 -0.0625 0.5 2.8396262443943e+238
+0 0 0 0 0 16 16 12 0 -0.0625 -0.0625 1 2.8396262443943e+238
+0 0 0 0 0 16 16 16 0 -0.0625 -0.0625 1.5 2.8396262443943e+238
+0 0 0 0 0 16 16 20 0 -0.0625 -0.0625 2 2.8396262443943e+238
+
+
+0 0 1 0 0 16 16 2 0 -0.0625 -0.0625 -0.25 2.8396262443943e+238
+0 0 1 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 1 0 0 16 16 6 0 -0.0625 -0.0625 0.25 2.8396262443943e+238
+0 0 1 0 0 16 16 8 0 -0.0625 -0.0625 0.5 2.8396262443943e+238
+0 0 1 0 0 16 16 10 0 -0.0625 -0.0625 0.75 2.8396262443943e+238
+0 0 1 0 0 16 16 12 0 -0.0625 -0.0625 1 2.8396262443943e+238
+0 0 1 0 0 16 16 14 0 -0.0625 -0.0625 1.25 2.8396262443943e+238
+
+
+0 0 2 0 0 16 16 3 0 -0.0625 -0.0625 -0.125 2.8396262443943e+238
+0 0 2 0 0 16 16 4 0 -0.0625 -0.0625 0 2.8396262443943e+238
+0 0 2 0 0 16 16 5 0 -0.0625 -0.0625 0.125 2.8396262443943e+238
+0 0 2 0 0 16 16 6 0 -0.0625 -0.0625 0.25 2.8396262443943e+238
+0 0 2 0 0 16 16 7 0 -0.0625 -0.0625 0.375 2.8396262443943e+238
+0 0 2 0 0 16 16 8 0 -0.0625 -0.0625 0.5 2.8396262443943e+238
+0 0 2 0 0 16 16 9 0 -0.0625 -0.0625 0.625 2.8396262443943e+238
+
+