CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Pre-Processing

Problems with preserving baffles with scotch parallel decomposition

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes
  • 1 Post By simply-alex

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 22, 2019, 07:24
Question Problems with preserving baffles with scotch parallel decomposition
  #1
Member
 
Anna Feichtner
Join Date: Dec 2016
Location: Cornwall (UK)
Posts: 36
Rep Power: 10
AnnaF is on a distinguished road
Hi all

I am trying to decompose my case with the scotch (and simple) method with baffle/patch preservation, but my baffle (set up as cyclic) gets split between two processors.

It is a 2D mesh with a vertical surface which is defined as a baffle/faceZone. The baffle gets split between two processors when I decompose the domain into 14 subdomains, which leads to problems later on. I don't get any error messages, but I get a message that the baffle is specified:
Code:
  “…
  Selecting decompositionMethod scotch
  Selecting decompositionConstraint preserveBaffles
  preserveBaffles : setting constraints to preserve baffles
  Selecting decompositionConstraint preservePatches
  preservePatches : adding constraints to keep owner of faces in patches 1(plateBaffle) on same processor. This only makes sense for cyclics.
  Selecting decompositionConstraint preserveFaceZones
  preserveFaceZones : adding constraints to keep owner and neighbour of faces in zones 1(plateBaffle) on same processor
  
Please find pictures attached that show the baffle in red and the mesh parts of the two processors containing the baffle in blue and gray.

Things do work (baffles/patches exist and give correct results) when I decompose into e.g. 4 subdomains, but this could just be lucky as it doesn't have to split the baffles.

One question in general: Shouldn't baffles (or patches) be preserved with the scotch method automatically?


As it didn't preserve my baffles automatically, I added constraints for preservation to my decomposeParDict as follows:
Code:
numberOfSubdomains 14;

method          scotch;

constraints
{
    // Keep owner and neighbour of baffles on same processor
    // (ie, keep it detectable as a baffle).
    // Baffles are two boundary face sharing the same points
    preserveBaffles //baffles
    {
        type    preserveBaffles;
        enabled true;
    }
    preservePatches //patches
    {
        type    preservePatches;
        patches (plateBaffle); //(plateFront plateBack plateBaffle); //NO COMMAS!
        //patches   (plateFrontPatch_half0 plateBackPatch_half0 plateBafflePatch_half0);
        enabled true;
    }
    preserveFaceZones //faces
    {
        type    preserveFaceZones;
        zones   (plateBaffle); //(plateFront plateBack plateBaffle);
        //zones   (plateFrontPatch_half0 plateBackPatch_half0 plateBafflePatch_half0);
        enabled true;
    }
}
I have tried a few options as you can see, but all give me the same result: a decomposition across the baffle, no error messages. Of course, I could find a different number of subdomains which works out as a workaround, but I would like to have 14 for comparative reasons and it might be a bug (?)....

Please find my case attached.

Maybe someone has an idea?

Best wishes
Anna
Attached Images
File Type: png baffle_decompo.png (3.7 KB, 39 views)
File Type: png baffle_decompo_perspect.png (27.7 KB, 38 views)
Attached Files
File Type: zip 2Dplate_baffle_cfdOnline.zip (30.3 KB, 9 views)

Last edited by AnnaF; December 6, 2019 at 07:03. Reason: more trials; syntax correction; clarification
AnnaF is offline   Reply With Quote

Old   December 5, 2019, 10:21
Default
  #2
Member
 
Anna Feichtner
Join Date: Dec 2016
Location: Cornwall (UK)
Posts: 36
Rep Power: 10
AnnaF is on a distinguished road
I still do have this problem... does anyone have an idea?
AnnaF is offline   Reply With Quote

Old   June 19, 2020, 14:14
Default
  #3
Senior Member
 
Ehsan Asgari
Join Date: Apr 2010
Posts: 473
Rep Power: 18
syavash is on a distinguished road
Quote:
Originally Posted by AnnaF View Post
I still do have this problem... does anyone have an idea?
Hi Anna,

I am working with an older version of OpenFOAM (2.3.1), but I've got the same problem. I need to preserve a certain planar inlet patch on one process.
I have used similar options in decomposePar, but they apparently not working.

Did you find a solution for this issue?

