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/)
-   -   [Commercial meshers] Rotational cyclic BC in ICEM generated mesh (https://www.cfd-online.com/Forums/openfoam-meshing/117425-rotational-cyclic-bc-icem-generated-mesh.html)

esgee May 8, 2013 08:42

Rotational cyclic BC in ICEM generated mesh
 
Hi,
like many others, I have been facing difficulties in using rotational cyclic BCs. My geometry is a cut cone of which I have taken a slice of 6.92308 degrees. The mesh was generated with ICEM CFD. When meshing I made sure that the cyclic faces have identical meshes, at I least I think so.

Here are the steps I have done:
1. Convert the .msh-file into FOAM format using fluent3DMeshToFoam
2. First the cyclic boundaries PER_RIGHT_STATOR and PER_LEFT_STATOR have a BC type wall. So I change them to patch.
3. Since I'm doing a MRF simulation, boundary named INTERFACE_STATOR is actually an interface that will be merged with the rotor interface. I have however excluded the rotor here and set the boundary type to wall.
3. Run createPatch. File createPatchDict is as follows:

Code:

pointSync false;
patches
(
    {
        name CYCLIC_STATOR_HALF0;

        patchInfo
        {
            type cyclic;
            neighbourPatch CYCLIC_STATOR_HALF1;
            transform rotational;
            rotationAxis (0 0 1);
            rotationCentre (0 0 0);
            rotationAngle 6.92308;
        }

        constructFrom patches;
        patches (PER_RIGHT_STATOR);
        matchTolerance 1e-3;
    }
    {
        name CYCLIC_STATOR_HALF1;

        patchInfo
        {
            type cyclic;
            neighbourPatch CYCLIC_STATOR_HALF0;
            transform rotational;
            rotationAxis (0 0 1);
            rotationCentre (0 0 0);
            rotationAngle 6.92308;
        }

        constructFrom patches;
        patches (PER_LEFT_STATOR);
        matchTolerance 1e-3;
    }
);

However running createPatch gives the following error:
Code:

--> FOAM Serious Error :
    From function cyclicPolyPatch::order(const primitivePatch&, labelList&, labelList&) const
    in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 1376
    Patch:CYCLIC_STATOR_HALF1 : Cannot match vectors to faces on both sides of patch
    Perhaps your faces do not match? The obj files written contain the current match.
    Continuing with incorrect face ordering from now on!


--> FOAM FATAL ERROR:
face 0 area does not match neighbour by 47.8489742143% -- possible face ordering problem.
patch:CYCLIC_STATOR_HALF0 my area:0.0458143796978 neighbour area:0.0746301048825 matching tolerance:0.0001
Mesh face:698964 fc:(9.34616192826 154.510476705 -61.978768823)
Neighbour fc:(-9.34819546222 154.544095058 -61.9665905897)
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.

I have tried increasing the matchTolerance but with no luck. The percentage with which the faces don't match is quite high but I think rotationAxis and rotationCentre in createPatchDict should be ok.

Is there some fundamental error in my case or something else? You may download the case files here: https://www.dropbox.com/s/3rw6iq64g8...segment.tar.gz


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