CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   multiLevel decomposition error (https://www.cfd-online.com/Forums/openfoam-pre-processing/224751-multilevel-decomposition-error.html)

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

guilleTessi March 27, 2020 07:38

Hi FOAMers,

I've filled in a bug report in OpenFOAM's Issue Tracker about this problem and got an answer from Henry stating that the manual method is not yet implemented into the multiLevel decomposition flow.

With that being said, I will assume that my case dictionaries are set up properly. But please take this with a grain of salt as I've been using the OpenFOAM-dev August '19 release (things are most likely to change in the dev branch).

Best regards,

Guillermo


All times are GMT -4. The time now is 22:32.