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

decomposePar not working when cyclic boundaries involved.

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   August 2, 2016, 09:08
Default decomposePar not working when cyclic boundaries involved.
  #1
New Member
 
Fynn
Join Date: Feb 2016
Posts: 14
Rep Power: 2
PanPeter is on a distinguished road
Hello together,

I have the following problem: I define a simple 3D cylinder flow geometry in StarCcm+, convert it to an OpenFoam mesh with ccm26ToFoam, create the cyclic patches with createPatch and run it with icoFoam. Works fine.
But now I want to run it parallel, so I use decomposePar to partition my computational domain, its boundaries and quantities (U,p) and I get the following error:

Code:
--> FOAM FATAL IO ERROR: 
Cannot find patchField entry for cyclic PB_A1
Is your field uptodate with split cyclics?
Run foamUpgradeCyclics to convert mesh and fields to split cyclics.

file: /home/fyna/OpenFOAM/fyna-3.0.1/run/testing/lamFlow_FJA/0/cellId.boundaryField from line 212522 to line 212543.

    From function GeometricField<Type, PatchField, GeoMesh>::GeometricBoundaryField::readField(const DimensionedField<Type, GeoMesh>&, const dictionary&)
    in file /home/openfoam/OpenFOAM/OpenFOAM-3.0.1/src/OpenFOAM/lnInclude/GeometricBoundaryField.C at line 192.

FOAM exiting
Interestingly, the processor* folders are created with the respective constant subfolders but no U or p subfolders are generated. Running foamUpgradeCyclics beforehand does not seem to have an effect, that's the output:

Code:
Create time

Reading boundary from "/home/fyna/OpenFOAM/fyna-3.0.1/run/testing/lamFlow_FJA/constant/polyMesh/boundary"
Detected 0 old cyclics.

No changes made to boundary file.

Time: 0
Loading field cellId
No changes made to field cellId

Loading field cellType
No changes made to field cellType

Loading field p
No changes made to field p

Loading field U
No changes made to field U
After digging through discussions on that problem, I found that using preservePatches in the decomposeParDict help some people. However, it does not make a difference to me. I sill get the same error. This is my decomposeParDict file:

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  3.0.1                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

numberOfSubdomains 4;

// preservePatches (PB_A1 PB_A2);

method          simple;

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

distributed     no;

roots           ( );


// ************************************************************************* //
Can anybody help me out here?
cheers
PanPeter is online now   Reply With Quote

Old   August 2, 2016, 14:51
Default
  #2
Member
 
taygun gungor
Join Date: Mar 2015
Posts: 34
Rep Power: 3
clktp is on a distinguished road
// preservePatches (PB_A1 PB_A2);

I guess you need to uncomment this line, why did you comment it anyway?
clktp is offline   Reply With Quote

Old   August 2, 2016, 14:54
Default
  #3
New Member
 
Fynn
Join Date: Feb 2016
Posts: 14
Rep Power: 2
PanPeter is on a distinguished road
Hi,
Because I was testing its effect. As it didn't make any difference to the output, I left it commented.
PanPeter is online now   Reply With Quote

Old   August 2, 2016, 14:57
Default
  #4
Member
 
taygun gungor
Join Date: Mar 2015
Posts: 34
Rep Power: 3
clktp is on a distinguished road
sorry I didn't read the whole post, my bad. But one thing for sure, it should be uncommented.

It may be a issue with /constant/polymesh/boundary file. Can you put it here, it seems it doesn't understand which patches are cyclic. I remember I received an error like this when I didn't declare the cyclic pathces in the boundary file, however, it works for serial, which is kind of weird.
clktp is offline   Reply With Quote

Old   August 3, 2016, 03:47
Default
  #5
Member
 
Join Date: Feb 2015
Posts: 31
Rep Power: 3
HenningW is on a distinguished road
Did you look into you /constant/polyMesh and /0 files to figure out if the patch is included in there?
How is it defined in the /0 files? How in the /constant/polyMesh/boundaries?

It seems to me as if some definition of the patch is missing and thus you should not look at the decomposeParDict, which just happens to stumple upon an earlier error.
HenningW is offline   Reply With Quote

Old   August 3, 2016, 05:03
Default
  #6
New Member
 
Fynn
Join Date: Feb 2016
Posts: 14
Rep Power: 2
PanPeter is on a distinguished road
Hi Taygun and Henning,

I got the same error when I did't define the patches correctly and icoFoam wouldn't run but as I can run icoFoam in serial mode without errors, I don't think there's something wrong.
Here is my createpatchDict file:

Code:
pointSync true;

// Patches to create.
patches
(
    {
        name PB_A1;

        patchInfo
        {
            type cyclic;
            neighbourPatch PB_A2;
            matchTolerance  0.1;
        }

        constructFrom patches;
        patches (SymA1);
    }
    {
        name PB_A2;

        patchInfo
        {
            type cyclic;
            neighbourPatch PB_A1;
            matchTolerance  0.1;
        }

        constructFrom patches;
        patches (SymA2);
    }
);
It creates this /constant/polyMesh/boundary file:

