PPL Logo

libs/ck-libs/metis/libmetis/srefine.c File Reference

Go to the source code of this file.

Functions

void Refine2WayNode (ctrl_t *ctrl, graph_t *orggraph, graph_t *graph)
void Allocate2WayNodePartitionMemory (ctrl_t *ctrl, graph_t *graph)
void Compute2WayNodePartitionParams (ctrl_t *ctrl, graph_t *graph)
void Project2WayNodePartition (ctrl_t *ctrl, graph_t *graph)


Function Documentation

void Refine2WayNode ( ctrl_t ctrl,
graph_t orggraph,
graph_t graph 
)

This function is the entry point of the separator refinement. It does not perform any refinement on graph, but it starts by first projecting it to the next level finer graph and proceeds from there.

Definition at line 23 of file srefine.c.

References CheckNodePartitionParams(), Compute2WayNodePartitionParams(), ctrl_t::dbglvl, graph_t::finer, FM_2WayNodeBalance(), FM_2WayNodeRefine1Sided(), FM_2WayNodeRefine2Sided(), gk_errexit(), METIS_DBG_TIME, METIS_RTYPE_SEP1SIDED, METIS_RTYPE_SEP2SIDED, ctrl_t::niter, Project2WayNodePartition(), ctrl_t::ProjectTmr, ctrl_t::RefTmr, ctrl_t::rtype, and ctrl_t::UncoarsenTmr.

Referenced by MlevelNodeBisectionL1(), and MlevelNodeBisectionL2().

Here is the call graph for this function:

Here is the caller graph for this function:

void Allocate2WayNodePartitionMemory ( ctrl_t ctrl,
graph_t graph 
)

This function allocates memory for 2-way node-based refinement

Definition at line 66 of file srefine.c.

References graph_t::bndind, graph_t::bndptr, gk_malloc(), graph_t::nrinfo, graph_t::nvtxs, graph_t::pwgts, and graph_t::where.

Referenced by ConstructMinCoverSeparator(), ConstructSeparator(), METIS_NodeRefine(), and Project2WayNodePartition().

Here is the call graph for this function:

Here is the caller graph for this function:

void Compute2WayNodePartitionParams ( ctrl_t ctrl,
graph_t graph 
)

This function computes the edegrees[] to the left & right sides

Definition at line 83 of file srefine.c.

References graph_t::adjncy, adjncy, graph_t::bndind, graph_t::bndptr, CheckNodeBnd(), nrinfo_t::edegrees, graph_t::mincut, graph_t::nbnd, graph_t::nrinfo, graph_t::nvtxs, graph_t::pwgts, graph_t::vwgt, vwgt, graph_t::where, where, graph_t::xadj, and xadj.

Referenced by ConstructMinCoverSeparator(), ConstructSeparator(), GrowBisectionNode(), GrowBisectionNode2(), METIS_NodeRefine(), MlevelNodeBisectionMultiple(), Project2WayNodePartition(), and Refine2WayNode().

Here is the call graph for this function:

Here is the caller graph for this function:

void Project2WayNodePartition ( ctrl_t ctrl,
graph_t graph 
)

This function projects the node-based bisection

Definition at line 137 of file srefine.c.

References Allocate2WayNodePartitionMemory(), graph_t::cmap, graph_t::coarser, Compute2WayNodePartitionParams(), FreeGraph(), graph_t::nvtxs, graph_t::where, and where.

Referenced by Refine2WayNode().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Mon Sep 21 08:10:16 2020 for Charm++ by  doxygen 1.5.5