source: branches/numpy/pymetis/metis-4.0/Lib/defs.h @ 6971

Last change on this file since 6971 was 2051, checked in by jack, 19 years ago

Python interface to metis. Currently provides only the
METIS_PartMeshNodal function, since that is what is currently needed for partitioning.
Module name is metis.

File size: 4.4 KB
Line 
1/*
2 * Copyright 1997, Regents of the University of Minnesota
3 *
4 * defs.h
5 *
6 * This file contains constant definitions
7 *
8 * Started 8/27/94
9 * George
10 *
11 * $Id: defs.h,v 1.1 1998/11/27 17:59:13 karypis Exp $
12 *
13 */
14
15#define METISTITLE              "  METIS 4.0.1 Copyright 1998, Regents of the University of Minnesota\n\n"
16#define MAXLINE                 1280000
17
18#define LTERM                   (void **) 0     /* List terminator for GKfree() */
19
20#define MAXNCON                 16              /* The maximum number of constrains */
21#define MAXNOBJ                 16              /* The maximum number of objectives */
22
23#define PLUS_GAINSPAN           500             /* Parameters for FM buckets */
24#define NEG_GAINSPAN            500
25
26#define HTLENGTH                ((1<<11)-1)
27
28/* Meaning of various options[] parameters */
29#define OPTION_PTYPE            0
30#define OPTION_CTYPE            1
31#define OPTION_ITYPE            2
32#define OPTION_RTYPE            3
33#define OPTION_DBGLVL           4
34#define OPTION_OFLAGS           5
35#define OPTION_PFACTOR          6
36#define OPTION_NSEPS            7
37
38#define OFLAG_COMPRESS          1       /* Try to compress the graph */
39#define OFLAG_CCMP              2       /* Find and order connected components */
40
41
42/* Default options for PMETIS */
43#define PMETIS_CTYPE            MATCH_SHEM
44#define PMETIS_ITYPE            IPART_GGPKL
45#define PMETIS_RTYPE            RTYPE_FM
46#define PMETIS_DBGLVL           0
47
48/* Default options for KMETIS */
49#define KMETIS_CTYPE            MATCH_SHEM
50#define KMETIS_ITYPE            IPART_PMETIS
51#define KMETIS_RTYPE            RTYPE_KWAYRANDOM_MCONN
52#define KMETIS_DBGLVL           0
53
54/* Default options for OEMETIS */
55#define OEMETIS_CTYPE           MATCH_SHEM
56#define OEMETIS_ITYPE           IPART_GGPKL
57#define OEMETIS_RTYPE           RTYPE_FM
58#define OEMETIS_DBGLVL          0
59
60/* Default options for ONMETIS */
61#define ONMETIS_CTYPE           MATCH_SHEM
62#define ONMETIS_ITYPE           IPART_GGPKL
63#define ONMETIS_RTYPE           RTYPE_SEP1SIDED
64#define ONMETIS_DBGLVL          0
65#define ONMETIS_OFLAGS          OFLAG_COMPRESS
66#define ONMETIS_PFACTOR         -1
67#define ONMETIS_NSEPS           1
68
69/* Default options for McPMETIS */
70#define McPMETIS_CTYPE          MATCH_SHEBM_ONENORM
71#define McPMETIS_ITYPE          IPART_RANDOM
72#define McPMETIS_RTYPE          RTYPE_FM
73#define McPMETIS_DBGLVL         0
74
75/* Default options for McKMETIS */
76#define McKMETIS_CTYPE          MATCH_SHEBM_ONENORM
77#define McKMETIS_ITYPE          IPART_McHPMETIS
78#define McKMETIS_RTYPE          RTYPE_KWAYRANDOM
79#define McKMETIS_DBGLVL         0
80
81/* Default options for KVMETIS */
82#define KVMETIS_CTYPE           MATCH_SHEM
83#define KVMETIS_ITYPE           IPART_PMETIS
84#define KVMETIS_RTYPE           RTYPE_KWAYRANDOM
85#define KVMETIS_DBGLVL          0
86
87
88/* Operations supported by stand-alone code */
89#define OP_PMETIS               1
90#define OP_KMETIS               2
91#define OP_OEMETIS              3
92#define OP_ONMETIS              4
93#define OP_ONWMETIS             5
94#define OP_KVMETIS              6
95
96
97/* Matching Schemes */
98#define MATCH_RM                1
99#define MATCH_HEM               2
100#define MATCH_SHEM              3
101#define MATCH_SHEMKWAY          4
102#define MATCH_SHEBM_ONENORM     5
103#define MATCH_SHEBM_INFNORM     6
104#define MATCH_SBHEM_ONENORM     7
105#define MATCH_SBHEM_INFNORM     8
106
107/* Initial partitioning schemes for PMETIS and ONMETIS */
108#define IPART_GGPKL             1
109#define IPART_GGPKLNODE         2
110#define IPART_RANDOM            2
111
112/* Refinement schemes for PMETIS */
113#define RTYPE_FM                1
114
115/* Initial partitioning schemes for KMETIS */
116#define IPART_PMETIS            1
117
118/* Refinement schemes for KMETIS */
119#define RTYPE_KWAYRANDOM        1
120#define RTYPE_KWAYGREEDY        2
121#define RTYPE_KWAYRANDOM_MCONN  3
122
123/* Refinement schemes for ONMETIS */
124#define RTYPE_SEP2SIDED         1
125#define RTYPE_SEP1SIDED         2
126
127/* Initial Partitioning Schemes for McKMETIS */
128#define IPART_McPMETIS          1       /* Simple McPMETIS */
129#define IPART_McHPMETIS         2       /* horizontally relaxed McPMETIS */
130
131#define UNMATCHED               -1
132
133#define HTABLE_EMPTY            -1
134
135#define NGR_PASSES              4       /* Number of greedy refinement passes */
136#define NLGR_PASSES             5       /* Number of GR refinement during IPartition */
137
138#define LARGENIPARTS            8       /* Number of random initial partitions */
139#define SMALLNIPARTS            3       /* Number of random initial partitions */
140
141#define COARSEN_FRACTION        0.75    /* Node reduction between succesive coarsening levels */
142#define COARSEN_FRACTION2       0.90    /* Node reduction between succesive coarsening levels */
143#define UNBALANCE_FRACTION              1.05
144
145#define COMPRESSION_FRACTION            0.85
146
147#define ORDER_UNBALANCE_FRACTION        1.10
148
149#define MMDSWITCH               200
150
151#define HORIZONTAL_IMBALANCE            1.05
152
153/* Debug Levels */
154#define DBG_TIME        1               /* Perform timing analysis */
155#define DBG_OUTPUT      2
156#define DBG_COARSEN     4               /* Show the coarsening progress */
157#define DBG_REFINE      8               /* Show info on communication during folding */
158#define DBG_IPART       16              /* Show info on initial partition */
159#define DBG_MOVEINFO    32              /* Show info on communication during folding */
160#define DBG_KWAYPINFO   64              /* Show info on communication during folding */
161#define DBG_SEPINFO     128             /* Show info on communication during folding */
Note: See TracBrowser for help on using the repository browser.