Go to the source code of this file.
Namespaces | |
Foam | |
Namespace for OpenFOAM. | |
Functions | |
void | scotchDecompLoad () |
defineTypeNameAndDebug (scotchDecomp, 0) | |
addToRunTimeSelectionTable (decompositionMethod, scotchDecomp, dictionary) | |
Original source file scotchDecomp.C
From scotch forum:
By: Francois PELLEGRINI RE: Graph mapping 'strategy' string [ reply ] 2008-08-22 10:09 Strategy handling in Scotch is a bit tricky. In order not to be confused, you must have a clear view of how they are built. Here are some rules:
1- Strategies are made up of "methods" which are combined by means of "operators".
2- A method is of the form "m{param=value,param=value,...}", where "m" is a single character (this is your first error: "f" is a method name, not a parameter name).
3- There exist different sort of strategies : bipartitioning strategies, mapping strategies, ordering strategies, which cannot be mixed. For instance, you cannot build a bipartitioning strategy and feed it to a mapping method (this is your second error).
To use the "mapCompute" routine, you must create a mapping strategy, not a bipartitioning one, and so use stratGraphMap() and not stratGraphBipart(). Your mapping strategy should however be based on the "recursive bipartitioning" method ("b"). For instance, a simple (and hence not very efficient) mapping strategy can be :
"b{sep=f}"
which computes mappings with the recursive bipartitioning method "b", this latter using the Fiduccia-Mattheyses method "f" to compute its separators.
If you want an exact partition (see your previous post), try "b{sep=fx}".
However, these strategies are not the most efficient, as they do not make use of the multi-level framework.
To use the multi-level framework, try for instance:
"b{sep=m{vert=100,low=h,asc=f}x}"
The current default mapping strategy in Scotch can be seen by using the "-vs" option of program gmap. It is, to date:
m { asc=b { width=3, bnd=d{pass=40, dif=1, rem=0} f{move=80, pass=-1, bal=0.01}, org=f{move=80,pass=-1,bal=0.01} }, low=r { job=t, bal=0.01, map=t, poli=S, sep= ( m { asc=b { bnd=f{move=120, pass=-1, bal=0.01, type=b}, org=f{move=120,pass=-1,bal=0.01,type=b}, width=3 }, low=h{pass=10} f{move=120,pass=-1,bal=0.01,type=b}, vert=120, rat=0.8 } |m { asc=b { bnd=f{move=120,pass=-1,bal=0.01,type=b}, org=f{move=120,pass=-1,bal=0.01,type=b}, width=3 }, low=h{pass=10} f{move=120,pass=-1,bal=0.01,type=b}, vert=120, rat=0.8 } ) }, vert=10000, rat=0.8, type=0 }
Note: instead of gmap run gpart <nProcs> -vs <grfFile> where <grfFile> can be obtained by running with 'writeGraph=true'
Definition in file scotchDecomp.C.
void scotchDecompLoad | ( | ) |
Definition at line 134 of file scotchDecomp.C.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.