View Issue Details

IDProjectCategoryView StatusLast Update
0003468OpenFOAMFeaturepublic2020-03-23 10:12
ReporterguilloteAssigned Tohenry 
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionsuspended 
PlatformGNU/LinuxOSUbuntuOS Version18.04
Product Versiondev 
Fixed in Versiondev 
Summary0003468: multiLevel decomposition error
DescriptionI'm trying to run the decomposePar tool with multiLevel decomposition method 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).

Total number of subdomains: 768.

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.

The decomposeParDict dictionary is as follows:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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:

--> 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
Steps To Reproduce1. Prepare the data file for a manual decomposition.
2. Config the decomposeParDict to use the multiLevel decomposition method and set the multiLevelCoeffs subdict to use two levels: one set with the manual method using the data file from step 1; another set with the simple method along the x axis.
3. Run the decomposePar tool.
TagsNo tags attached.

Activities

guillote

2020-03-19 02:24

reporter  

decomposePar.log (3,035 bytes)
decomposeParDict (1,117 bytes)
/*--------------------------------*- 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;
        }
    }
}

// ************************************************************************* //
decomposeParDict (1,117 bytes)

henry

2020-03-19 17:25

manager   ~0011261

manualDecomp does not currently support this mode of operation:

        //- Return for every coordinate the wanted processor number. Explicitly
        // provided connectivity - does not use mesh_.
        // The connectivity is equal to mesh.cellCells() except for
        // - in parallel the cell numbers are global cell numbers (starting
        // from 0 at processor0 and then incrementing all through the
        // processors)
        // - the connections are across coupled patches
        virtual labelList decompose
        (
            const labelListList& globalCellCells,
            const pointField& cc,
            const scalarField& cWeights
        )
        {
            NotImplemented;
            return labelList(0);
        }

guillote

2020-03-20 14:41

reporter   ~0011262

Thank you Henry for the quick reply. Any estimated date for this to be added to OpenFOAM's dev backlog?.

Best regards,

Guillermo Tessi

henry

2020-03-20 14:53

manager   ~0011263

We don't have any plans to add this functionality, it has not been requested by any of the sponsors. Are you interested in either contributing a patch or funding this development?

guillote

2020-03-22 21:03

reporter   ~0011272

I could try to implement this feature but unfortunately I'm not well educated in the depths of the decomposition strategies and classes. Last time I've developed something for OpenFOAM was a library for dynamic meshes using the cell-layer addition/removal technique in parallel for 2.3.0 version.

henry

2020-03-23 10:12

manager   ~0011273

Pending funding or contribution.

Issue History

Date Modified Username Field Change
2020-03-19 02:24 guillote New Issue
2020-03-19 02:24 guillote File Added: decomposePar.log
2020-03-19 02:24 guillote File Added: decomposeParDict
2020-03-19 17:25 henry Note Added: 0011261
2020-03-19 17:25 henry Category Bug => Feature
2020-03-19 17:25 henry Description Updated View Revisions
2020-03-19 17:25 henry Steps to Reproduce Updated View Revisions
2020-03-20 14:41 guillote Note Added: 0011262
2020-03-20 14:53 henry Note Added: 0011263
2020-03-22 21:03 guillote Note Added: 0011272
2020-03-23 10:12 henry Assigned To => henry
2020-03-23 10:12 henry Status new => closed
2020-03-23 10:12 henry Resolution open => suspended
2020-03-23 10:12 henry Fixed in Version => dev
2020-03-23 10:12 henry Note Added: 0011273