ug4
|
creates partition maps of different structure and provides some easy to use domain distribution methods. More...
Functions | |
function util | DistributeDomain (dom, partitioningMethod, verticalInterfaces, numTargetProcs, distributionLevel, wFct) |
function util | PartitionMapBisection (dom, partitionMapOut, numProcs) |
function util | PartitionMapLexicographic2D (dom, partitionMapOut, numNodesX, numNodesY, numProcsPerNode) |
function util | PartitionMapMetis (dom, partitionMapOut, numProcs, baseLevel) |
function util | PartitionMapMetisReweigh (dom, partitionMapOut, numProcs, baseLevel, wFct) |
function util | PartitionMapRegularGrid (dom, partitionMapOut, numNodesX, numNodesY, numNodesZ) |
creates partition maps of different structure and provides some easy to use domain distribution methods.
function util DistributeDomain | ( | dom | , |
partitioningMethod | , | ||
verticalInterfaces | , | ||
numTargetProcs | , | ||
distributionLevel | , | ||
wFct | |||
) |
Distributes the top-level of a domain to the given number of processes. This method has to be called by all processes with the same parameters!
dom | (Domain) A valid domain instance. |
partitioningMethod | (optional string) Choose the partitioning method. Valid values are: "bisection", "metis" default is "bisection". "metis" is only available, if ug has been built with metis support. |
verticalInterfaces | (optional bool) Trigger creation of vertical interfaces. vertical interfaces are required for multi-grid solvers. If you're only going to solve on the surface grid, vertical interfaces may introduce an unnecessary overhead. Default is true |
numTargetProcs | (optional integer) The number of target processes to which the domain will be distributed. This shouldn't be more than there are elements in the top-level. Default is NumProcs() |
distributionLevel | (optional integer) Sets the level on which distribution is performed. Default is the domains top-level. Currently only supported in partitioningMethod "metis". |
wFct | (optional SmartPtr<EdgeWeighting>) Sets the weighting function for the 'metisReweigh' partitioning method. |
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / domain_distribution_util.lua :66-128
function util PartitionMapBisection | ( | dom | , |
partitionMapOut | , | ||
numProcs | |||
) |
create a partition map by performing repeated bisection
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / domain_distribution_util.lua :132-165
function util PartitionMapLexicographic2D | ( | dom | , |
partitionMapOut | , | ||
numNodesX | , | ||
numNodesY | , | ||
numProcsPerNode | |||
) |
performs lexicographic ordering from the lower left to the upper right. Since each node can consist of multiple processes, we can further perform a 'hierarchical' lexicographic ordering. Set numProcsPerNode to 1 to retrieve a default ordering. Set it to any square of n (n = 2, 3, ...) to retrieve lexicographic ordered subgrids in each node (a node is considered to be a square grid itself). If numProcsPerNode is not a square-number, then it will be defaulted to 1. Since this method adds target procs 0, ..., numNodesX * numNodesY * numProcsPerNode to the given partitionMap, it is not suited for redistribution.
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / domain_distribution_util.lua :201-236
function util PartitionMapMetis | ( | dom | , |
partitionMapOut | , | ||
numProcs | , | ||
baseLevel | |||
) |
create a partition map by using metis graph partitioning. This only works if Metis is available in the current build. Use PartitionDomain_MetisKWay directly in this case.
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / domain_distribution_util.lua :170-176
function util PartitionMapMetisReweigh | ( | dom | , |
partitionMapOut | , | ||
numProcs | , | ||
baseLevel | , | ||
wFct | |||
) |
create a partition map by using metis graph partitioning and correct weights of dual graph edges by weighting function. This only works if Metis is available in the current build. Use PartitionDomain_MetisKWay directly in this case.
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / domain_distribution_util.lua :182-188
function util PartitionMapRegularGrid | ( | dom | , |
partitionMapOut | , | ||
numNodesX | , | ||
numNodesY | , | ||
numNodesZ | |||
) |
Partitions the grid by assigning each element to a process corresponding to the index of the cell in which the elements center lies. Make sure that numNodesX, numNodesY and numNodesZ are >= 1.
location: /home/runner/work/docs/docs/ug4/ugcore/scripts/util / domain_distribution_util.lua :241-252