CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Meshing & Mesh Conversion

Cyclic boundary distance of the transformed centre is greater and failed.

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 25, 2021, 15:42
Question Cyclic boundary distance of the transformed centre is greater and failed.
  #1
New Member
 
Yovanny Morales Hernández
Join Date: May 2018
Posts: 11
Rep Power: 7
yMorH is on a distinguished road
Hello everyone,

I'm trying to configure a geometry to give some rotational capabilities without using MRF(Multiple reference frame) that gives virtual rotational capabilities, instead I want to use real rotational capabilities.

To start exploring those capabilities I have selected the type boundary conditions cyclic and cyclycAMI, by far I have successfully created one pair of patches with these characteristics, however when I tried to create a new pair in exactly the same way I failed to configure it, I am absolutely sure that the two new new neighboring patches are in the exact same coordinates. Bellow I write the log of the fatal error.

I have found a thread related to the topic but unfortunately it has no answers so far I post the link to that thread here CyclicAMI boundaries Issues.
I have kept looking for an answer on the net and I found something related to it, unfortunately I am just a beginner and this information is out of my league, I post the link here https://bugs.openfoam.org/view.php?id=3447. According to this last post there is a bug problem in openfoam causing malfunctions in certain situations but I am lacking in the knowledge to find the relation of this information to my problem.

Bellow I post the blockMeshDict so you can verify that the new pair of surfaces (ArribaCyclicRotor and ArribaCyclicStator) are neighbors with the same coordinates, you can also verify the old pair of surfaces (AbajoCyclicStator and AbajoCyclicRotor) that were successfully created.

Thanks in advance for your help!

The fatal error gives this log:
Quote:
--> FOAM FATAL ERROR:
The distance between the centre of patch ArribaCyclicRotor and the transformed centre of patch ArribaCyclicStator is 0.0960227.
This is greater than the match tolerance of 6.62302e-05 for the patch.
Check that the patches are geometrically similar and that any transformations defined between them are correct
It might be possible to fix this problem by increasing the "matchTolerance" setting for this patch in the boundary

From function Foam::cyclicTransform::cyclicTransform(const Foam::word&, const pointField&, const vectorField&, const Foam::cyclicTransform&, const Foam::word&, const pointField&, const vectorField&, const Foam::cyclicTransform&, Foam::scalar)
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicTransform.C at line 474.
The blockMeshDict file is(you can delete the new neighboring patches a build successfully the mesh without them):

Code:
/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  dev
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
    (0 0 0)             //0
    (0.47 0.47 0)       //1
    (1.53 0.47 0)       //2
    (1.998 0 0)         //3
    (0 0 0.05)          //4
    (0.47 0.47 0.05)    //5
    (1.53 0.47 0.05)    //6
    (1.998 0 0.05)      //7
    (0 0 0.25)          //8
    (0.47 0.47 0.25)    //9
    (1.53 0.47 0.25)    //10
    (1.998 0 0.25)      //11
    (0 0 1.2)           //12
    (0.47 0.47 1.2)     //13
    (1.53 0.47 1.2)     //14
    (1.998 0 1.2)       //15
    (0.95 0.95 0)       //16
    (1.05 0.95 0)       //17
    (0.95 0.95 0.05)    //18
    (1.05 0.95 0.05)    //19
    (0.95 0.95 0.05)    //20
    (1.05 0.95 0.05)    //21
    (0.47 0.47 0.05)    //22
    (1.53 0.47 0.05)    //23
    (0.95 0.95 0.25)    //24
    (1.05 0.95 0.25)    //25
    (0.47 0.47 0.25)    //26
    (1.53 0.47 0.25)    //27
    (0.47 0.47 0.25)    //28
    (1.53 0.47 0.25)    //29
    (0.95 0.95 0.25)    //30
    (1.05 0.95 0.25)    //31
    (0.95 0.95 1.2)     //32
    (1.05 0.95 1.2)     //33
);

xcells 20;
ycells 20;
zcells 5;

zcells1 20;
zcells2 125;

