61 #ifndef DomainPartitioner_h 62 #define DomainPartitioner_h 64 #include <utility/matrix/ID.h> 65 #include "utility/kernel/CommandEntity.h" 68 class GraphPartitioner;
70 class PartitionedDomain;
73 class TaggedObjectStorage;
95 Graph *theElementGraph;
96 std::vector<Graph> theBoundaryElements;
98 TaggedObjectStorage *theNodeLocations;
104 bool usingMainDomain;
107 int inic(
const size_t &);
115 virtual int partition(
int numParts,
bool useMainDomain =
false,
int mainPartition = 0);
127 bool adjacentVertexNotInOther =
true);
131 bool adjacentVertexNotInOther =
true);
135 Graph &theWeightedPartitionGraph,
136 bool mustReleaseToLighter =
true,
137 double factorGreater = 1.0,
138 bool adjacentVertexNotInOther =
true);
141 Graph &theWeightedPartitionGraph,
142 bool mustReleaseToLighter =
true,
143 double factorGreater = 1.0,
144 bool adjacentVertexNotInOther =
true);
DomainPartitioner(GraphPartitioner &theGraphPartitioner, LoadBalancer &theLoadBalancer)
Constructor.
Definition: DomainPartitioner.cpp:111
virtual int swapVertex(int from, int to, int vertexTag, bool adjacentVertexNotInOther=true)
Moves a vertes from subdomain from to subdomain to.
Definition: DomainPartitioner.cpp:670
Object that can partition and load balance a PartitionedDomain.
Definition: DomainPartitioner.h:88
Vector of integers.
Definition: ID.h:95
virtual int swapBoundary(int from, int to, bool adjacentVertexNotInOther=true)
Method to move from from to to, all elements on the interface of from that are adjacent with to...
Definition: DomainPartitioner.cpp:1028
virtual int partition(int numParts, bool useMainDomain=false, int mainPartition=0)
Method invoked to partition the Domain.
Definition: DomainPartitioner.cpp:171
virtual int getNumPartitions(void) const
Returns the number of partitions in the PartitionedDomain.
Definition: DomainPartitioner.cpp:614
virtual Graph & getColoredGraph(void)
Return the colored graph.
Definition: DomainPartitioner.cpp:641
Objet that can execute python scripts.
Definition: CommandEntity.h:40
Base class for graph partitioners.
Definition: GraphPartitioner.h:85
The Graph class provides the abstraction of a graph.
Definition: Graph.h:94
virtual Graph & getPartitionGraph(void)
Return the partition graph.
Definition: DomainPartitioner.cpp:623
virtual int releaseBoundary(int from, Graph &theWeightedPartitionGraph, bool mustReleaseToLighter=true, double factorGreater=1.0, bool adjacentVertexNotInOther=true)
Release all the elements on the boundary of subdomain from.
Definition: DomainPartitioner.cpp:1526
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Partitioned domain (aggregation of subdomains).
Definition: PartitionedDomain.h:91
virtual int releaseVertex(int from, int vertexTag, Graph &theWeightedPartitionGraph, bool mustReleaseToLighter=true, double factorGreater=1.0, bool adjacentVertexNotInOther=true)
Method which when invoked will take the element given by vertex reference of the vertex whose tag is ...
Definition: DomainPartitioner.cpp:1435
A LoadBalancer is an object used to balance a PartitionedDomain.
Definition: LoadBalancer.h:81
virtual int balance(Graph &theWeightedSubdomainGraph)
Load balance.
Definition: DomainPartitioner.cpp:581