aboutsummaryrefslogtreecommitdiff
path: root/src/macro/DXYDG_declare.h
blob: c979e584de541cfd29d57ae570c8a67444a82502 (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
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
/*@@
  @header   DXYDG_declare.h
  @date     Jun 98
  @author   Gabrielle Allen
  @desc
  Declaration for macro to calculate the (first and) second derivatives 
  of the physical metric with respect to x,y

  The macro uses @seefile DXDG_guts.h , @seefile DYDG_guts.h and 
  @seefile DXDG_declare.h , @seefile DYDG_declare.h
  @enddesc
@@*/

#ifndef DXYDG_DECLARE
#define DXYDG_DECLARE

#include "DXDG_declare.h"
#include "DYDG_declare.h"

#ifdef FCODE

/* Input variables */
#undef  DXYDG_GXX_IPJP 
#define DXYDG_GXX_IPJP gxx(i+1,j+1,k)
#undef  DXYDG_GXX_IPJM 
#define DXYDG_GXX_IPJM gxx(i+1,j-1,k)
#undef  DXYDG_GXX_IMJP 
#define DXYDG_GXX_IMJP gxx(i-1,j+1,k)
#undef  DXYDG_GXX_IMJM 
#define DXYDG_GXX_IMJM gxx(i-1,j-1,k)

#undef  DXYDG_GXY_IPJP 
#define DXYDG_GXY_IPJP gxy(i+1,j+1,k)
#undef  DXYDG_GXY_IPJM 
#define DXYDG_GXY_IPJM gxy(i+1,j-1,k)
#undef  DXYDG_GXY_IMJP 
#define DXYDG_GXY_IMJP gxy(i-1,j+1,k)
#undef  DXYDG_GXY_IMJM 
#define DXYDG_GXY_IMJM gxy(i-1,j-1,k)

#undef  DXYDG_GXZ_IPJP 
#define DXYDG_GXZ_IPJP gxz(i+1,j+1,k)
#undef  DXYDG_GXZ_IPJM 
#define DXYDG_GXZ_IPJM gxz(i+1,j-1,k)
#undef  DXYDG_GXZ_IMJP 
#define DXYDG_GXZ_IMJP gxz(i-1,j+1,k)
#undef  DXYDG_GXZ_IMJM 
#define DXYDG_GXZ_IMJM gxz(i-1,j-1,k)

#undef  DXYDG_GYY_IPJP 
#define DXYDG_GYY_IPJP gyy(i+1,j+1,k)
#undef  DXYDG_GYY_IPJM 
#define DXYDG_GYY_IPJM gyy(i+1,j-1,k)
#undef  DXYDG_GYY_IMJP 
#define DXYDG_GYY_IMJP gyy(i-1,j+1,k)
#undef  DXYDG_GYY_IMJM 
#define DXYDG_GYY_IMJM gyy(i-1,j-1,k)

#undef  DXYDG_GYZ_IPJP 
#define DXYDG_GYZ_IPJP gyz(i+1,j+1,k)
#undef  DXYDG_GYZ_IPJM 
#define DXYDG_GYZ_IPJM gyz(i+1,j-1,k)
#undef  DXYDG_GYZ_IMJP 
#define DXYDG_GYZ_IMJP gyz(i-1,j+1,k)
#undef  DXYDG_GYZ_IMJM 
#define DXYDG_GYZ_IMJM gyz(i-1,j-1,k)

#undef  DXYDG_GZZ_IPJP 
#define DXYDG_GZZ_IPJP gzz(i+1,j+1,k)
#undef  DXYDG_GZZ_IPJM 
#define DXYDG_GZZ_IPJM gzz(i+1,j-1,k)
#undef  DXYDG_GZZ_IMJP 
#define DXYDG_GZZ_IMJP gzz(i-1,j+1,k)
#undef  DXYDG_GZZ_IMJM 
#define DXYDG_GZZ_IMJM gzz(i-1,j-1,k)

/* Output variables */
#undef  DXYDG_DXYDGXX
#define DXYDG_DXYDGXX deldelg1211
#undef  DXYDG_DXYDGXY
#define DXYDG_DXYDGXY deldelg1212
#undef  DXYDG_DXYDGXZ
#define DXYDG_DXYDGXZ deldelg1213
#undef  DXYDG_DXYDGYY
#define DXYDG_DXYDGYY deldelg1222
#undef  DXYDG_DXYDGYZ
#define DXYDG_DXYDGYZ deldelg1223
#undef  DXYDG_DXYDGZZ
#define DXYDG_DXYDGZZ deldelg1233

/* Internal variables */
#undef  DXYDG_FAC 
#define DXYDG_FAC dxydg_fac
#undef  DXYDG_OO4DXDY
#define DXYDG_OO4DXDY dxydg_oo4dxdy
#undef  DXYDG_DXYDPSI_O_PSI
#define DXYDG_DXYDPSI_O_PSI psixy(i,j,k)

/* Declare internal variables */
      CCTK_REAL DXYDG_FAC
      CCTK_REAL DXYDG_OO4DXDY 

/* Declare output variables */
      CCTK_REAL DXYDG_DXYDGXX
      CCTK_REAL DXYDG_DXYDGXY
      CCTK_REAL DXYDG_DXYDGXZ
      CCTK_REAL DXYDG_DXYDGYY
      CCTK_REAL DXYDG_DXYDGYZ
      CCTK_REAL DXYDG_DXYDGZZ

#endif

#ifdef CCODE

/* Input variables */
#undef  DXYDG_GXX_IPJP 
#define DXYDG_GXX_IPJP gxx[ di + dj + ijk]
#undef  DXYDG_GXX_IPJM 
#define DXYDG_GXX_IPJM gxx[ di - dj + ijk]
#undef  DXYDG_GXX_IMJP 
#define DXYDG_GXX_IMJP gxx[-di + dj + ijk]
#undef  DXYDG_GXX_IMJM 
#define DXYDG_GXX_IMJM gxx[-di - dj + ijk]

#undef  DXYDG_GXY_IPJP 
#define DXYDG_GXY_IPJP gxy[ di + dj + ijk]
#undef  DXYDG_GXY_IPJM 
#define DXYDG_GXY_IPJM gxy[ di - dj + ijk]
#undef  DXYDG_GXY_IMJP 
#define DXYDG_GXY_IMJP gxy[-di + dj + ijk]
#undef  DXYDG_GXY_IMJM 
#define DXYDG_GXY_IMJM gxy[-di - dj + ijk]

#undef  DXYDG_GXZ_IPJP 
#define DXYDG_GXZ_IPJP gxz[ di + dj + ijk]
#undef  DXYDG_GXZ_IPJM 
#define DXYDG_GXZ_IPJM gxz[ di - dj + ijk]
#undef  DXYDG_GXZ_IMJP 
#define DXYDG_GXZ_IMJP gxz[-di + dj + ijk]
#undef  DXYDG_GXZ_IMJM 
#define DXYDG_GXZ_IMJM gxz[-di - dj + ijk]

#undef  DXYDG_GYY_IPJP 
#define DXYDG_GYY_IPJP gyy[ di + dj + ijk]
#undef  DXYDG_GYY_IPJM 
#define DXYDG_GYY_IPJM gyy[ di - dj + ijk]
#undef  DXYDG_GYY_IMJP 
#define DXYDG_GYY_IMJP gyy[-di + dj + ijk]
#undef  DXYDG_GYY_IMJM 
#define DXYDG_GYY_IMJM gyy[-di - dj + ijk]

#undef  DXYDG_GYZ_IPJP 
#define DXYDG_GYZ_IPJP gyz[ di + dj + ijk]
#undef  DXYDG_GYZ_IPJM 
#define DXYDG_GYZ_IPJM gyz[ di - dj + ijk]
#undef  DXYDG_GYZ_IMJP 
#define DXYDG_GYZ_IMJP gyz[-di + dj + ijk]
#undef  DXYDG_GYZ_IMJM 
#define DXYDG_GYZ_IMJM gyz[-di - dj + ijk]

#undef  DXYDG_GZZ_IPJP 
#define DXYDG_GZZ_IPJP gzz[ di + dj + ijk]
#undef  DXYDG_GZZ_IPJM 
#define DXYDG_GZZ_IPJM gzz[ di - dj + ijk]
#undef  DXYDG_GZZ_IMJP 
#define DXYDG_GZZ_IMJP gzz[-di + dj + ijk]
#undef  DXYDG_GZZ_IMJM 
#define DXYDG_GZZ_IMJM gzz[-di - dj + ijk]

/* Output variables */
#undef  DXYDG_DXYDGXX
#define DXYDG_DXYDGXX deldelg1211
#undef  DXYDG_DXYDGXY
#define DXYDG_DXYDGXY deldelg1212
#undef  DXYDG_DXYDGXZ
#define DXYDG_DXYDGXZ deldelg1213
#undef  DXYDG_DXYDGYY
#define DXYDG_DXYDGYY deldelg1222
#undef  DXYDG_DXYDGYZ
#define DXYDG_DXYDGYZ deldelg1223
#undef  DXYDG_DXYDGZZ
#define DXYDG_DXYDGZZ deldelg1233

/* Internal variables */
#undef  DXYDG_FAC 
#define DXYDG_FAC dxydg_fac
#undef  DXYDG_OO4DXDY
#define DXYDG_OO4DXDY dxydg_oo4dxdy
#undef  DXYDG_DXYDPSI_O_PSI
#define DXYDG_DXYDPSI_O_PSI psixy[ijk]

/* Declare internal variables */
double DXYDG_FAC;
double DXYDG_OO4DXDY = 1/(4*cctkGH->cctk_delta_space[0]*cctkGH->cctk_delta_space[1]);

/* Declare output variables */
double DXYDG_DXYDGXX;
double DXYDG_DXYDGXY;
double DXYDG_DXYDGXZ;
double DXYDG_DXYDGYY;
double DXYDG_DXYDGYZ;
double DXYDG_DXYDGZZ;

#endif

#endif