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 {
75  idx_t edegrees[2];
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 */
97  int free_xadj, free_vwgt, free_vsize, free_adjncy, free_adjwgt;
98 
100 
102 
103  /* Partition parameters */
104  idx_t mincut, minvol;
105  idx_t *where, *pwgts;
107  idx_t *bndptr, *bndind;
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 {
127  idx_t ne, nn;
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 */
176  double TotalTmr, InitPartTmr, MatchTmr, ContractTmr, CoarsenTmr, UncoarsenTmr,
177  RefTmr, ProjectTmr, SplitTmr, Aux1Tmr, Aux2Tmr, Aux3Tmr;
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
idx_t ned
idx_t * maxnads
real_t * tpwgts
idx_t ncon
idx_t seed
idx_t * xadj
mdbglvl_et
vnbr_t * vnbrpool
idx_t * adjwgt
struct graph_t * finer
idx_t * bndptr
idx_t ufactor
idx_t minvol
idx_t * where
idx_t pid
idx_t compress
idx_t nvtxs
idx_t * id
idx_t * vsize
mdbglvl_et dbglvl
idx_t ncuts
struct vkrinfo_t vkrinfo_t
struct ckrinfo_t ckrinfo_t
idx_t pid
nrinfo_t * nrinfo
struct vnbr_t vnbr_t
size_t nbrpoolcpos
mrtype_et
real_t cfactor
idx_t idx_t idx_t * eind
idx_t * ewgt
struct graph_t * coarser
mctype_et
struct mesh_t mesh_t
idx_t niter
idx_t * pvec2
size_t nbrpoolreallocs
idx_t ccorder
double UncoarsenTmr
struct cnbr_t cnbr_t
miptype_et
idx_t * maxvwgt
struct graph_t graph_t
idx_t * cmap
idx_t nseps
moptype_et optype
int32_t idx_t
cnbr_t * cnbrpool
real_t pfactor
idx_t nparts
idx_t no2hop
real_t * pijbm
idx_t ncon
idx_t * nads
gk_mcore_t * mcore
float real_t
mrtype_et rtype
idx_t ncon
idx_t gv
struct nrinfo_t nrinfo_t
real_t * ubfactors
mobjtype_et
idx_t * adjncy
idx_t * tvwgt
idx_t contig
idx_t ** adids
mctype_et ctype
idx_t CoarsenTo
size_t nbrpoolsize
idx_t ed
idx_t nIparts
idx_t ** adwgts
idx_t * eptr
real_t * invtvwgt
moptype_et
idx_t minconn
mobjtype_et objtype
vkrinfo_t * vkrinfo
ckrinfo_t * ckrinfo
idx_t numflag
idx_t * label
struct ctrl_t ctrl_t
miptype_et iptype
idx_t * vwgt


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:36:21