aboutsummaryrefslogtreecommitdiff
path: root/src/patch/patch_system.hh
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2001-07-14 13:43:37 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2001-07-14 13:43:37 +0000
commit00d7fc97b07de96ff89a7310babe353558142fce (patch)
treefa66b23f5b0b6d41f3208c05899cad293dfbeaa9 /src/patch/patch_system.hh
parent8dda036d837c0aafdf5d5e9fb2e598f6292b0a47 (diff)
revise patch numbers and comments on them
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@145 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/patch/patch_system.hh')
-rw-r--r--src/patch/patch_system.hh110
1 files changed, 60 insertions, 50 deletions
diff --git a/src/patch/patch_system.hh b/src/patch/patch_system.hh
index 4d4e45f..cea07da 100644
--- a/src/patch/patch_system.hh
+++ b/src/patch/patch_system.hh
@@ -1,7 +1,7 @@
// patch_system.hh -- describes the (an) entire system of interlinked patches
// $Id$
//
-// patch_system - describes an entire system of interlinked patches
+// patch_system - describes a system of interlinked patches
//
//
@@ -25,110 +25,120 @@
//*****************************************************************************
//
-// This class describes the (an) entire system of interlinked patches.
+// a patch_system object describes a system of interlinked patches.
//
class patch_system
{
public:
//
- // ***** meta-info for decoding patch system type, patch numbers *****
+ // ***** static data & functions describing patch systems *****
//
// what patch-system type are supported?
- enum patch_system_type { octant, quarter, half, full };
+ enum patch_system_type {
+ full_patch_system,
+ half_patch_system,
+ quarter_patch_system,
+ octant_patch_system
+ };
// decode patch system type into N_patches
static
int N_patches_of_type(enum patch_system_type type);
- // decode patch system type into human-readable type name (C string)
+ // decode patch system type into human-readable character-string name
static
const char *name_of_type(enum patch_system_type type);
+ // largest number of patches for any patch system type
+ static const int max_N_patches = 6;
+
+ //
+ // patch numbers (static data)
//
- // patch numbers etc (just static constant data)
+ // alas, the set of patches for a quarter patch system isn't
+ // a subset of the set of patches for a half patch system,
+ // so we can't assign the same patch numbers to a given patch
+ // type in each type of patch system, and still keep each
+ // patch system having a contiguous range of patch numbers :(
//
class patch_numbers
{
- public:
- // largest number of patches for any patch system type
- static const int max_N_patches = 6;
-
//
- // octant patch system
- // * 90 degree periodic rotation symmetry about z axis
- // * mirror symmetry across z=0 plane
- // +z patch dmu in [0,45] dnu in [0,45] (45 x 45)
- // +x patch dnu in [45,90] dphi in [0,45] (45 x 45)
- // +y patch dmu in [45,90] dphi in [45,90] (45 x 45)
+ // patch numbers for full-grid patch system
+ // +z patch: dmu in [ -45, 45], dnu in [ -45, 45] (90 x 90)
+ // +x patch: dnu in [ 45, 135], dphi in [ -45, 45] (90 x 90)
+ // +y patch: dmu in [ 45, 135], dphi in [ 45, 135] (90 x 90)
+ // -x patch: dnu in [-135, -45], dphi in [ 135, 225] (90 x 90)
+ // -y patch: dmu in [-135, -45], dphi in [-135, -45] (90 x 90)
+ // -z patch: dmu in [ 135, 225], dnu in [ 135, 225] (90 x 90)
//
- class octant
+ class full_patch_system
{
public:
- static const int N_patches = 3;
+ static const int N_patches = 6;
static const int plus_z = 0;
static const int plus_x = 1;
static const int plus_y = 2;
+ static const int minus_x = 3;
+ static const int minus_y = 4;
+ static const int minus_z = 5;
};
//
- // quarter patch system
- // * 90 degree periodic rotation symmetry about z axis
- // +z patch dmu in [0,45] dnu in [0,45] (45 x 45)
- // +x patch dnu in [45,135] dphi in [0,45] (90 x 45)
- // +y patch dmu in [45,135] dphi in [45,90] (90 x 45)
- // -z patch dmu in [135,180] dnu in [135,180] (45 x 45)
+ // patch numbers for half-grid patch system
+ // (mirror symmetry across z=0 plane)
+ // +z patch: dmu in [ -45, 45], dnu in [ -45, 45] (90 x 90)
+ // +x patch: dnu in [ 45, 90], dphi in [ -45, 45] (45 x 90)
+ // +y patch: dmu in [ 45, 90], dphi in [ 45, 135] (45 x 90)
+ // -x patch: dnu in [ -90, -45], dphi in [ 135, 225] (45 x 90)
+ // -y patch: dmu in [ -90, -45], dphi in [-135, -45] (45 x 90)
//
- class quarter
+ class half_patch_system
{
public:
- static const int N_patches = 4;
+ static const int N_patches = 5;
static const int plus_z = 0;
static const int plus_x = 1;
static const int plus_y = 2;
- static const int minus_z = 3;
+ static const int minus_x = 3;
+ static const int minus_y = 4;
};
//
- // half
- // * mirror symmetry across z=0 plane
- // +z patch dmu in [-45,45] dnu in [-45,45] (90 x 90)
- // +x patch dnu in [45,90] dphi in [-45,45] (45 x 90)
- // +y patch dmu in [45,90] dphi in [45,135] (45 x 90)
- // -x patch dnu in [-90,-45] dphi in [135,225] (45 x 90)
- // -y patch dmu in [-90,-45] dphi in [225,315] (45 x 90)
+ // patch numbers for quarter-grid patch system
+ // (90 degree periodic rotation symmetry about z axis)
+ // +z patch: dmu in [ 0, 45], dnu in [ 0, 45] (45 x 45)
+ // +x patch: dnu in [ 45, 135], dphi in [ 0, 45] (90 x 45)
+ // +y patch: dmu in [ 45, 135], dphi in [ 45, 90] (90 x 45)
+ // -z patch: dmu in [ 135, 180], dnu in [ 135, 180] (45 x 45)
//
- class half
+ class quarter_patch_system
{
public:
- static const int N_patches = 5;
+ static const int N_patches = 4;
static const int plus_z = 0;
static const int plus_x = 1;
static const int plus_y = 2;
- static const int minus_x = 3;
- static const int minus_y = 4;
+ static const int minus_z = 3;
};
//
- // full
- // +z patch dmu in [-45,45] dnu in [-45,45] (90 x 90)
- // +x patch dnu in [45,135] dphi in [-45,45] (90 x 90)
- // +y patch dmu in [45,135] dphi in [45,135] (90 x 90)
- // -x patch dnu in [-135,-45] dphi in [135,225] (90 x 90)
- // -y patch dmu in [-135,-45] dphi in [225,315] (90 x 90)
- // -z patch dmu in [135,225] dnu in [135,225] (90 x 90)
+ // patch numbers for octant patch system
+ // (90 degree periodic rotation symmetry about z axis
+ // *and* mirror symmetry across z=0 plane)
+ // +z patch: dmu in [ 0, 45], dnu in [ 0, 45] (45 x 45)
+ // +x patch: dnu in [ 45, 90], dphi in [ 0, 45] (45 x 45)
+ // +y patch: dmu in [ 45, 90], dphi in [ 45, 90] (45 x 45)
//
- class full
+ class octant_patch_system
{
public:
- static const int N_patches = 6;
+ static const int N_patches = 3;
static const int plus_z = 0;
static const int plus_x = 1;
static const int plus_y = 2;
- static const int minus_x = 3;
- static const int minus_y = 4;
- static const int minus_z = 5;
};
};