View Issue Details

IDProjectCategoryView StatusLast Update
0002159OpenFOAMPatchpublic2016-07-22 17:21
ReporterMattijsJAssigned Tohenry 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
PlatformGNU/LinuxOSOpenSuSEOS Version13.2
Product Versiondev 
Fixed in Versiondev 
Summary0002159: decomposing with constraints is extremely slow on big case
DescriptionTake e.g. the channel395 tutorial and change the blockMeshDict to generate 6M cells:

    hex (0 1 3 2 6 7 9 8) (400 250 30) simpleGrading (1 10.7028 1)
    hex (2 3 5 4 8 9 11 10) (400 250 30) simpleGrading (1 0.0934 1)

and add to decomposeParDict:

preservePatches
(
    sides1_half0 sides1_half1
    sides2_half0 sides2_half1
    inout1_half0 inout1_half1
    inout2_half0 inout2_half1
);

This is still running after 30 mins.

TagsNo tags attached.

Activities

MattijsJ

2016-07-22 14:02

reporter  

blockMeshDict (2,496 bytes)
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
    (0 0 0)
    (4 0 0)
    (0 1 0)
    (4 1 0)
    (0 2 0)
    (4 2 0)
    (0 0 2)
    (4 0 2)
    (0 1 2)
    (4 1 2)
    (0 2 2)
    (4 2 2)
);

blocks
(
    hex (0 1 3 2 6 7 9 8) (400 250 30) simpleGrading (1 10.7028 1)
    hex (2 3 5 4 8 9 11 10) (400 250 30) simpleGrading (1 0.0934 1)
);

edges
(
);

boundary
(
    bottomWall
    {
        type            wall;
        faces           ((0 1 7 6));
    }
    topWall
    {
        type            wall;
        faces           ((4 10 11 5));
    }

    sides1_half0
    {
        type            cyclic;
        neighbourPatch  sides1_half1;
        faces           ((0 2 3 1));
    }
    sides1_half1
    {
        type            cyclic;
        neighbourPatch  sides1_half0;
        faces           ((6 7 9 8));
    }

    sides2_half0
    {
        type            cyclic;
        neighbourPatch  sides2_half1;
        faces           ((2 4 5 3));
    }
    sides2_half1
    {
        type            cyclic;
        neighbourPatch  sides2_half0;
        faces           ((8 9 11 10));
    }

    inout1_half0
    {
        type            cyclic;
        neighbourPatch  inout1_half1;
        faces           ((1 3 9 7));
    }
    inout1_half1
    {
        type            cyclic;
        neighbourPatch  inout1_half0;
        faces           ((0 6 8 2));
    }

    inout2_half0
    {
        type            cyclic;
        neighbourPatch  inout2_half1;
        faces           ((3 5 11 9));
    }
    inout2_half1
    {
        type            cyclic;
        neighbourPatch  inout2_half0;
        faces           ((2 8 10 4));
    }
);

mergePatchPairs
(
);

// ************************************************************************* //
blockMeshDict (2,496 bytes)

MattijsJ

2016-07-22 14:03

reporter  

FaceCellWave.C (33,875 bytes)

MattijsJ

2016-07-22 14:03

reporter  

FaceCellWave.H (11,657 bytes)

MattijsJ

2016-07-22 14:03

reporter  

FaceCellWaveName.C (1,412 bytes)

MattijsJ

2016-07-22 14:03

reporter  

regionSplit.C (13,008 bytes)

MattijsJ

2016-07-22 14:03

reporter  

regionSplit.H (5,916 bytes)

MattijsJ

2016-07-22 14:06

reporter   ~0006552

The problem is the regionSplit algorithm which was tuned to efficiently handle a few regions. However in the case of decomposition with constraints it generates one region per cell and this was not handled efficiently.

Uploaded fixed versions of

src/meshTools/algorithms/MeshWave/FaceCellWave.*
src/meshTools/regionSplit/regionSplit.*

with these files the decomposition happens in under a minute.

henry

2016-07-22 17:21

manager   ~0006560

Resolved in OpenFOAM-dev by commit 2915e6ba197e54affca665fc7cfdf32190b569a5

Issue History

Date Modified Username Field Change
2016-07-22 14:02 MattijsJ New Issue
2016-07-22 14:02 MattijsJ File Added: blockMeshDict
2016-07-22 14:03 MattijsJ File Added: FaceCellWave.C
2016-07-22 14:03 MattijsJ File Added: FaceCellWave.H
2016-07-22 14:03 MattijsJ File Added: FaceCellWaveName.C
2016-07-22 14:03 MattijsJ File Added: regionSplit.C
2016-07-22 14:03 MattijsJ File Added: regionSplit.H
2016-07-22 14:06 MattijsJ Note Added: 0006552
2016-07-22 17:21 henry Note Added: 0006560
2016-07-22 17:21 henry Status new => resolved
2016-07-22 17:21 henry Fixed in Version => dev
2016-07-22 17:21 henry Resolution open => fixed
2016-07-22 17:21 henry Assigned To => henry