CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [Other] Cyclic patch problem! (https://www.cfd-online.com/Forums/openfoam-meshing/107224-cyclic-patch-problem.html)

SMartella September 20, 2012 12:20

Cyclic patch problem!
 
Hi foamers,

I have a problem with cyclic patches. I imported a mesh of a circular segment of a ventilated brake from gambit in OpenFoam (2.1.x) with fluent3DMeshToFoam (checkMesh is ok!). I have a periodic patch "p" (in gambit and fluent) that was divided in two patches (in openFoam): p and p_shadow. These zones in file costant/polymesh/boundary are of the "patch" type.

Code:

p_shadow
    {
        type            patch;
        nFaces          5909;
        startFace      1364963;
    }
    p
    {
        type            patch;
        nFaces          5909;
        startFace      1370872;

I want to convert these patches to cyclic. I tried to manually change the boundary file following the file boundary of mixer tutorial, then I run SRFSimpleFoam but there was a problem:

Code:

--> FOAM FATAL ERROR:
face 607 area does not match neighbour by 0.0105585% -- possible face ordering problem.
patch:p_shadow my area:5.21282e-07 neighbour area:5.21337e-07 matching tolerance:0.0001
Mesh face:1365570 fc:(0.0397671 0.198428 1.98036e-08)
Neighbour fc:(0.0397671 0.160532 0.116633)
If you are certain your matching is correct you can increase the 'matchTolerance' setting in the patch dictionary in the boundary file.
Rerun with cyclic debug flag set for more information.

    From function cyclicPolyPatch::calcTransforms()
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 220.

FOAM exiting

I did a checkMesh and it failed.

Code:

**Error in coupled point location: 3 faces have their 0th vertex not opposite their coupled equivalent. Average mismatch 1.34794937061e-05.
  <<Writing 3 faces with incorrectly matched 0th vertex to set coupledFaces

I understand that the problem is in manually changing boundary file and I read that the correct way to create a cyclic is to use createPatch, but i don't understand how to use it!

Can you help me? Thank you a lot.

Stefano

wyldckat October 5, 2012 08:36

Greetings Stefano and welcome to the forum!

I hope it's not too late... but even if it is, a similar question and answer are available here: http://www.cfd-online.com/Forums/ope...patchdict.html

Best regards,
Bruno

morard October 24, 2012 11:23

Hi,

I've used one geometry with some cyclic patches in OF 1.7.1 and everything worked fine. Now, when I want to use the same geometry in OF 2.1.x, it's not working. I run blockMesh and somehow geometry is created but when I run checkMesh I have the same error as SMartella

**Error in coupled point location: 1150 faces have their 0th vertex not opposite their coupled equivalent. Average mismatch 0.0166011.
<<Writing 1150 faces with incorrectly matched 0th vertex to set coupledFaces

then when I run paraFoam, it crashes with the following error:

--> FOAM FATAL ERROR:
More than one patch accessing the same transform but not of the same sign.
patch:fluid3_half0 transform:0 sign:-1 current transforms:(-1 0 0)

I didn't face anything similar in OF 1.7.1 so I can't imagine what's wrong here.

Problem is somewhere in the following patches:

boundary
(
fluid1_half0
{
type cyclic;
neighbourPatch fluid1_half1;
transform rotational;
rotationAxis (0 0 1);
rotationCentre (0 -50. 0);
faces
(
(17 21 43 39)
(21 0 22 43)
);
}

fluid1_half1
{
type cyclic;
neighbourPatch fluid1_half0;
transform rotational;
rotationAxis (0 0 1);
rotationCentre (0 -50. 0);
faces
(
(19 15 37 41)
(19 14 36 41)
);
}
..............

Any idea, suggestion...?

Regards,
Dejan

james80 November 14, 2012 04:23

--> FOAM FATAL ERROR:
More than one patch accessing the same transform but not of the same sign.
patch:fluid3_half0 transform:0 sign:-1 current transforms:(-1 0 0)

I didn't face anything similar in OF 1.7.1 so I can't imagine what's wrong here.

Problem is somewhere in the following patches:

boundary
(
fluid1_half0
{
type cyclic;
neighbourPatch fluid1_half1;
transform rotational;
rotationAxis (0 0 1);
rotationCentre (0 -50. 0);
faces
(
(17 21 43 39)
(21 0 22 43)
);
}

fluid1_half1
{
type cyclic;
neighbourPatch fluid1_half0;
transform rotational;
rotationAxis (0 0 1);
rotationCentre (0 -50. 0);
faces
(
(19 15 37 41)
(19 14 36 41)
);
}
..............

Any idea, suggestion...?

[/QUOTE]

Hi Dejan, i apreciate this post is from a while back but i am also having this problem (http://www.cfd-online.com/Forums/ope...esh-error.html) Did you ever figure out a way around it?

Thanks a lot

James

morard November 14, 2012 04:42

Hi James,

and thanks for the replay. Yes, I've found a way around, I'm not using the blockMesh any more! :)
No, I have no idea what is wrong there, maybe something with mesh numbering, but until now I didn't find how to do it on the right way. In order to understand it, one has to dive deeply into the code, but I am busy with some other things at the moment. If you find any solution to this problem, please let me know.

Regards,
Dejan

utkarsh855 June 6, 2019 13:09

Hey hello
Actually I am using block mesh for creating the mesh.
I am having the same problem don't know what to do?
It would be great if anyone could help me out

cesarjets July 26, 2023 16:00

How did you solve this problem? I'm having the same issue. Thanks

fly_light May 6, 2024 08:03

Quote:

Originally Posted by cesarjets (Post 854129)
How did you solve this problem? I'm having the same issue. Thanks

Maybe the answer is too late.
Please refer to this post, https://www.cfd-online.com/Forums/op...tml#post398207.

Don't enter transform and other following inputs. I only enter type, neighbourPatch, and matchTolerance.


// Patches to create.
patches
(
{
name periodic_1;
patchInfo
{
type cyclic;
neighbourPatch periodic_down;
matchTolerance 1e-4;
}
constructFrom patches;
patches (periodic_up);
}

{
name periodic_2;
patchInfo
{
type cyclic;
neighbourPatch periodic_1;
matchTolerance 1e-4;
}
constructFrom patches;
patches (periodic_down);
}

);


All times are GMT -4. The time now is 04:01.