// 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::