00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __parmetis_h__
00015 #define __parmetis_h__
00016
00017 #include <ampi.h>
00018
00019 #ifndef _MSC_VER
00020 #define __cdecl
00021 #endif
00022
00023
00024
00025
00026
00027
00028 #define IDXTYPE_INT
00029
00030
00031 #ifdef IDXTYPE_INT
00032 typedef int idxtype;
00033 #else
00034 typedef short idxtype;
00035 #endif
00036
00037 typedef double floattype;
00038
00039
00040
00041
00042
00043 #define PARMETIS_MAJOR_VERSION 3
00044 #define PARMETIS_MINOR_VERSION 1
00045
00046
00047
00048
00049
00050 #ifdef __cplusplus
00051 extern "C" {
00052 #endif
00053
00054
00055
00056
00057 void __cdecl ParMETIS_V3_AdaptiveRepart(
00058 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00059 idxtype *vsize, idxtype *adjwgt, int *wgtflag, int *numflag, int *ncon,
00060 int *nparts, floattype *tpwgts, floattype *ubvec, floattype *ipc2redist,
00061 int *options, int *edgecut, idxtype *part, MPI_Comm *comm);
00062
00063 void __cdecl ParMETIS_V3_PartGeomKway(
00064 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00065 idxtype *adjwgt, int *wgtflag, int *numflag, int *ndims, floattype *xyz,
00066 int *ncon, int *nparts, floattype *tpwgts, floattype *ubvec, int *options,
00067 int *edgecut, idxtype *part, MPI_Comm *comm);
00068
00069 void __cdecl ParMETIS_V3_PartGeom(
00070 idxtype *vtxdist, int *ndims, floattype *xyz, idxtype *part, MPI_Comm *comm);
00071
00072 void __cdecl ParMETIS_V3_PartKway(
00073 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00074 idxtype *adjwgt, int *wgtflag, int *numflag, int *ncon, int *nparts,
00075 floattype *tpwgts, floattype *ubvec, int *options, int *edgecut, idxtype *part,
00076 MPI_Comm *comm);
00077
00078 void __cdecl ParMETIS_V3_Mesh2Dual(
00079 idxtype *elmdist, idxtype *eptr, idxtype *eind, int *numflag,
00080 int *ncommonnodes, idxtype **xadj, idxtype **adjncy, MPI_Comm *comm);
00081
00082 void __cdecl ParMETIS_V3_PartMeshKway(
00083 idxtype *elmdist, idxtype *eptr, idxtype *eind, idxtype *elmwgt,
00084 int *wgtflag, int *numflag, int *ncon, int *ncommonnodes, int *nparts,
00085 floattype *tpwgts, floattype *ubvec, int *options, int *edgecut, idxtype *part,
00086 MPI_Comm *comm);
00087
00088 void __cdecl ParMETIS_V3_NodeND(
00089 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, int *numflag,
00090 int *options, idxtype *order, idxtype *sizes, MPI_Comm *comm);
00091
00092 void __cdecl ParMETIS_V3_RefineKway(
00093 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00094 idxtype *adjwgt, int *wgtflag, int *numflag, int *ncon, int *nparts,
00095 floattype *tpwgts, floattype *ubvec, int *options, int *edgecut,
00096 idxtype *part, MPI_Comm *comm);
00097
00098
00099
00100
00101
00102
00103 void __cdecl ParMETIS_PartKway(
00104 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00105 idxtype *adjwgt, int *wgtflag, int *numflag, int *nparts, int *options,
00106 int *edgecut, idxtype *part, MPI_Comm *comm);
00107
00108 void __cdecl ParMETIS_PartGeomKway(
00109 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, idxtype *adjwgt,
00110 int *wgtflag, int *numflag, int *ndims, floattype *xyz, int *nparts, int *options,
00111 int *edgecut, idxtype *part, MPI_Comm *comm);
00112
00113 void __cdecl ParMETIS_PartGeom(
00114 idxtype *vtxdist, int *ndims, floattype *xyz, idxtype *part, MPI_Comm *comm);
00115
00116 void __cdecl ParMETIS_PartGeomRefine(
00117 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00118 idxtype *adjwgt, int *wgtflag, int *numflag, int *ndims, floattype *xyz,
00119 int *options, int *edgecut, idxtype *part, MPI_Comm *comm);
00120
00121 void __cdecl ParMETIS_RefineKway(
00122 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00123 idxtype *adjwgt, int *wgtflag, int *numflag, int *options, int *edgecut,
00124 idxtype *part, MPI_Comm *comm);
00125
00126 void __cdecl ParMETIS_RepartLDiffusion(
00127 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00128 idxtype *adjwgt, int *wgtflag, int *numflag, int *options, int *edgecut,
00129 idxtype *part, MPI_Comm *comm);
00130
00131 void __cdecl ParMETIS_RepartGDiffusion(
00132 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt,
00133 idxtype *adjwgt, int *wgtflag, int *numflag, int *options, int *edgecut,
00134 idxtype *part, MPI_Comm *comm);
00135
00136 void __cdecl ParMETIS_RepartRemap(
00137 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, idxtype *adjwgt,
00138 int *wgtflag, int *numflag, int *options, int *edgecut, idxtype *part,
00139 MPI_Comm *comm);
00140
00141 void __cdecl ParMETIS_RepartMLRemap(
00142 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, idxtype *vwgt, idxtype *adjwgt,
00143 int *wgtflag, int *numflag, int *options, int *edgecut, idxtype *part,
00144 MPI_Comm *comm);
00145
00146 void __cdecl ParMETIS_NodeND(
00147 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, int *numflag, int *options,
00148 idxtype *order, idxtype *sizes, MPI_Comm *comm);
00149
00150 void __cdecl ParMETIS_SerialNodeND(
00151 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, int *numflag, int *options,
00152 idxtype *order, idxtype *sizes, MPI_Comm *comm);
00153
00154
00155
00156
00157
00158
00159
00160 void __cdecl PARKMETIS(
00161 idxtype *vtxdist, idxtype *xadj, idxtype *vwgt, idxtype *adjncy, idxtype *adjwgt,
00162 idxtype *part, int *options, MPI_Comm comm);
00163
00164 void __cdecl PARGKMETIS(
00165 idxtype *vtxdist, idxtype *xadj, idxtype *vwgt, idxtype *adjncy, idxtype *adjwgt,
00166 int ndims, floattype *xyz, idxtype *part, int *options, MPI_Comm comm);
00167
00168 void __cdecl PARGRMETIS(
00169 idxtype *vtxdist, idxtype *xadj, idxtype *vwgt, idxtype *adjncy, idxtype *adjwgt,
00170 int ndims, floattype *xyz, idxtype *part, int *options, MPI_Comm comm);
00171
00172 void __cdecl PARGMETIS(
00173 idxtype *vtxdist, idxtype *xadj, idxtype *adjncy, int ndims, floattype *xyz,
00174 idxtype *part, int *options, MPI_Comm comm);
00175
00176 void __cdecl PARRMETIS(
00177 idxtype *vtxdist, idxtype *xadj, idxtype *vwgt, idxtype *adjncy,
00178 idxtype *adjwgt, idxtype *part, int *options, MPI_Comm comm);
00179
00180 void __cdecl PARUAMETIS(
00181 idxtype *vtxdist, idxtype *xadj, idxtype *vwgt, idxtype *adjncy,
00182 idxtype *adjwgt, idxtype *part, int *options, MPI_Comm comm);
00183
00184 void __cdecl PARDAMETIS(
00185 idxtype *vtxdist, idxtype *xadj, idxtype *vwgt, idxtype *adjncy, idxtype *adjwgt,
00186 idxtype *part, int *options, MPI_Comm comm);
00187
00188 #ifdef __cplusplus
00189 }
00190 #endif
00191
00192
00193
00194
00195 #endif