View Issue Details

IDProjectCategoryView StatusLast Update
0002081OpenFOAMBugpublic2017-07-04 10:16
ReporterLIGA Assigned Tochris  
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
PlatformGNU/LinuxOSUbuntuOS Version14.04
Product Versiondev 
Summary0002081: Particles in combination with cyclicAMI don't work in parallel mode
DescriptionA case is set up using sprayDymFoam with cyclicAMI patches. This works fine, as long as it runs on a single processor. In parallel mode the following error message is obtained:
---------------------------------------------------------------------------
real 0.00
user 0.00
sys 0.00
[0]
[0]
[0] --> FOAM FATAL ERROR:
[0] Particle tracking across AMI patches is only currently supported for cases where the AMI patches reside on a single processor
[0]
[0] From function void Foam::Cloud<ParticleType>::initCloud(const bool)
[0] in file /users/grosmor/OpenFOAM/OpenFOAM-3.0.x/src/lagrangian/basic/lnInclude/Cloud.C at line 59.
[0]
FOAM parallel run aborting
----------------------------------------------------------------------------
TagsNo tags attached.

Activities

wyldckat

2016-05-03 21:08

updater   ~0006225

@LIGA: The reason why this is technically a feature request is because a workaround for this already exists in OpenFOAM for quite sometime, as the error message implies: https://github.com/OpenFOAM/OpenFOAM-3.0.x/blob/master/applications/utilities/parallelProcessing/decomposePar/decomposeParDict

You can try using in "decomposeParDict" either preservePatches or preserveBaffles or even preserveFaceZones is you still have the faceZones after the creation of the AMI patches.

LIGA

2016-05-04 09:18

reporter  

AMI1_internalMesh.png (454,715 bytes)

LIGA

2016-05-04 09:19

reporter  

AMI1.png (337,204 bytes)

LIGA

2016-05-04 09:19

reporter  

decomposeParDict (1,244 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;
    location    "system";
    object      decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

numberOfSubdomains 2;

method          scotch;


preservePatches
(
    AMI_0 AMI_01 AMI_1 AMI_11 AMI_2 AMI_21
);

/*
preserveFaceZones
(
    AMI
);
*/

simpleCoeffs
{
    n               ( 2 1 1 );
    delta           0.001;
}

hierarchicalCoeffs
{
    n               ( 1 1 1 );
    delta           0.001;
    order           xyz;
}

manualCoeffs
{
    dataFile        "";
}


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

LIGA

2016-05-04 09:19

reporter   ~0006226

@wyldckat: Thanks for your hint. I just tried this but unfortunately not with the expected result. As I understand the option "preserve" this means that none of the specified zones or patches will not be decomposed. However, when using this option I still get an unfavorable decomposition (attachment). The red faceset is one part of an AMI. As can be seen, the adjacent part (grey) is partly assigned to the other part of the mesh.

MattijsJ

2016-07-19 20:26

reporter   ~0006539

You cannot use preservePatches, preserveFaceZones - these put owner and neighbour side on the same processor. For an AMI however there is no one-to-one correspondence but instead a many-to-many. Instead the only thing that makes sense is to use the singleProcessorFaceSets which can force a whole faceSet onto a single processor.

You'll have to do a bit of topoSet magic to collect the AMI patch faces into a faceSet ('patchToFace', see $FOAM_UTILITIES/mesh/manipulation/topoSet/topoSetDict).

chris

2017-06-30 10:12

manager   ~0008285

A workaround has been provided which can overcome the issue. A more user-friendly solution requires funding at this stage.

Issue History

Date Modified Username Field Change
2016-05-03 13:31 LIGA New Issue
2016-05-03 15:47 henry Priority urgent => normal
2016-05-03 15:47 henry Severity major => feature
2016-05-03 15:47 henry Product Version 3.0.0 => dev
2016-05-03 21:08 wyldckat Note Added: 0006225
2016-05-04 09:18 LIGA File Added: AMI1_internalMesh.png
2016-05-04 09:19 LIGA File Added: AMI1.png
2016-05-04 09:19 LIGA File Added: decomposeParDict
2016-05-04 09:19 LIGA Note Added: 0006226
2016-07-19 20:26 MattijsJ Note Added: 0006539
2017-06-30 10:12 chris Assigned To => chris
2017-06-30 10:12 chris Status new => closed
2017-06-30 10:12 chris Resolution open => fixed
2017-06-30 10:12 chris Note Added: 0008285