-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathschedule.ccl
135 lines (110 loc) · 3.32 KB
/
schedule.ccl
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Schedule definitions for thorn ADMBaseX
if (CCTK_IsThornActive("ODESolvers")) {
SCHEDULE GROUP ADMBaseX_InitialData IN ODESolvers_Initial
{
} "Schedule group for calculating ADM initial data"
SCHEDULE GROUP ADMBaseX_InitialGauge IN ODESolvers_Initial AFTER ADMBaseX_InitialData
{
} "Schedule group for the ADM initial gauge condition"
SCHEDULE GROUP ADMBaseX_PostInitial IN ODESolvers_Initial AFTER (ADMBaseX_InitialData ADMBaseX_InitialGauge)
{
} "Schedule group for modifying the ADM initial data, such as e.g. adding noise"
SCHEDULE GROUP ADMBaseX_SetADMVars IN ODESolvers_PostStep
{
} "Set ADM variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMRHS IN ODESolvers_PostStep
{
} "Set ADM RHS variables in this group"
} else {
SCHEDULE GROUP ADMBaseX_SetADMVars AT post_recover_variables
{
} "Set ADM variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMRHS AT post_recover_variables
{
} "Set ADM RHS variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMVars AT postregrid
{
} "Set ADM variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMRHS AT postregrid
{
} "Set ADM RHS variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMVars AT postrestrict
{
} "Set ADM variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMRHS AT postrestrict
{
} "Set ADM RHS variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMVars AT poststep
{
} "Set ADM variables in this group"
SCHEDULE GROUP ADMBaseX_SetADMRHS AT poststep
{
} "Set ADM RHS variables in this group"
}
if (CCTK_EQUALS(initial_data, "Cartesian Minkowski")) {
SCHEDULE ADMBaseX_initial_data IN ADMBaseX_InitialData
{
LANG: C
WRITES: metric(everywhere) curv(everywhere)
} "Set up Cartesian Minkowski initial data"
} else if (CCTK_EQUALS(initial_data, "linear wave")) {
SCHEDULE ADMBaseX_linear_wave IN ADMBaseX_InitialData
{
LANG: C
WRITES: metric(everywhere) curv(everywhere)
} "Set up linear wave initial data"
}
if (CCTK_EQUALS(initial_lapse, "one")) {
SCHEDULE ADMBaseX_initial_lapse IN ADMBaseX_InitialGauge
{
LANG: C
WRITES: lapse(everywhere)
} "Set lapse to one"
}
if (CCTK_EQUALS(initial_dtlapse, "zero")) {
SCHEDULE ADMBaseX_initial_dtlapse IN ADMBaseX_InitialGauge
{
LANG: C
WRITES: dtlapse(everywhere)
} "Set dtlapse to zero"
}
if (CCTK_EQUALS(initial_shift, "zero")) {
SCHEDULE ADMBaseX_initial_shift IN ADMBaseX_InitialGauge
{
LANG: C
WRITES: shift(everywhere)
} "Set shift to zero"
}
if (CCTK_EQUALS(initial_dtshift, "zero")) {
SCHEDULE ADMBaseX_initial_dtshift IN ADMBaseX_InitialGauge
{
LANG: C
WRITES: dtshift(everywhere)
} "Set dtshift to zero"
}
if (noise_amplitude != 0) {
# TODO: Also add noise during evolution?
# TODO: Noise should be added by a separate thorn.
SCHEDULE ADMBaseX_add_noise IN ADMBaseX_PostInitial
{
LANG: C
READS: metric(interior)
READS: curv(interior)
READS: lapse(interior)
READS: dtlapse(interior)
READS: shift(interior)
READS: dtshift(interior)
WRITES: metric(interior)
WRITES: curv(interior)
WRITES: lapse(interior)
WRITES: dtlapse(interior)
WRITES: shift(interior)
WRITES: dtshift(interior)
SYNC: metric
SYNC: curv
SYNC: lapse
SYNC: dtlapse
SYNC: shift
SYNC: dtshift
} "Add noise to ADMBaseX variables"
}