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:
b { job=t, map=t, poli=S, sep= ( m { asc=b { bnd=d{pass=40,dif=1,rem=1}f{move=80,pass=-1,bal=0.005}, org=f{move=80,pass=-1,bal=0.005}, width=3 }, low=h{pass=10}f{move=80,pass=-1,bal=0.0005}, type=h, vert=80, rat=0.8 } | m { asc=b { bnd=d{pass=40,dif=1,rem=1}f{move=80,pass=-1,bal=0.005}, org=f{move=80,pass=-1,bal=0.005}, width=3 }, low=h{pass=10}f{move=80,pass=-1,bal=0.0005}, type=h, vert=80, rat=0.8 } ) }
Definition in file scotchDecomp.C.
#include "src/decompositionMethods/scotchDecomp/scotchDecomp.H"
#include "src/OpenFOAM/db/runTimeSelection/addToRunTimeSelectionTable.H"
#include "src/OpenFOAM/primitives/Scalar/floatScalar/floatScalar.H"
#include "src/OpenFOAM/db/Time/Time.H"
#include "src/OpenFOAM/meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.H"
#include "src/OpenFOAM/db/IOstreams/Fstreams/OFstream.H"
#include "scotch.h"
Go to the source code of this file.
Namespaces | |
namespace | Foam |
Namespace for OpenFOAM. | |
Functions | |
defineTypeNameAndDebug (scotchDecomp, 0) | |
addToRunTimeSelectionTable (decompositionMethod, scotchDecomp, dictionaryMesh) |