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
|
// cg.hh -- interface between machine-generated and other code
// $Id$
//
// This header file defines the "virtual machine" used by machine-generated
// code.
//
// prerequisites
// gfn.hh
//
//
// The machine-generated code uses the following variables:
// patch& p // current patch
// int irho,isigma // current generic integer coords within patch
// fp xx, yy, zz; // local (x,y,z) coords of this grid point
// fp X_ud_[12][123] // 1st derivative coefficients
// fp X_udd_[12]{11,12,13,22,23,33} // 2nd derivative coefficients
//
//
// rational numbers
//
#define RATIONAL(num,den) (num/den)
//
// partial derivatives
//
#define PARTIAL_RHO(ghosted_gridfn_name) \
p.partial_rho(ghosted_gfns::gfn__ ## ghosted_gridfn_name, irho,isigma)
#define PARTIAL_SIGMA(ghosted_gridfn_name) \
p.partial_sigma(ghosted_gfns::gfn__ ## ghosted_gridfn_name, irho,isigma)
#define PARTIAL_RHO_RHO(ghosted_gridfn_name) \
p.partial_rho_rho(ghosted_gfns::gfn__ ## ghosted_gridfn_name, irho,isigma)
#define PARTIAL_RHO_SIGMA(ghosted_gridfn_name) \
p.partial_rho_sigma(ghosted_gfns::gfn__ ## ghosted_gridfn_name, irho,isigma)
#define PARTIAL_SIGMA_SIGMA(ghosted_gridfn_name) \
p.partial_sigma_sigma(ghosted_gfns::gfn__ ## ghosted_gridfn_name, irho,isigma)
//
// ghosted-grid gridfns
// n.b. since we're always evaluating on the surface, r == h
//
#define h p.ghosted_gridfn(ghosted_gfns::gfn__h, irho,isigma)
#define r h
//
// nominal-grid gridfns
//
#define g_dd_11 p.gridfn(nominal_gfns::gfn__g_dd_11, irho,isigma)
#define g_dd_12 p.gridfn(nominal_gfns::gfn__g_dd_12, irho,isigma)
#define g_dd_13 p.gridfn(nominal_gfns::gfn__g_dd_13, irho,isigma)
#define g_dd_22 p.gridfn(nominal_gfns::gfn__g_dd_22, irho,isigma)
#define g_dd_23 p.gridfn(nominal_gfns::gfn__g_dd_23, irho,isigma)
#define g_dd_33 p.gridfn(nominal_gfns::gfn__g_dd_33, irho,isigma)
#define K_dd_11 p.gridfn(nominal_gfns::gfn__K_dd_11, irho,isigma)
#define K_dd_12 p.gridfn(nominal_gfns::gfn__K_dd_12, irho,isigma)
#define K_dd_13 p.gridfn(nominal_gfns::gfn__K_dd_13, irho,isigma)
#define K_dd_22 p.gridfn(nominal_gfns::gfn__K_dd_22, irho,isigma)
#define K_dd_23 p.gridfn(nominal_gfns::gfn__K_dd_23, irho,isigma)
#define K_dd_33 p.gridfn(nominal_gfns::gfn__K_dd_33, irho,isigma)
#define partial_d_g_dd_111 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_111, irho,isigma)
#define partial_d_g_dd_112 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_112, irho,isigma)
#define partial_d_g_dd_113 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_113, irho,isigma)
#define partial_d_g_dd_122 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_122, irho,isigma)
#define partial_d_g_dd_123 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_123, irho,isigma)
#define partial_d_g_dd_133 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_133, irho,isigma)
#define partial_d_g_dd_211 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_211, irho,isigma)
#define partial_d_g_dd_212 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_212, irho,isigma)
#define partial_d_g_dd_213 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_213, irho,isigma)
#define partial_d_g_dd_222 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_222, irho,isigma)
#define partial_d_g_dd_223 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_223, irho,isigma)
#define partial_d_g_dd_233 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_233, irho,isigma)
#define partial_d_g_dd_311 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_311, irho,isigma)
#define partial_d_g_dd_312 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_312, irho,isigma)
#define partial_d_g_dd_313 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_313, irho,isigma)
#define partial_d_g_dd_322 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_322, irho,isigma)
#define partial_d_g_dd_323 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_323, irho,isigma)
#define partial_d_g_dd_333 p.gridfn(nominal_gfns::gfn__partial_d_g_dd_333, irho,isigma)
#define H p.gridfn(nominal_gfns::gfn__H, irho,isigma)
//
// pseudo-gridfns
// (used only at a single grid point, not actually stored as gridfns)
//
fp g_uu_11;
fp g_uu_12;
fp g_uu_13;
fp g_uu_22;
fp g_uu_23;
fp g_uu_33;
fp K;
fp K_uu_11;
fp K_uu_12;
fp K_uu_13;
fp K_uu_22;
fp K_uu_23;
fp K_uu_33;
fp partial_d_ln_sqrt_g_1;
fp partial_d_ln_sqrt_g_2;
fp partial_d_ln_sqrt_g_3;
fp partial_d_g_uu_111;
fp partial_d_g_uu_112;
fp partial_d_g_uu_113;
fp partial_d_g_uu_122;
fp partial_d_g_uu_123;
fp partial_d_g_uu_133;
fp partial_d_g_uu_211;
fp partial_d_g_uu_212;
fp partial_d_g_uu_213;
fp partial_d_g_uu_222;
fp partial_d_g_uu_223;
fp partial_d_g_uu_233;
fp partial_d_g_uu_311;
fp partial_d_g_uu_312;
fp partial_d_g_uu_313;
fp partial_d_g_uu_322;
fp partial_d_g_uu_323;
fp partial_d_g_uu_333;
|