aboutsummaryrefslogtreecommitdiff
path: root/src/gr/cg.hh
blob: b6174ebc4b515b83b140b5b4fb156de4ed8dfc2d (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
// 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;