Kind regards,
syavash
syavash is offline   Reply With Quote

Old   June 19, 2020, 15:47
Default
  #4
Member
 
Anna Feichtner
Join Date: Dec 2016
Location: Cornwall (UK)
Posts: 36
Rep Power: 10
AnnaF is on a distinguished road
Dear syavash

Unfortunately, I couldn't solve the problem with the scotch decomposition method. Instead I used manual decomposition to avoid this.

Good luck

Anna
AnnaF is offline   Reply With Quote

Old   June 19, 2020, 17:32
Default
  #5
Senior Member
 
Ehsan Asgari
Join Date: Apr 2010
Posts: 473
Rep Power: 18
syavash is on a distinguished road
Quote:
Originally Posted by AnnaF View Post
Dear syavash

Unfortunately, I couldn't solve the problem with the scotch decomposition method. Instead I used manual decomposition to avoid this.

Good luck

Anna
Anna,

Happy to hear that it worked for you.
How many processes you decomposed into?
I have seen how manual method works, but I wonder if there is a straightforward way to use it for large number of processes (over 100)?

Kind regards
Syavash
syavash is offline   Reply With Quote

Old   June 21, 2020, 07:21
Default
  #6
Member
 
Anna Feichtner
Join Date: Dec 2016
Location: Cornwall (UK)
Posts: 36
Rep Power: 10
AnnaF is on a distinguished road
Hi again

I have not looked into it for a larger number of processes. I only decomposed into 14 subdomains which was obviously not much effort to do it manually. I will have another look at my case and if I find out more I would give you an update.

Best wishes
Anna
AnnaF is offline   Reply With Quote

Old   April 6, 2021, 04:04
Default
  #7
New Member
 
Alexandra H
Join Date: May 2020
Posts: 4
Rep Power: 6
simply-alex is on a distinguished road
Are you still facing the same problem?

Depending on which type of internal boundary you introduce, OpenFOAM wants different constraints (as you know).

For baffles
Code:
    baffles
    {
        type    preserveBaffles;
        enabled true;
    }
For cyclics
Code:
    patches
    {
        type    preservePatches; //set (".*") for all patches, & DONT USE COMMAS!
        patches (cyclicPatchA0 cyclicPatchA1 cyclicPatchB0 cyclicPatchB1);
        enabled false;
    }
for AMIcyclics
Code:
    processors
    {
        type    singleProcessorFaceSets;
        sets
        (       (cyclicAMI_A    -1) //these names are specefied in topoSetDict
                (cyclicAMI_B    -1) //these names are specefied in topoSetDict
        );
        enabled true;
    }
could it be that you are using AMI cyclics in your setup?
fly_light likes this.
simply-alex is offline   Reply With Quote

Old   November 7, 2024, 08:09
Default
  #8
New Member
 
Lorenzo Fornasari
Join Date: Dec 2023
Posts: 1
Rep Power: 0
l_fornasari is on a distinguished road
Hey Ana,

I was having a similar problem with baffles aparently being split between processors, but it turns out the problem had to do with using GAMG to solve the matrices.

Code:
[8] --> FOAM FATAL ERROR: (openfoam-2306)
[8] Attempt to cast type cyclic to type processorLduInterface
[8] 
[8]     From Type& Foam::refCast(U&) [with Type = const Foam::processorLduInterface; U = const Foam::lduInterface]
[8]     in file lnInclude/typeInfo.H at line 154.
[8] 
FOAM parallel run aborting
I still dont quite understand why, but changing my solvers to conjugate gradients solved my problem.


Hope it helps..
l_fornasari is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Parallel decomposition for large cases me3840 OpenFOAM Pre-Processing 0 March 28, 2019 17:10
[snappyHexMesh] How to define to right point for locationInMesh Mirage12 OpenFOAM Meshing & Mesh Conversion 7 March 13, 2016 15:07
OpenFOAM Scotch Decomposition: Version and Reference dancfd OpenFOAM Pre-Processing 4 April 16, 2014 22:40
Problems with MFIX code and Parallel Processing. Fernando Pio Main CFD Forum 4 August 29, 2006 15:33
CFX - Parallel Problems CFX User CFX 0 November 1, 2004 19:12


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