aboutsummaryrefslogtreecommitdiff
path: root/schedule.ccl
blob: bf0675e9de76bee76f07e3ceb574589ea55fc91e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Schedule definitions for thorn AHFinderDirect
# $Header$

schedule AHFinderDirect_setup at CCTK_BASEGRID after SpatialCoordinates
	 {
	 lang: C
	 options: global
	 } "setup data structures"

if (find_every != 0)
	{
	schedule AHFinderDirect_find_horizons at CCTK_ANALYSIS
		 {
		 lang: C
		 options: global
		 } "maybe find apparent horizon(s) after this time step"

	if (which_horizon_to_announce_centroid != 0)
		{
		schedule AHFinderDirect_announce at CCTK_ANALYSIS \
                   before DriftCorrect \
		   after AHFinderDirect_find_horizons
			 {
			 lang: C
			 } "maybe announce horizon position(s) to other thorns"
		}
	schedule AHFinderDirect_store_SS_info at CCTK_ANALYSIS \
	   after AHFinderDirect_find_horizons
		 {
		 lang: C
		 options: global
		 } "maybe store horizon info in SphericalSurface variables"

	#
	# *** KLUDGE ***
	#
	# We would really like to give this routine the
	#	options:global
	# attribute, so it only runs on those time levels where
	# we've found (or at least tried to find) horizons.  But
	# this doesn't work, because we need a GH -- and the other
	# thorns' routines we call need valid grid variables in
	# it -- in the announcing code, and  options:global
	# routines don't have a "normal" GH, but instead a special
	# one without usual grid variables defined in the usual
	# manner.
	#
	# So, what to do?  The present kludge is to have this
	# routine called on every grid, then have it explicitly
	# test if it's at a horizon-finding time and on a base
	# grid.
	#
	schedule AHFinderDirect_maybe_do_masks at CCTK_ANALYSIS \
	   after AHFinderDirect_find_horizons
		 {
		 lang: C
		 } "maybe set mask(s) based on apparent horizon position(s)"

	# if using mesh refinement, reset the mask after regridding
	# if not using mesh refinement, POSTREGRID is ignored so this is a no-op
	schedule AHFinderDirect_maybe_do_masks at POSTREGRID \
	   after (MaskOne MaskZero)
		 {
		 lang: C
		 } "maybe set mask(s) based on apparent horizon position(s)"
	
	}

########################################

##
## uncomment this if you want to use the test driver
##	src/util/test_patch_system.cc
##
##schedule test_patch_system at CCTK_POSTINITIAL
##{
##LANG: C
##OPTIONS: global
##} "test driver to verify that src/util/ and src/jtutil/ code works properly"