PhysicsBasedAnimationToolkit 0.0.10
Cross-platform C++20 library of algorithms and data structures commonly used in computer graphics research on physically-based simulation.
Loading...
Searching...
No Matches
Partition.h
Go to the documentation of this file.
1
9
10#ifndef PBAT_GRAPH_PARTITION_H
11#define PBAT_GRAPH_PARTITION_H
12
13#include "PhysicsBasedAnimationToolkitExport.h"
14#include "pbat/Aliases.h"
15
16namespace pbat {
17namespace graph {
18
73
86PBAT_API IndexVectorX Partition(
87 Eigen::Ref<IndexVectorX const> const& ptr,
88 Eigen::Ref<IndexVectorX const> const& adj,
89 Eigen::Ref<IndexVectorX const> const& wadj,
90 Index nPartitions,
91 PartitioningOptions opts = PartitioningOptions{});
92
93} // namespace graph
94} // namespace pbat
95
96#endif // PBAT_GRAPH_PARTITION_H
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