Code:
5
(
    Wall
    {
        type            patch;
        nFaces          12060;
        startFace       630323;
    }
    Inlet
    {
        type            patch;
        nFaces          1800;
        startFace       642383;
    }
    Outlet
    {
        type            patch;
        nFaces          1800;
        startFace       644183;
    }
    PB_A1
    {
        type            cyclic;
        inGroups        1(cyclic);
        nFaces          10654;
        startFace       645983;
        matchTolerance  0.1;
        transform       unknown;
        neighbourPatch  PB_A2;
    }
    PB_A2
    {
        type            cyclic;
        inGroups        1(cyclic);
        nFaces          10654;
        startFace       656637;
        matchTolerance  0.1;
        transform       unknown;
        neighbourPatch  PB_A1;
    }
)
After that, I change the boundary type in 0/U and 0/p to:

Code:
dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    Inlet
    {
        type            fixedValue;
        value           uniform (2.0 0.0 3.0);
    }

    Outlet
    {
        type            zeroGradient;
    }

    Wall
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

    PB_A1
    {
        type            cyclic;
    }

    PB_A2
    {
        type            cyclic;
    }
}
Code:
dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0.0;

boundaryField
{
    Inlet
    {
    	type		zeroGradient;
    }

    Outlet
    {
        type            fixedValue;
        value           uniform 0;
    }

    Wall
    {
        type            zeroGradient;
    }

    PB_A1
    {
        type            cyclic;
    }
    
    PB_A2
    {
	    type		    cyclic;
    }
}
As said, the error is related to decomposePar and doesn't occur when running icoFoam serially.
PanPeter is online now   Reply With Quote

Old   August 3, 2016, 07:15
Default
  #7
Member
 
Join Date: Feb 2015
Posts: 31
Rep Power: 3
HenningW is on a distinguished road
Under the assumption that you cycle the rotation, you at least should change "transform unknown;" to "transform rotational;" in your boundary file.
HenningW is offline   Reply With Quote

Old   August 3, 2016, 13:23
Default
  #8
New Member
 
Fynn
Join Date: Feb 2016
Posts: 14
Rep Power: 2
PanPeter is on a distinguished road
Hi Henning,

It's a normal periodic boundary: the flat surfaces are parallel. The "transform unknown" is automatically added by createPatch. And commenting it has no effect on the error.
And the whole damn thing run well in serial, so there must be something odd happening when I decompose the mesh...

cheers
PanPeter is online now   Reply With Quote

Old   August 4, 2016, 07:56
Default
  #9
New Member
 
Fynn
Join Date: Feb 2016
Posts: 14
Rep Power: 2
PanPeter is on a distinguished road
When calling createPatch, it changes the /constant/polymesh files according to the createPatchDict. And that seems to work fine as I see a perfect pb in my simulations. But why is it also creating a folder "0.005" with the updated polyMesh folder? I don't see the point in that and openFoam is surprised that it's a time folder without boundary conditions. Any ideas??
PanPeter is online now   Reply With Quote

Old   August 4, 2016, 08:55
Default
  #10
New Member
 
Fynn
Join Date: Feb 2016
Posts: 14
Rep Power: 2
PanPeter is on a distinguished road
Hey, reading error messaged actually helps!

It said, decomposePar coundn't find the patch entry for my cyclic boundary in the 0/cellID file. Looking into that file, it is actually not just a list of numbers but at the EOF there's a boundary section, where the converted boundary names have to be changed again, just like in 0/U and 0/p. It should also be changed in 0/cellType.

And things work fine!
Thanks for your help
cheers
PanPeter is online now   Reply With Quote

Old   August 5, 2016, 07:09
Default
  #11
Member
 
taygun gungor
Join Date: Mar 2015
Posts: 34
Rep Power: 3
clktp is on a distinguished road
It's quite interesting. I wonder why it doesn't work properly, but glad to hear you've solved it. Good luck with your case!
clktp is offline   Reply With Quote

Reply

Tags
mesh conversion, parallel processing, starccm+

Thread Tools
Display Modes

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 On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cyclic Boundary Condition Errors? nyflyer OpenFOAM Running, Solving & CFD 2 April 26, 2016 14:14
No flow through periodic (cyclic) boundaries in impeller with foam-extend-3.1 anttiad9000 OpenFOAM Running, Solving & CFD 3 March 2, 2016 20:37
Periodic (cyclic) boundaries. ICEM Mesh to OpenFOAM 123 OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 0 May 6, 2014 05:49
snappyHexMesh - cyclic boundaries aylalisa OpenFOAM Meshing & Mesh Conversion 2 February 17, 2014 08:45
Parallel refineMesh with Cyclic Boundaries mchurchf OpenFOAM 6 June 20, 2012 13:06


All times are GMT -4. The time now is 08:11.