libmetis/struct.h
Go to the documentation of this file.
1 /*
2  * Copyright 1997, Regents of the University of Minnesota
3  *
4  * struct.h
5  *
6  * This file contains data structures for ILU routines.
7  *
8  * Started 9/26/95
9  * George
10  *
11  * $Id: struct.h 13900 2013-03-24 15:27:07Z karypis $
12  */
13 
14 #ifndef _LIBMETIS_STRUCT_H_
15 #define _LIBMETIS_STRUCT_H_
16 
17 
18 
19 /*************************************************************************/
22 /*************************************************************************/
23 typedef struct cnbr_t {
27 } cnbr_t;
28 
29 
30 /*************************************************************************/
33 /*************************************************************************/
34 typedef struct ckrinfo_t {
40 } ckrinfo_t;
41 
42 
43 /*************************************************************************/
46 /*************************************************************************/
47 typedef struct vnbr_t {
53 } vnbr_t;
54 
55 
56 /*************************************************************************/
59 /*************************************************************************/
60 typedef struct vkrinfo_t {
67 } vkrinfo_t;
68 
69 
70 /*************************************************************************/
73 /*************************************************************************/
74 typedef struct nrinfo_t {
76 } nrinfo_t;
77 
78 
79 /*************************************************************************/
81 /*************************************************************************/
82 typedef struct graph_t {
83  idx_t nvtxs, nedges; /* The # of vertices and edges in the graph */
84  idx_t ncon; /* The # of constrains */
85  idx_t *xadj; /* Pointers to the locally stored vertices */
86  idx_t *vwgt; /* Vertex weights */
87  idx_t *vsize; /* Vertex sizes for min-volume formulation */
88  idx_t *adjncy; /* Array that stores the adjacency lists of nvtxs */
89  idx_t *adjwgt; /* Array that stores the weights of the adjacency lists */
90 
91  idx_t *tvwgt; /* The sum of the vertex weights in the graph */
92  real_t *invtvwgt; /* The inverse of the sum of the vertex weights in the graph */
93 
94 
95  /* These are to keep track control if the corresponding fields correspond to
96  application or library memory */
98 
100 
102 
103  /* Partition parameters */
108 
109  /* Bisection refinement parameters */
110  idx_t *id, *ed;
111 
112  /* K-way refinement parameters */
116  /* Node refinement information */
118 
119  struct graph_t *coarser, *finer;
120 } graph_t;
121 
122 
123 /*************************************************************************/
125 /*************************************************************************/
126 typedef struct mesh_t {
132 } mesh_t;
133 
134 
135 
136 /*************************************************************************/
138 /*************************************************************************/
139 typedef struct ctrl_t {
140  moptype_et optype; /* Type of operation */
141  mobjtype_et objtype; /* Type of refinement objective */
142  mdbglvl_et dbglvl; /* Controls the debuging output of the program */
143  mctype_et ctype; /* The type of coarsening */
144  miptype_et iptype; /* The type of initial partitioning */
145  mrtype_et rtype; /* The type of refinement */
146 
147  idx_t CoarsenTo; /* The # of vertices in the coarsest graph */
148  idx_t nIparts; /* The number of initial partitions to compute */
149  idx_t no2hop; /* Indicates if 2-hop matching will be used */
150  idx_t minconn; /* Indicates if the subdomain connectivity will be minimized */
151  idx_t contig; /* Indicates if contigous partitions are required */
152  idx_t nseps; /* The number of separators to be found during multiple bisections */
153  idx_t ufactor; /* The user-supplied load imbalance factor */
154  idx_t compress; /* If the graph will be compressed prior to ordering */
155  idx_t ccorder; /* If connected components will be ordered separately */
156  idx_t seed; /* The seed for the random number generator */
157  idx_t ncuts; /* The number of different partitionings to compute */
158  idx_t niter; /* The number of iterations during each refinement */
159  idx_t numflag; /* The user-supplied numflag for the graph */
160  idx_t *maxvwgt; /* The maximum allowed weight for a vertex */
161 
165  real_t pfactor; /* .1*(user-supplied prunning factor) */
166 
175  /* Various Timers */
178 
179  /* Workspace information */
183  /* These are for use by the k-way refinement routines */
184  size_t nbrpoolsize;
185  size_t nbrpoolcpos;
195  /* The subdomain graph, in sparse format */
196  idx_t *maxnads; /* The maximum allocated number of adjacent domains */
197  idx_t *nads; /* The number of adjacent domains */
198  idx_t **adids; /* The IDs of the adjacent domains */
199  idx_t **adwgts; /* The edge-weight to the adjacent domains */
200  idx_t *pvec1, *pvec2; /* Auxiliar nparts-size vectors for efficiency */
201 
202 } ctrl_t;
203 
204 
205 
206 #endif
ctrl_t::compress
idx_t compress
Definition: libmetis/struct.h:154
ckrinfo_t::nnbrs
idx_t nnbrs
Definition: libmetis/struct.h:37
graph_t::tvwgt
idx_t * tvwgt
Definition: libmetis/struct.h:91
ckrinfo_t::ed
idx_t ed
Definition: libmetis/struct.h:36
ctrl_t::ContractTmr
double ContractTmr
Definition: libmetis/struct.h:176
cnbr_t
Definition: libmetis/struct.h:23
moptype_et
moptype_et
Definition: include/metis.h:262
ctrl_t::pvec2
idx_t * pvec2
Definition: libmetis/struct.h:200
ctrl_t::rtype
mrtype_et rtype
Definition: libmetis/struct.h:145
graph_t::vwgt
idx_t * vwgt
Definition: libmetis/struct.h:86
ctrl_t::pijbm
real_t * pijbm
Definition: libmetis/struct.h:170
mesh_t
struct mesh_t mesh_t
ctrl_t::nparts
idx_t nparts
Definition: libmetis/struct.h:163
vkrinfo_t::nid
idx_t nid
Definition: libmetis/struct.h:61
graph_t::invtvwgt
real_t * invtvwgt
Definition: libmetis/struct.h:92
mesh_t
Definition: libmetis/struct.h:126
mrtype_et
mrtype_et
Definition: include/metis.h:330
cnbr_t::ed
idx_t ed
Definition: libmetis/struct.h:25
ctrl_t::Aux2Tmr
double Aux2Tmr
Definition: libmetis/struct.h:177
ctrl_t::ubfactors
real_t * ubfactors
Definition: libmetis/struct.h:167
vkrinfo_t
Definition: libmetis/struct.h:60
mesh_t::eptr
idx_t * eptr
Definition: libmetis/struct.h:130
ctrl_t
Definition: libmetis/struct.h:139
vkrinfo_t::nnbrs
idx_t nnbrs
Definition: libmetis/struct.h:64
mobjtype_et
mobjtype_et
Definition: include/metis.h:354
graph_t::xadj
idx_t * xadj
Definition: libmetis/struct.h:85
ctrl_t::RefTmr
double RefTmr
Definition: libmetis/struct.h:177
ctrl_t::contig
idx_t contig
Definition: libmetis/struct.h:151
graph_t::adjwgt
idx_t * adjwgt
Definition: libmetis/struct.h:89
graph_t::where
idx_t * where
Definition: libmetis/struct.h:105
ctrl_t::tpwgts
real_t * tpwgts
Definition: libmetis/struct.h:169
cnbr_t::pid
idx_t pid
Definition: libmetis/struct.h:24
graph_t::nedges
idx_t nedges
Definition: libmetis/struct.h:83
graph_t::mincut
idx_t mincut
Definition: libmetis/struct.h:104
ctrl_t::InitPartTmr
double InitPartTmr
Definition: libmetis/struct.h:176
ctrl_t::maxnads
idx_t * maxnads
Definition: libmetis/struct.h:196
ctrl_t::cnbrpool
cnbr_t * cnbrpool
Definition: libmetis/struct.h:188
vkrinfo_t::ned
idx_t ned
Definition: libmetis/struct.h:62
graph_t::minvol
idx_t minvol
Definition: libmetis/struct.h:104
graph_t::bndind
idx_t * bndind
Definition: libmetis/struct.h:107
graph_t::vkrinfo
vkrinfo_t * vkrinfo
Definition: libmetis/struct.h:114
ctrl_t::Aux1Tmr
double Aux1Tmr
Definition: libmetis/struct.h:177
ctrl_t::MatchTmr
double MatchTmr
Definition: libmetis/struct.h:176
vnbr_t
struct vnbr_t vnbr_t
vnbr_t
Definition: libmetis/struct.h:47
nrinfo_t
struct nrinfo_t nrinfo_t
graph_t::cmap
idx_t * cmap
Definition: libmetis/struct.h:101
graph_t::free_xadj
int free_xadj
Definition: libmetis/struct.h:97
ctrl_t::UncoarsenTmr
double UncoarsenTmr
Definition: libmetis/struct.h:176
ctrl_t::nads
idx_t * nads
Definition: libmetis/struct.h:197
graph_t::nrinfo
nrinfo_t * nrinfo
Definition: libmetis/struct.h:117
ctrl_t::pvec1
idx_t * pvec1
Definition: libmetis/struct.h:200
ctrl_t::iptype
miptype_et iptype
Definition: libmetis/struct.h:144
ctrl_t::adwgts
idx_t ** adwgts
Definition: libmetis/struct.h:199
graph_t::pwgts
idx_t * pwgts
Definition: libmetis/struct.h:105
ctrl_t::Aux3Tmr
double Aux3Tmr
Definition: libmetis/struct.h:177
graph_t::free_adjncy
int free_adjncy
Definition: libmetis/struct.h:97
vkrinfo_t::gv
idx_t gv
Definition: libmetis/struct.h:63
ctrl_t::nIparts
idx_t nIparts
Definition: libmetis/struct.h:148
ctrl_t::CoarsenTmr
double CoarsenTmr
Definition: libmetis/struct.h:176
vkrinfo_t::inbr
idx_t inbr
Definition: libmetis/struct.h:65
ctrl_t::nbrpoolsize
size_t nbrpoolsize
Definition: libmetis/struct.h:184
ckrinfo_t
Definition: libmetis/struct.h:34
ctrl_t::objtype
mobjtype_et objtype
Definition: libmetis/struct.h:141
ckrinfo_t::inbr
idx_t inbr
Definition: libmetis/struct.h:38
ctrl_t::CoarsenTo
idx_t CoarsenTo
Definition: libmetis/struct.h:147
graph_t::vsize
idx_t * vsize
Definition: libmetis/struct.h:87
graph_t
struct graph_t graph_t
ctrl_t::nbrpoolreallocs
size_t nbrpoolreallocs
Definition: libmetis/struct.h:186
graph_t::ckrinfo
ckrinfo_t * ckrinfo
Definition: libmetis/struct.h:113
graph_t::nvtxs
idx_t nvtxs
Definition: libmetis/struct.h:83
ctrl_t::maxvwgt
idx_t * maxvwgt
Definition: libmetis/struct.h:160
graph_t::nbnd
idx_t nbnd
Definition: libmetis/struct.h:106
ctrl_t::SplitTmr
double SplitTmr
Definition: libmetis/struct.h:177
cnbr_t
struct cnbr_t cnbr_t
ctrl_t::minconn
idx_t minconn
Definition: libmetis/struct.h:150
graph_t::label
idx_t * label
Definition: libmetis/struct.h:99
vnbr_t::pid
idx_t pid
Definition: libmetis/struct.h:48
ctrl_t::ProjectTmr
double ProjectTmr
Definition: libmetis/struct.h:177
ctrl_t::ccorder
idx_t ccorder
Definition: libmetis/struct.h:155
graph_t::coarser
struct graph_t * coarser
Definition: libmetis/struct.h:119
graph_t::free_vsize
int free_vsize
Definition: libmetis/struct.h:97
ckrinfo_t::id
idx_t id
Definition: libmetis/struct.h:35
ctrl_t::TotalTmr
double TotalTmr
Definition: libmetis/struct.h:176
ctrl_t::cfactor
real_t cfactor
Definition: libmetis/struct.h:173
gk_mcore_t
Definition: gk_struct.h:242
ctrl_t::nseps
idx_t nseps
Definition: libmetis/struct.h:152
graph_t::finer
struct graph_t * finer
Definition: libmetis/struct.h:119
mdbglvl_et
mdbglvl_et
Definition: include/metis.h:339
graph_t::ncon
idx_t ncon
Definition: libmetis/struct.h:84
nrinfo_t::edegrees
idx_t edegrees[2]
Definition: libmetis/struct.h:75
mesh_t::eind
idx_t * eind
Definition: libmetis/struct.h:130
ctrl_t::adids
idx_t ** adids
Definition: libmetis/struct.h:198
ctrl_t::ufactor
idx_t ufactor
Definition: libmetis/struct.h:153
ctrl_t::seed
idx_t seed
Definition: libmetis/struct.h:156
ctrl_t::optype
moptype_et optype
Definition: libmetis/struct.h:140
vnbr_t::ned
idx_t ned
Definition: libmetis/struct.h:49
graph_t::adjncy
idx_t * adjncy
Definition: libmetis/struct.h:88
real_t
float real_t
Definition: include/metis.h:132
ctrl_t::niter
idx_t niter
Definition: libmetis/struct.h:158
vkrinfo_t
struct vkrinfo_t vkrinfo_t
nrinfo_t
Definition: libmetis/struct.h:74
graph_t::bndptr
idx_t * bndptr
Definition: libmetis/struct.h:107
ctrl_t::ctype
mctype_et ctype
Definition: libmetis/struct.h:143
mesh_t::ncon
idx_t ncon
Definition: libmetis/struct.h:128
ctrl_t::pfactor
real_t pfactor
Definition: libmetis/struct.h:165
mctype_et
mctype_et
Definition: include/metis.h:314
ctrl_t::ncon
idx_t ncon
Definition: libmetis/struct.h:162
ctrl_t::dbglvl
mdbglvl_et dbglvl
Definition: libmetis/struct.h:142
ctrl_t::ncuts
idx_t ncuts
Definition: libmetis/struct.h:157
ctrl_t::no2hop
idx_t no2hop
Definition: libmetis/struct.h:149
ctrl_t::mcore
gk_mcore_t * mcore
Definition: libmetis/struct.h:180
graph_t::free_adjwgt
int free_adjwgt
Definition: libmetis/struct.h:97
vnbr_t::gv
idx_t gv
Definition: libmetis/struct.h:51
miptype_et
miptype_et
Definition: include/metis.h:320
ctrl_t::numflag
idx_t numflag
Definition: libmetis/struct.h:159
mesh_t::ewgt
idx_t * ewgt
Definition: libmetis/struct.h:131
graph_t::id
idx_t * id
Definition: libmetis/struct.h:110
graph_t::ed
idx_t * ed
Definition: libmetis/struct.h:110
ctrl_t::nbrpoolcpos
size_t nbrpoolcpos
Definition: libmetis/struct.h:185
ckrinfo_t
struct ckrinfo_t ckrinfo_t
mesh_t::ne
idx_t ne
Definition: libmetis/struct.h:127
mesh_t::nn
idx_t nn
Definition: libmetis/struct.h:127
ctrl_t
struct ctrl_t ctrl_t
ctrl_t::vnbrpool
vnbr_t * vnbrpool
Definition: libmetis/struct.h:191
graph_t::free_vwgt
int free_vwgt
Definition: libmetis/struct.h:97
graph_t
Definition: libmetis/struct.h:82
idx_t
int32_t idx_t
Definition: include/metis.h:101


gtsam
Author(s):
autogenerated on Tue Jun 25 2024 03:03:29