-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcengpar.h
68 lines (45 loc) · 1.68 KB
/
cengpar.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef CENGPAR
#define CENGPAR
#include <mpi.h>
#include "agi.h"
#ifdef __cplusplus
extern "C" {
#endif
void cengpar_initialize();
void cengpar_finalize();
void cengpar_setftncommunicator(MPI_Fint fcomm);
typedef void* ngraph;
typedef void* engparInput;
ngraph cengpar_createEmptyGraph();
engparInput cengpar_createLocalSplitInput(ngraph g,
MPI_Fint smallComm, MPI_Fint largeComm,
bool isOrig, int splitFactor, double tol,
agi::part_t* ranks, agi::etype t);
engparInput cengpar_createGlobalSplitInput(ngraph g,
MPI_Fint smallComm, MPI_Fint largeComm,
bool isOrig, double tol,
agi::etype t);
engparInput cengpar_createDiffusiveInput(ngraph g, double stepfactor);
void cengpar_setCutGrowthFactor(engparInput in, double factor);
void cengpar_addPriority(engparInput in, int t, double tol);
void cengpar_balanceGhosts(engparInput in, bool enable);
void cengpar_balance(engparInput in, int verbosity);
void cengpar_loadFromFile(ngraph g, const char fileName[]);
void cengpar_saveToFile(ngraph g, const char fileName[]);
void cengpar_evaluatePartition(ngraph g);
void cengpar_split(engparInput in, const char method[]);
void cengpar_destroyGraph(ngraph g);
void cengpar_constructVerts(ngraph g, bool isHg,
agi::gid_t* verts, agi::wgt_t* weights, int nverts);
agi::etype cengpar_constructEdges(ngraph g, agi::gid_t* edges,
agi::lid_t* degs, agi::wgt_t* weights, agi::gid_t* pins,
int nedges, int npins);
void cengpar_constructGhosts(ngraph g, agi::gid_t* verts,
agi::part_t* owners, int nghosts);
void cengpar_checkValidity(ngraph g);
void cengpar_getPartition(ngraph g, agi::gid_t* verts,
agi::part_t* parts, int nverts);
#ifdef __cplusplus
}
#endif
#endif