10#ifndef PBAT_GRAPH_PARTITION_H
11#define PBAT_GRAPH_PARTITION_H
13#include "PhysicsBasedAnimationToolkitExport.h"
52 } eInitialPartitioningStrategy{
87 Eigen::Ref<IndexVectorX const>
const& ptr,
88 Eigen::Ref<IndexVectorX const>
const& adj,
89 Eigen::Ref<IndexVectorX const>
const& wadj,
91 PartitioningOptions opts = PartitioningOptions{});
Definition Adjacency.h:24
IndexVectorX Partition(Eigen::Ref< IndexVectorX const > const &ptr, Eigen::Ref< IndexVectorX const > const &adj, Eigen::Ref< IndexVectorX const > const &wadj, Index nPartitions, PartitioningOptions opts)
Partition input graph.
Definition Partition.cpp:17
The main namespace of the library.
Definition Aliases.h:15
Eigen::Vector< Index, Eigen::Dynamic > IndexVectorX
Dynamic-size index vector type.
Definition Aliases.h:49
std::ptrdiff_t Index
Index type.
Definition Aliases.h:17
Options for graph partitioning.
Definition Partition.h:26
EObjective
Objective function for partitioning.
Definition Partition.h:30
@ MinEdgeCut
Minimize edge cut.
Definition Partition.h:32
@ Default
Default objective function.
Definition Partition.h:31
@ MinCommunicationVolume
Minimize communication volume.
Definition Partition.h:33
enum pbat::graph::PartitioningOptions::EObjective Default
Objective function for partitioning.
int nSeparators
Number of separators.
Definition Partition.h:65
bool bMinimizeSupernodalGraphDegree
Minimize supernodal graph degree.
Definition Partition.h:68
EInitialPartitioningStrategy
Initial partitioning strategy.
Definition Partition.h:46
@ EdgeCutSeparator
Edge cut separator.
Definition Partition.h:50
@ GreedyBisectionGrowing
Greedy bisection growing.
Definition Partition.h:48
@ Default
Default initial partitioning strategy.
Definition Partition.h:47
@ GreedyNodeBisectionGrowing
Greedy node bisection growing.
Definition Partition.h:51
@ RandomBisectionAndRefinement
Random bisection and refinement.
Definition Partition.h:49
bool bPerform2HopMatching
Perform 2-hop matching.
Definition Partition.h:69
int nPartitioningTrials
Number of partitioning trials.
Definition Partition.h:64
int nRefinementIters
Number of refinement iterations.
Definition Partition.h:66
bool bIdentifyConnectedComponents
Identify connected components.
Definition Partition.h:71
ERefinementStrategy
Refinement strategy.
Definition Partition.h:57
@ TwoSidedNodeFiducciaMattheyses
Two-sided node Fiduccia-Matthe.
Definition Partition.h:61
@ OneSidedNodeFiducciaMattheyses
One-sided node Fiduccia-Mattheyses.
Definition Partition.h:62
@ FiducciaMattheyses
Fiduccia-Mattheyses.
Definition Partition.h:59
@ Default
Default refinement strategy.
Definition Partition.h:58
@ GreedyCutAndVolumeRefinement
Greedy cut and volume refinement.
Definition Partition.h:60
ECoarseningStrategy
Coarsening strategy.
Definition Partition.h:38
@ RandomMatching
Random matching.
Definition Partition.h:40
@ Default
Default coarsening strategy.
Definition Partition.h:39
@ SortedHeavyEdgeMatching
Sorted heavy edge matching.
Definition Partition.h:41
bool bEnforceContiguousPartitions
Enforce contiguous partitions.
Definition Partition.h:70
int rngSeed
Random number generator seed.
Definition Partition.h:67