33 #ifndef __H__UG__domain_distribution__
34 #define __H__UG__domain_distribution__
46 template <
typename TDomain>
51 template <
typename TDomain>
53 int numCellsX,
int numCellsY,
int numCellsZ,
57 template <
typename TDomain>
60 int numPartitions,
size_t baseLevel = 0,
61 int hWeight = 1,
int vWeight = 1);
68 template <
typename TDomain>
71 int numPartitions,
size_t baseLevel,
77 template <
typename TDomain>
80 int numPartitions,
size_t level);
84 template <
typename TDomain>
87 bool createVerticalInterfaces);
Definition: smart_pointer.h:108
Used to describe how a domain shall be distributed in a parallel environment.
Definition: partition_map.h:54
static bool PartitionDomain_Bisection(TDomain &domain, PartitionMap &partitionMap, int firstAxisToCut)
partitions a domain by repeatedly cutting it along the different axis
static bool PartitionDomain_MetisKWay(TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t baseLevel=0, int hWeight=1, int vWeight=1)
partitions a domain by using graph-based partitioning by METIS
static bool PartitionDomain_LevelBased(TDomain &domain, PartitionMap &partitionMap, int numPartitions, size_t level)
Partitions a domain based on the elements of one level.
static bool PartitionDomain_RegularGrid(TDomain &domain, PartitionMap &partitionMap, int numCellsX, int numCellsY, int numCellsZ, bool surfaceOnly)
partitions a domain by sorting all elements into a regular grid
static bool DistributeDomain(TDomain &domainOut, PartitionMap &partitionMap, bool createVerticalInterfaces)
distributes a already distributed domain onto the specified processes