blocks
(
    //bloque 0
    hex (0 3 2 1 4 7 6 5)           ($xcells $ycells $zcells)       simplegrading (1 1 1)
    //bloque 1
    hex (4 7 6 5 8 11 10 9)         ($xcells $ycells $zcells1)      simplegrading (1 1 1)
    //bloque 2
    hex (8 11 10 9 12 15 14 13)     ($xcells $ycells $zcells2)      simplegrading (1 1 1)
    //bloque 3
    hex (1 2 17 16 5 6 19 18)       ($xcells $ycells $zcells)       simplegrading (1 1 1)
    //bloque 4
    hex (22 23 21 20 26 27 25 24)      RotatingZone                    ($xcells $ycells $zcells1)      simplegrading (1 1 1)
    //bloque 5
    hex (28 29 31 30 13 14 33 32)    ($xcells $ycells $zcells2)      simplegrading (1 1 1)
);

edges
(
    arc 1 2 (1 0.25 0)
    arc 5 6 (1 0.25 0.05)
    arc 22 23 (1 0.25 0.05)
    arc 9 10 (1 0.25 0.25)
    arc 26 27 (1 0.25 0.25)
);

boundary
(
    Fondo
    {
        type wall;
        faces
        (
            (0 3 2 1)
            (1 2 17 16)
        );
    }
    AbajoCyclicStator
    {
        type cyclic;
        neighbourPatch AbajoCyclicRotor;
        faces
        (
            (5 6 19 18)
        );
    }
    AbajoCyclicRotor
    {
        type cyclic;
        neighbourPatch AbajoCyclicStator;
        faces
        (
            (22 23 21 20)
        );
    }
    ArribaCyclicRotor
    {
        type cyclic;
        neighbourPatch ArribaCyclicStator;
        faces
        (
            (26 27 25 24)
        );
    }
    ArribaCyclicStator
    {
        type cyclic;
        neighbourPatch ArribaCyclicRotor;
        faces
        (
            (28 29 31 30)
        );
    }
);
mergePatchPairs
(

);
// ************************************************************************* //

Last edited by yMorH; February 28, 2021 at 11:12. Reason: Adding some content and quoting errors and coding files
yMorH is offline   Reply With Quote

Old   February 26, 2021, 18:17
Default Found an unexplainable solution
  #2
New Member
 
Yovanny Morales Hernández
Join Date: May 2018
Posts: 11
Rep Power: 7
yMorH is on a distinguished road
Well reading some threads related to rotational cyclic conditions I found this thread suggesting changing boundary conditions from cyclic to cyclicGGI to solve the problem, I changed it and I successfully build the mesh with no furder changes. However in the openfoam-dev documentation, the version I am running there is no information related to this type of boundary condition.

I keep reading about this boundary condition and I found that it requires a foam version called foam-extent 4.0 to run a case, I don't have this version installed in my machine so I decided to use a different version that I have installed of openfoam, v2012 of OpenFOAM® and I change the boundary condition to cyclic and the error change to:

Quote:
--> FOAM FATAL ERROR: (openfoam-2012)
face 0 area does not match neighbour by 44.5129% -- possible face ordering problem.
patch:ArribaCyclicRotor my area:0.00195501 neighbour area:0.0012432 matching tolerance:0.0001
Mesh face:348100 fc0.503037 0.46237 0.25)
Neighbour fc0.507812 0.481907 0.25)
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 void Foam::cyclicPolyPatch::calcTransforms(const primitivePatch&, const pointField&, const vectorField&, const pointField&, const vectorField&)
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 215.

FOAM exiting
I change the boundary condition finally to cyclicAMI and I successfully build the case with the new pair of cyclicAMI BC.

Anyone has an explanation of these behaviors in the openfoam-dev and v2012?
yMorH is offline   Reply With Quote

Old   August 11, 2023, 13:23
Default
  #3
New Member
 
Reza Nouri
Join Date: Oct 2012
Location: Tennessee
Posts: 26
Rep Power: 13
reza2031 is on a distinguished road
Send a message via Skype™ to reza2031
So, I had a similar problem. I fixed the issue by reversing the direction of arc or spline.

Instead of:
Code:
    arc 1 2 (1 0.25 0)
    arc 5 6 (1 0.25 0.05)
go with:
Code:
    arc 1 2 (1 0.25 0)
    arc 6 5 (1 0.25 0.05)
Basically, make sure the direction the spline or arc is made on the front and back surfaces is the same direction (e.g., in the positive x direction for both front and back).
reza2031 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



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