guilleTessi |
March 3, 2020 08:39 |
multiLevel decomposition error
Hello FOAMers,
I've been asigned with the task of making a multiLevel decomposition based on the following conditions:
- level0: 12 subdomains, manual method, using a custom cellDist file.
- level1: 64 subdomains, simple method, with n (64 1 1).
The cellDist file is created using the decomposePar and setFields tools and by defining boxes based on the boxToCell strategy, in order to set a label to each cell inside the boxes. After some operations done to the file, the content is as follows:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class labelList;
location "constant";
object cellDist;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
7882848
(
1
...
7
)
;
// ************************************************************************* //
Now that both levels are ready, the decomposeParDict file setting is next in order to run the final decomposition, which is as follows:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 768;
method multiLevel;
multiLevelCoeffs
{
level0 // boxes
{
numberOfSubdomains 12;
method manual;
manualCoeffs
{
dataFile "cellDist";
}
}
level1
{
numberOfSubdomains 64;
method simple;
simpleCoeffs
{
n (64 1 1);
delta 0.001;
order xyz;
}
}
}
// ************************************************************************* //
After running the decomposePar tool, the output shows the following error:
Code:
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: dev
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
Build : dev-0f5fbb7ab16c
Exec : decomposePar
Date : Mar 03 2020
Time : 01:12:40
Host : "haswell"
PID : 21095
I/O : uncollated
Case : /10TB/GuilleRefCase-basegh103
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Decomposing mesh region0
Create mesh
Calculating distribution of cells
Selecting decompositionMethod multiLevel
Selecting decompositionMethod manual
Selecting decompositionMethod simple
decompositionMethod multiLevel :
level 0 decomposing with manual into 12 subdomains.
level 0 decomposing with simple into 64 subdomains.
--> FOAM FATAL ERROR:
Not implemented
From function virtual Foam::labelList Foam::manualDecomp::decompose(const labelListList&, const pointField&, const scalarField&)
in file manualDecomp/manualDecomp.H at line 108.
FOAM aborting
#0 Foam::error::printStack(Foam::Ostream&) at ??:?
#1 Foam::error::abort() at ??:?
#2 Foam::manualDecomp::decompose(Foam::List<Foam::List<int> > const&, Foam::Field<Foam::Vector<double> > const&, Foam::Field<double> const&) at ??:?
#3 Foam::multiLevelDecomp::decompose(Foam::List<Foam::List<int> > const&, Foam::Field<Foam::Vector<double> > const&, Foam::Field<double> const&, Foam::List<int> const&, int, Foam::Field<int>&) at ??:?
#4 Foam::multiLevelDecomp::decompose(Foam::polyMesh const&, Foam::Field<Foam::Vector<double> > const&, Foam::Field<double> const&) at ??:?
#5 Foam::decompositionMethod::decompose(Foam::polyMesh const&, Foam::Field<Foam::Vector<double> > const&) at ??:?
#6 Foam::decompositionMethod::decompose(Foam::polyMesh const&, Foam::Field<double> const&, Foam::List<bool> const&, Foam::PtrList<Foam::List<int> > const&, Foam::List<int> const&, Foam::List<Foam::Pair<int> > const&) at ??:?
#7 Foam::decompositionMethod::decompose(Foam::polyMesh const&, Foam::Field<double> const&) at ??:?
#8 ? in "/share/GuilleMod25OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#9 ? in "/share/GuilleMod25OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#10 ? in "/share/GuilleMod25OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/bin/decomposePar"
#11 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#12 ? in "/share/GuilleMod25OpenFOAM/OpenFOAM-dev/platforms/linux64GccDPInt32Opt/bin/decomposePar"
I believe that there is an issue with the multiLevel decomposition method (maybe it is a wrong setting or parameter), as running each decomposition level separately goes without trouble.
If someone has any idea of which is the main cause of this error or how to solve it, would be wonderful.
Thanks in advance,
Guillermo
|