CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ...

Problem with cyclic boundaries in Openfoam 2.3, mesh import from ICEM

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

Like Tree2Likes
  • 1 Post By wyldckat
  • 1 Post By galap

Reply
 
LinkBack Thread Tools Display Modes
Old   April 19, 2014, 10:36
Default Problem with cyclic boundaries in Openfoam 2.3, mesh import from ICEM
  #1
Member
 
Join Date: Dec 2013
Location: Newcastle
Posts: 54
Rep Power: 3
Scabbard is on a distinguished road
Dear Foamers,

have a really annoying problem concerning cylic boundaries imported from ICEM. When I use the createPatch command. This is what I get after using createPatch utility:
Code:
--> FOAM FATAL ERROR: 
face 722 area does not match neighbour by 0.010670375885% -- possible face ordering problem.
patch:TOP my area:0.000172697081473 neighbour area:0.000172678655029 matching tolerance:0.0001
Mesh face:5008786 fc:(-0.910732468388 -0.121136204077 0.57999998165)
Neighbour fc:(-0.91073345224 -0.121136444811 0)
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 221.
And the createPatch documents shows as blew
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.3.0                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      createPatchDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
//       with transformations (i.e. cyclics).
pointSync false;

// Patches to create.
patches
(
    { 
        name cyclic01;
        patchInfo
        {
            type            cyclic;
            neighbourPatch  cyclic02;
            matchTolerance 1e-04;
        }
        constructFrom patches;
        patches (FRONT);
        
    }
    
    { 
        name cyclic02;
        patchInfo
        {
            type            cyclic;
            neighbourPatch  cyclic01;
            matchTolerance 1e-04;
        }
        constructFrom patches;
        patches (BACK);
        
    }
);
Here is my original boundary documents import from icem, using fluent3DMeshtoFoam utility.
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.3.0                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

6
(
    CYLINDER
    {
        type            wall;
        inGroups        1(wall);
        nFaces          8556;
        startFace       4828165;
    }
    SIDE
    {
        type            symmetry;
        inGroups        1(symmetry);
        nFaces          16244;
        startFace       4836721;
    }
    FRONT
    {
        type            patch;
        nFaces          52661;
        startFace       4852965;
    }
    BACK
    {
        type            patch;
        nFaces          52661;
        startFace       4905626;
    }
    INLET
    {
        type            patch;
        nFaces          4247;
        startFace       4958287;
    }
    OUTLET
    {
        type            patch;
        nFaces          4247;
        startFace       4962534;
    }
)

// ************************************************************************* //
How could I solve this problem... I have faced to this error a week and can not solve it...

Thank you so much for your help.

Best wishes,
Scabbard

Last edited by Scabbard; April 20, 2014 at 10:12. Reason: Changed [QUOTE] to [CODE][/CODE]
Scabbard is offline   Reply With Quote

Old   April 20, 2014, 06:42
Default
  #2
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,488
Blog Entries: 34
Rep Power: 86
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Quick answer:
  1. Check the file "applications/utilities/mesh/manipulation/createPatch/createPatchDict" for a more complete example.
  2. If the patches are not perfectly cyclic, try using "cyclicAMI".
wyldckat is offline   Reply With Quote

Old   April 20, 2014, 10:19
Default
  #3
Member
 
Join Date: Dec 2013
Location: Newcastle
Posts: 54
Rep Power: 3
Scabbard is on a distinguished road
Quote:
Originally Posted by wyldckat View Post
Quick answer:
  1. Check the file "applications/utilities/mesh/manipulation/createPatch/createPatchDict" for a more complete example.
  2. If the patches are not perfectly cyclic, try using "cyclicAMI".
Dear Bruno,

Thank you for your help.

I use the structure mesh, and have checked in ICEM. I think both face could be perfectly cyclic.

For my case, it is a flow past a cylinder and I want to let the front&back be cyclic.

Here is my mesh:

https://drive.google.com/file/d/0B1v...it?usp=sharing

Could you help me to check where is the error? This problem annoying me for more than a week...

Best wishes,
Scabbard
Scabbard is offline   Reply With Quote

Old   April 20, 2014, 13:47
Default
  #4
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,488
Blog Entries: 34
Rep Power: 86
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi Scabbard,

The file you shared only has got the mesh. Unfortunately I don't have the time to create a case just to debug your mesh .

If you study the file I mentioned in the previous post, you'll see where the "tolerance" settings have to be placed in "createPatchDict".

Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   April 20, 2014, 15:22
Default
  #5
Member
 
Join Date: Dec 2013
Location: Newcastle
Posts: 54
Rep Power: 3
Scabbard is on a distinguished road
Quote:
Originally Posted by wyldckat View Post
Hi Scabbard,

The file you shared only has got the mesh. Unfortunately I don't have the time to create a case just to debug your mesh .

If you study the file I mentioned in the previous post, you'll see where the "tolerance" settings have to be placed in "createPatchDict".

Best regards,
Bruno
Dear Bruno,

Sorry to trouble you. I have added the matchTolerance in my createPatchDict and set up 5 values from 1e-04 to 2e-02, but still got the same error... This make me crazy...

https://drive.google.com/file/d/0B1v8BP1BA6NQTUJQYW9SU2VpUkE/edit?usp=sharing

Here is my whole case. If it is convenient for you, could you help me to check it? Thank you so much for your help.

Best wishes,
Scabbard
Scabbard is offline   Reply With Quote

Old   April 20, 2014, 15:56
Default
  #6
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,488
Blog Entries: 34
Rep Power: 86
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi Scabbard,

