CosmoGRaPH v0.0
bssn_data.h
1 #ifndef COSMO_BSSN_DATA
2 #define COSMO_BSSN_DATA
3 
4 #include "../../cosmo_macros.h"
5 #include "../../cosmo_types.h"
6 #include "bssn_macros.h"
7 
8 namespace cosmo
9 {
10 
18 typedef struct {
19 
20  idx_t i, j, k, idx;
21 
22  // local copies of current field values
23  BSSN_APPLY_TO_FIELDS(DECLARE_REAL_T)
24  // Source terms
25  BSSN_APPLY_TO_SOURCES(DECLARE_REAL_T)
26  // "extra" fields
27  BSSN_APPLY_TO_GEN1_EXTRAS(DECLARE_REAL_T)
28 
29  // non-differenced quantities
30  real_t phi;
31  real_t K;
32  real_t r;
33  real_t S;
34  real_t alpha;
35  real_t gamma11,
36  gamma12,
37  gamma13,
38  gamma22,
39  gamma23,
40  gamma33;
41  real_t gammai11,
42  gammai12,
43  gammai13,
44  gammai22,
45  gammai23,
46  gammai33;
47 
48  // generic var for misc. expressions
49  real_t trace,
50  expression;
51 
52  // ricci tensor components
53  real_t ricci11,
54  ricci12,
55  ricci13,
56  ricci22,
57  ricci23,
58  ricci33;
59  real_t ricciTF11,
60  ricciTF12,
61  ricciTF13,
62  ricciTF22,
63  ricciTF23,
64  ricciTF33;
65  real_t Uricci11,
66  Uricci12,
67  Uricci13,
68  Uricci22,
69  Uricci23,
70  Uricci33;
71  real_t unitRicci;
72  // for constraint checking
73 
74  // derivatives of \alpha
75  // covariant double-derivatives
76  real_t D1D1aTF,
77  D1D2aTF,
78  D1D3aTF,
79  D2D2aTF,
80  D2D3aTF,
81  D3D3aTF;
82  real_t DDaTR;
83  // normal derivatives of
84  real_t d1a,
85  d2a,
86  d3a;
87 
88  // derivatives of phi
89  // covariant double-derivatives
90  real_t D1D1phi,
91  D1D2phi,
92  D1D3phi,
93  D2D2phi,
94  D2D3phi,
95  D3D3phi;
96  // normal derivatives of
97  real_t d1phi,
98  d2phi,
99  d3phi;
100  real_t d1d1phi,
101  d1d2phi,
102  d1d3phi,
103  d2d2phi,
104  d2d3phi,
105  d3d3phi;
106 
107  // ders of K
108  real_t d1K,
109  d2K,
110  d3K;
111 
112  // Contravariant (upstairs index) ext. curvature
113  real_t Acont11,
114  Acont12,
115  Acont13,
116  Acont22,
117  Acont23,
118  Acont33;
119 
120  // Christoffel symbols
121  real_t G111,
122  G112,
123  G113,
124  G122,
125  G123,
126  G133,
127  G211,
128  G212,
129  G213,
130  G222,
131  G223,
132  G233,
133  G311,
134  G312,
135  G313,
136  G322,
137  G323,
138  G333;
139 
140  // Lowered index christoffel symbols
141  real_t GL111,
142  GL112,
143  GL113,
144  GL122,
145  GL123,
146  GL133,
147  GL211,
148  GL212,
149  GL213,
150  GL222,
151  GL223,
152  GL233,
153  GL311,
154  GL312,
155  GL313,
156  GL322,
157  GL323,
158  GL333;
159 
160  // contraction of christoffel symbols ("Gamma_d" in Z4c)
161  real_t Gammad1,
162  Gammad2,
163  Gammad3;
164 
165  // derivatives of the metric, d_i g_jk
166  real_t d1g11,
167  d1g12,
168  d1g13,
169  d1g22,
170  d1g23,
171  d1g33,
172  d2g11,
173  d2g12,
174  d2g13,
175  d2g22,
176  d2g23,
177  d2g33,
178  d3g11,
179  d3g12,
180  d3g13,
181  d3g22,
182  d3g23,
183  d3g33;
184 
185  // second derivatives of the metric d_i d_j g_kl
186  real_t d1d1g11,
187  d1d1g12,
188  d1d1g13,
189  d1d1g22,
190  d1d1g23,
191  d1d1g33,
192  d1d2g11,
193  d1d2g12,
194  d1d2g13,
195  d1d2g22,
196  d1d2g23,
197  d1d2g33,
198  d1d3g11,
199  d1d3g12,
200  d1d3g13,
201  d1d3g22,
202  d1d3g23,
203  d1d3g33,
204  d2d2g11,
205  d2d2g12,
206  d2d2g13,
207  d2d2g22,
208  d2d2g23,
209  d2d2g33,
210  d2d3g11,
211  d2d3g12,
212  d2d3g13,
213  d2d3g22,
214  d2d3g23,
215  d2d3g33,
216  d3d3g11,
217  d3d3g12,
218  d3d3g13,
219  d3d3g22,
220  d3d3g23,
221  d3d3g33;
222 
223  // Full metric ("m") and inverse ("mi") (needed for fluid)
224  real_t m00 , m01 , m02 , m03 , m11 , m12 , m13 , m22 , m23 , m33 ;
225  real_t mi00 , mi01 , mi02 , mi03 , mi11 , mi12 , mi13 , mi22 , mi23 , mi33 ;
226 
227  // derivatives of full metric ("m") (needed for fluid)
228  real_t d1m00 , d1m01 , d1m02 , d1m03 , d1m11 , d1m12 , d1m13 , d1m22 , d1m23 , d1m33 ,
229  d2m00 , d2m01 , d2m02 , d2m03 , d2m11 , d2m12 , d2m13 , d2m22 , d2m23 , d2m33 ,
230  d3m00 , d3m01 , d3m02 , d3m03 , d3m11 , d3m12 , d3m13 , d3m22 , d3m23 , d3m33 ;
232  // H constraint calc.
233  real_t H;
234  // Misc. debugging calc
235  real_t db;
237  // additional variables to handle absence of Z4c terms in macros
238  // (make sure these get initialized to 0!)
239  #if !USE_Z4c_DAMPING
240  real_t theta;
241  #endif
242  real_t d1theta,
243  d2theta,
244  d3theta;
245 
246  // additional variables to handle absence of shift terms in macros
247  // (make sure these get initialized to 0!)
248  real_t d1beta1,
249  d2beta1,
250  d3beta1;
251  real_t d1beta2,
252  d2beta2,
253  d3beta2;
254  real_t d1beta3,
255  d2beta3,
256  d3beta3;
257  #if !USE_BSSN_SHIFT
258  real_t beta1;
259  real_t beta2;
260  real_t beta3;
261  #endif
262 
263  #if USE_BSSN_SHIFT
264  real_t d1expN,
265  d2expN,
266  d3expN;
267  #endif
268  // Reference FRW quantities
269  real_t phi_FRW;
270  real_t K_FRW;
271  real_t rho_FRW,
272  S_FRW;
273 
274  // average K, rho
275  real_t K_avg, rho_avg, avg_vol;
276 
277 } BSSNData;
278 
279 } /* namespace cosmo */
280 
281 #endif
Definition: bardeen.cc:5
Structure containing BSSN metric variables and various derived quantities, such as derivatives of BSS...
Definition: bssn_data.h:18