aboutsummaryrefslogtreecommitdiff
path: root/src/patch/patch_system_info.hh
blob: 72b0191444f79ba6070036f601c6d7d3d68026d0 (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
// patch_system_info.hh -- static info describing various types of patch systems
// $Id$

//******************************************************************************

namespace patch_system_info
{
//
// full-sphere patch system
// ... covers all 4pi steradians
//
namespace full_sphere
    {
    static const struct patch_info patch_info_array[]
	= {
// +z patch (90 x 90 degrees): dmu [ -45,    45], dnu  [ -45,    45]
 {"+z", patch::patch_is_plus,  'z',  -45.0,  45.0,       -45.0,  45.0},

// +x patch (90 x 90 degrees): dnu [  45,   135], dphi [ -45,    45]
 {"+x", patch::patch_is_plus,  'x',   45.0, 135.0,       -45.0,  45.0},

// +y patch (90 x 90 degrees): dmu [  45,   135], dphi [  45,   135]
 {"+y", patch::patch_is_plus,  'y',   45.0, 135.0,        45.0, 135.0},

// -x patch (90 x 90 degrees): dnu [-135,   -45], dphi [ 135,   225]
 {"-x", patch::patch_is_minus, 'x', -135.0, -45.0,       135.0, 225.0},

// -y patch (90 x 90 degrees): dmu [-135,   -45], dphi [-135,   -45]
 {"-y", patch::patch_is_minus, 'y', -135.0, -45.0,      -135.0, -45.0},

// -z patch (90 x 90 degrees): dmu [ 135,   225], dnu  [ 135,   225]
 {"-z", patch::patch_is_minus, 'z',  135.0, 225.0,       135.0, 225.0},
	  };
    static const int N_patches = sizeof(patch_info_array) / sizeof(patch_info);
    };	// namespace patch_system_info::full_sphere

//
// +z hemisphere (half) patch system
// ... mirror symmetry across z=0 plane
//
namespace plus_z_hemisphere
    {
    static const struct patch_info patch_info_array[]
	= {
// +z patch (90 x 90 degrees): dmu [ -45,    45], dnu  [ -45,    45]
 {"+z", patch::patch_is_plus,  'z',  -45.0,  45.0,       -45.0,  45.0},

// +x patch (45 x 90 degrees): dnu [  45,    90], dphi [ -45,    45]
 {"+x", patch::patch_is_plus,  'x',   45.0,  90.0,       -45.0,  45.0},

// +y patch (45 x 90 degrees): dmu [  45,    90], dphi [  45,   135]
 {"+y", patch::patch_is_plus,  'y',   45.0,  90.0,        45.0, 135.0},

// -x patch (45 x 90 degrees): dnu [ -90,   -45], dphi [ 135,   225]
 {"-x", patch::patch_is_minus, 'x',  -90.0, -45.0,       135.0, 225.0},

// -y patch (45 x 90 degrees): dmu [ -90,   -45], dphi [-135,   -45]
 {"-y", patch::patch_is_minus, 'y',  -90.0, -45.0,      -135.0, -45.0},
	  };
    static const int N_patches = sizeof(patch_info_array) / sizeof(patch_info);
    };	// namespace patch_system_info::plus_z_hemisphere

//
// +[xy] "vertical" quarter-grid (quadrant) patch system
// ... 90 degree periodic rotation symmetry about z axis
//
namespace plus_xy_quadrant
    {
    static const struct patch_info patch_info_array[]
	= {
// +z patch (45 x 45 degrees): dmu [   0,    45], dnu  [   0,    45]
 {"+z", patch::patch_is_plus,  'z',  0.0,    45.0,         0.0,  45.0},

// +x patch (90 x 45 degrees): dnu [  45,   135], dphi [   0,    45]
 {"+x", patch::patch_is_plus,  'x',  45.0, 135.0,         0.0,  45.0},

// +y patch (90 x 45 degrees): dmu [  45,   135], dphi [  45,    90]
 {"+y", patch::patch_is_plus,  'y',  45.0, 135.0,        45.0,  90.0},

// -z patch (45 x 45 degrees): dmu [ 135,   180], dnu  [ 135,   180]
 {"-z", patch::patch_is_minus,  'z', 135.0, 180.0,       135.0, 180.0},
	  };
    static const int N_patches = sizeof(patch_info_array) / sizeof(patch_info);
    };	// namespace patch_system_info::plus_xy_quadrant

//
// +[xz] "horizontal" quarter-grid (quadrant) patch system
// ... mirror symmetry across z=0 plane,
//     180 degree periodic rotation symmetry about z axis
//
namespace plus_xz_quadrant
    {
    static const struct patch_info patch_info_array[]
	= {
// +z patch (90 x 45 degrees): dmu [ -45,    45], dnu  [   0,    45]
 {"+z", patch::patch_is_plus,  'z',  -45.0,  45.0,         0.0,  45.0},

// +x patch (45 x 90 degrees): dnu [  45,    90], dphi [ -45,    45]
 {"+x", patch::patch_is_plus,  'x',   45.0,  90.0,       -45.0,  45.0},

// +y patch (45 x 45 degrees): dmu [  45,    90], dphi [  45,    90]
 {"+y", patch::patch_is_plus,  'y',   45.0,  90.0,        45.0,  90.0},

// -y patch (45 x 45 degrees): dmu [ -90,   -45], dphi [ -90,   -45]
 {"-y", patch::patch_is_minus, 'y',  -90.0, -45.0,       -90.0, -45.0},
	  };
    static const int N_patches = sizeof(patch_info_array) / sizeof(patch_info);
    };	// namespace patch_system_info::plus_xz_quadrant

//
// +[xyz] (octant) patch system
// ... mirror symmetry across z=0 plane,
//     90 degree periodic rotation symmetry about z axis
//
namespace plus_xyz_octant
    {
    static const struct patch_info patch_info_array[]
	= {
// +z patch (45 x 45 degrees): dmu [   0,    45], dnu  [   0,    45]
 {"+z", patch::patch_is_plus,  'z',    0.0,  45.0,         0.0,  45.0},
// +x patch (45 x 45 degrees): dnu [  45,    90], dphi [   0,    45]
 {"+x", patch::patch_is_plus,  'x',   45.0,  90.0,         0.0,  45.0},
// +y patch (45 x 45 degrees): dmu [  45,    90], dphi [  45,    90]
 {"+y", patch::patch_is_plus,  'y',   45.0,  90.0,        45.0,  90.0},
	  };
    static const int N_patches = sizeof(patch_info_array) / sizeof(patch_info);
    };	// namespace patch_system_info::octant

};	// namespace patch_system_info::