Thanks, that makes it easier!
OK, OpenFOAM has been trying to tell you that the patches do not perfectly match. As you can see in the attached image, the patches do not perfectly match up, because even though the face count is identical, their relative locations are not identical. The part on the left is the bottom patch and on the right is the top patch.

As I wrote before, if "cyclic" patches don't work, you'll have to rely on "cyclicAMI" patches, which will assign weights to the corresponding faces on the other patch, even if the faces are completely different. Note that the "cyclicAMI" will not try to match up the faces directly, it will look at the location of each face and check what faces are on the other side at the same relative location.

Best regards,
Bruno
Attached Images
File Type: jpg side_by_Side.jpg (102.8 KB, 121 views)
fumiya likes this.
wyldckat is offline   Reply With Quote

Old   April 21, 2014, 05:02
Default
  #7
Member
 
Join Date: Dec 2013
Location: Newcastle
Posts: 54
Rep Power: 3
Scabbard is on a distinguished road
Quote:
Originally Posted by wyldckat View Post
Hi Scabbard,

Thanks, that makes it easier!
OK, OpenFOAM has been trying to tell you that the patches do not perfectly match. As you can see in the attached image, the patches do not perfectly match up, because even though the face count is identical, their relative locations are not identical. The part on the left is the bottom patch and on the right is the top patch.

As I wrote before, if "cyclic" patches don't work, you'll have to rely on "cyclicAMI" patches, which will assign weights to the corresponding faces on the other patch, even if the faces are completely different. Note that the "cyclicAMI" will not try to match up the faces directly, it will look at the location of each face and check what faces are on the other side at the same relative location.

Best regards,
Bruno
Dear Bruno,

Thank you so much for your help. I will have a try to use cyclicAMI. However, do you know what cause the mesh changed in openFoam? Because when I check in ICEM, it seems to be the same both side around cylinder.

Best wishes,
Scabbard
Scabbard is offline   Reply With Quote

Old   April 21, 2014, 16:16
Default
  #8
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,488
Blog Entries: 34
Rep Power: 86
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Quote:
Originally Posted by Scabbard View Post
However, do you know what cause the mesh changed in openFoam? Because when I check in ICEM, it seems to be the same both side around cylinder.
The image I provided on the previous post was taken after I made a linear translation along Z of the top patch to the same location of the bottom patch and synced the cameras in ParaView, to make sure the perspective was identical.
My guess is that since you're not comparing directly one patch on top of the other on ICEM, then the mesh only looks like it's the same.
wyldckat is offline   Reply With Quote

Old   April 23, 2014, 07:09
Default
  #9
Member
 
Join Date: Dec 2013
Location: Newcastle
Posts: 54
Rep Power: 3
Scabbard is on a distinguished road
Quote:
Originally Posted by wyldckat View Post
The image I provided on the previous post was taken after I made a linear translation along Z of the top patch to the same location of the bottom patch and synced the cameras in ParaView, to make sure the perspective was identical.
My guess is that since you're not comparing directly one patch on top of the other on ICEM, then the mesh only looks like it's the same.

Dear Bruno,

Thank you for you help.

Best wishes,
Scabbard
Scabbard is offline   Reply With Quote

Old   June 11, 2014, 04:49
Default createPatchDict
  #10
New Member
 
Syed Zahid
Join Date: Mar 2014
Location: Bangalore, Karnataka, INDIA
Posts: 5
Rep Power: 3
zahid is on a distinguished road
Dear Bruno

I am also running with the same problem as mentioned by Scaabard, i placed the createPatchDict file in system folder, but the error remains same

face 0 area does not match neighbour by 136.618% -- possible face ordering problem.
patch:cyclic-6_half0 my area:5.18008e-06 neighbour area:2.75111e-05 matching tolerance:0.0001
Mesh face:6687680 fc-0.494029 0.603639 0.00271732)
Neighbour fc-0.494029 0.904544 0.00271732)
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.
zahid is offline   Reply With Quote

Old   June 11, 2014, 15:12
Default
  #11
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 8,488
Blog Entries: 34
Rep Power: 86
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Greetings Zahid,

I'm not a magician nor a hacker So please don't expect me to just guess the reason why you're getting that error message.

So, please provide more information, according to the guidelines given on this thread: How to give enough info to get help

In addition:
  1. Did you read and study the posts above?
  2. Are you able to compare the surface mesh on both sides of the mesh, regarding the patches that are meant to be cyclic?
Best regards,
Bruno
wyldckat is offline   Reply With Quote

Old   July 24, 2015, 02:22
Default
  #12
Member
 
Fabian E.
Join Date: Nov 2009
Posts: 36
Rep Power: 7
galap is on a distinguished road
Hello,

I encountered the same problem and I could solve it by defining rotational periodicity and then by declaring the corresponding vertices in ICEM as periodic. Then Right Click on Faces in the Blocking tree -> Periodic Faces -> ensure that really every periodic face is colored accordingly. createPatch went fine after this procedure.
wyldckat likes this.
galap is offline   Reply With Quote

Reply

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
ICEM tetra mesh for OpenFoam cfGreen OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 4 October 24, 2013 06:13
converting ICEM mesh to OpenFOAM bmikuz OpenFOAM Other Meshers: ICEM, Star, Ansys, Pointwise, GridPro, Ansa, ... 8 May 2, 2013 10:55
[ICEM] ICEM Structured Mesh Problem OMJT ANSYS Meshing & Geometry 3 March 22, 2013 11:06
Inner geometry gets lost exporting mesh from ICEM CFD to CFX-Pre powpow CFX 3 December 20, 2012 10:14
2D Mesh Generation Tutorial for GMSH aeroslacker Open Source Meshers: Gmsh, Netgen, CGNS, ... 12 January 19, 2012 04:52


All times are GMT -4. The time now is 16:35.