aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorreisswig <reisswig@a2659f00-0f4f-0410-9214-a4596bbb8a4f>2008-10-05 01:51:48 +0000
committerreisswig <reisswig@a2659f00-0f4f-0410-9214-a4596bbb8a4f>2008-10-05 01:51:48 +0000
commit4fe9f81a717896a25c4f982d0658f0514d59e895 (patch)
tree103d8d64d253b9b801897a23e328b82a9280c491
parentd88e493e4a617cfc474785105503006df9b30eeb (diff)
Add capability to store puncture locations in spherical surfaces so that
CarpetMask can still exclude the region around the punctures. git-svn-id: http://svn.aei.mpg.de/numrel/AEIThorns/PunctureTracker/trunk@12 a2659f00-0f4f-0410-9214-a4596bbb8a4f
-rw-r--r--interface.ccl2
-rw-r--r--param.ccl14
-rw-r--r--src/make.code.defn2
-rw-r--r--src/puncture_tracker.c13
4 files changed, 29 insertions, 2 deletions
diff --git a/interface.ccl b/interface.ccl
index cfc47a6..484ee68 100644
--- a/interface.ccl
+++ b/interface.ccl
@@ -2,7 +2,7 @@
IMPLEMENTS: PunctureTracker
-INHERITS: ADMBase CarpetRegrid2
+INHERITS: ADMBase CarpetRegrid2 SphericalSurface
diff --git a/param.ccl b/param.ccl
index 8e38121..89ac90e 100644
--- a/param.ccl
+++ b/param.ccl
@@ -37,3 +37,17 @@ INT new_reflevel_number[2] "The new number of refinement levels"
{
-1:* :: "Negative for no change"
} -1
+
+
+INT which_surface_to_store_info[10] "A spherical surface index where we can store the puncture location"
+{
+ -1 :: "don't store puncture location"
+ 0:* :: "any spherical surface index"
+} -1
+
+
+PRIVATE:
+
+SHARES: SphericalSurface
+
+USES CCTK_INT nsurfaces \ No newline at end of file
diff --git a/src/make.code.defn b/src/make.code.defn
index 31baa1c..26c754a 100644
--- a/src/make.code.defn
+++ b/src/make.code.defn
@@ -1,7 +1,7 @@
# Main make.code.defn file for thorn PunctureTracker -*-Makefile-*-
# Source files in this directory
-SRCS = puncture_tracker.c
+SRCS = puncture_tracker.c paramcheck.cc
# Subdirectories containing source files
SUBDIRS =
diff --git a/src/puncture_tracker.c b/src/puncture_tracker.c
index 4e36c1f..9dee438 100644
--- a/src/puncture_tracker.c
+++ b/src/puncture_tracker.c
@@ -298,6 +298,19 @@ PunctureTracker_SetPositions (CCTK_ARGUMENTS)
position_z[n] = pt_loc_z[n];
}
+
+ // store puncture location in spherical surface
+ if (which_surface_to_store_info[n] != -1)
+ {
+ int sn = which_surface_to_store_info[n];
+
+ sf_origin_x[sn] = position_x[n];
+ sf_origin_y[sn] = position_y[n];
+ sf_origin_z[sn] = position_z[n];
+
+ sf_active[sn] = 1;
+ }
+
}
if ( modify_puncture[0]>=0 && modify_puncture[0]<max_num_tracked &&