summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/mrefine2.c
diff options
context:
space:
mode:
Diffstat (limited to 'benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/mrefine2.c')
-rw-r--r--benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/mrefine2.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/mrefine2.c b/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/mrefine2.c
new file mode 100644
index 0000000..91ad0b5
--- /dev/null
+++ b/benchmarks/CUDA/DG/3rdParty/ParMetis-3.1/METISLib/mrefine2.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright 1997, Regents of the University of Minnesota
+ *
+ * mrefine2.c
+ *
+ * This file contains the driving routines for multilevel refinement
+ *
+ * Started 7/24/97
+ * George
+ *
+ * $Id: mrefine2.c,v 1.1 2003/07/16 15:55:12 karypis Exp $
+ */
+
+#include <metis.h>
+
+
+/*************************************************************************
+* This function is the entry point of refinement
+**************************************************************************/
+void MocRefine2Way2(CtrlType *ctrl, GraphType *orggraph, GraphType *graph, float *tpwgts,
+ float *ubvec)
+{
+
+ IFSET(ctrl->dbglvl, DBG_TIME, starttimer(ctrl->UncoarsenTmr));
+
+ /* Compute the parameters of the coarsest graph */
+ MocCompute2WayPartitionParams(ctrl, graph);
+
+ for (;;) {
+ ASSERT(CheckBnd(graph));
+
+ IFSET(ctrl->dbglvl, DBG_TIME, starttimer(ctrl->RefTmr));
+ switch (ctrl->RType) {
+ case RTYPE_FM:
+ MocBalance2Way2(ctrl, graph, tpwgts, ubvec);
+ MocFM_2WayEdgeRefine2(ctrl, graph, tpwgts, ubvec, 8);
+ break;
+ default:
+ errexit("Unknown refinement type: %d\n", ctrl->RType);
+ }
+ IFSET(ctrl->dbglvl, DBG_TIME, stoptimer(ctrl->RefTmr));
+
+ if (graph == orggraph)
+ break;
+
+ graph = graph->finer;
+ IFSET(ctrl->dbglvl, DBG_TIME, starttimer(ctrl->ProjectTmr));
+ MocProject2WayPartition(ctrl, graph);
+ IFSET(ctrl->dbglvl, DBG_TIME, stoptimer(ctrl->ProjectTmr));
+ }
+
+ IFSET(ctrl->dbglvl, DBG_TIME, stoptimer(ctrl->UncoarsenTmr));
+}
+
+