oomph_metis_from_parmetis_3.1.1/defs.h
Go to the documentation of this file.
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 2003/07/16 15:55:01 karypis Exp $
12  *
13  */
14 
15 #define METISTITLE " METIS 4.0 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 */