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

[Commercial meshers] Fluent msh and cyclic boundary

Register Blogs Community New Posts Updated Threads Search

Like Tree1Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   March 9, 2006, 11:47
Default Thanks for the answers! The
  #21
New Member
 
Steffen Jahnke
Join Date: Mar 2009
Posts: 14
Rep Power: 17
steja is on a distinguished road
Thanks for the answers!
The solution was much simpler and is already mentioned in the thread. Only the error message was confusing me....
So I realized that a simple renumbering of the mesh solved the problem.

//Steffen
steja is offline   Reply With Quote

Old   July 17, 2007, 09:36
Default Hello, I tried to follow th
  #22
Member
 
Thomas Wolfanger
Join Date: Mar 2009
Location: South West Germany
Posts: 62
Rep Power: 17
anger is on a distinguished road
Hello,

I tried to follow the above discussion but to be honest, there are still some things unclear to me.
The background for coming back to the question of (translational) cyclic bcs is that I'm trying to calculate the flow through cascades of profiles. My setup looks like this:


cyclic

____

\____

Profile

Inlet \

____ Outlet

\____

cyclic




I generate the mesh using blockMesh with all the cyclic faces put into one patch. All works ok as long as the cyclic boundaries consist of planar patches. When changing to arc shaped patches, problems similar to these mentioned in this thread before appear.
What also seems strange to me is the fact that, if the cyclic bcs are planar, I can run simpleFoam without running couplePatches and it works. But it refuses to work when the arc shaped patches are introduced, in spite of the fact that (this is at least what I assume) the face numering (which seems to be important) *should* be the same in both cases.
So, here are the questions:
1. Is it possible to have cyclic bcs with non-planar patches?
2. If face numbering is important, how can I take influence on that in blockMesh?
3. Do I have to put the cyclic faces into two separated patches in blockMesh and merge them?
4. What does couplePatch actually do and how do I setup a case in blockMesh to be used with couplePatches?

Best regards,
-Thomas
anger is offline   Reply With Quote

Old   July 18, 2007, 05:22
Default 1. The numerics can handle tha
  #23
Senior Member
 
Mattijs Janssens
Join Date: Mar 2009
Posts: 1,419
Rep Power: 26
mattijs is on a distinguished road
1. The numerics can handle that as long a there is a single translation vector (see coupledPolyPatch::calcTransformationTensors).

Any topology change cannot handle it (couplePatches, mergePatchPairs inside blockMesh, createPatch) since they try to do the face ordering based on face centres only.
2. by making sure the faces of the blocks are in the same order (I guess they are generated block by block). Print out the face centres and check by hand or go through the blockMesh code.
3. No, blockMesh has topological knowledge of cyclics so should do a better job of matching than couplePatches etc.
4. coupledPatch (like createPatch) takes all faces on a coupled patch and tries and order them so they are 'opposite'. Since it only has face centres to work with it will only work for planes.
mattijs is offline   Reply With Quote

Old   July 23, 2007, 05:27
Default Mattijs, thanks for your he
  #24
Member
 
Thomas Wolfanger
Join Date: Mar 2009
Location: South West Germany
Posts: 62
Rep Power: 17
anger is on a distinguished road
Mattijs,

thanks for your help.
From your answers, I concluded that translational cyclic bcs with curved walls are possible.
Double-checking my blockMeshDict, I found that there was a small error in the coordinate setting of one point defining the curved bc which caused simpleFoam to break. After correcting this bug, simpleFoam ran as expected.

Best regards,
-Thomas
anger is offline   Reply With Quote

Old   August 29, 2007, 10:50
Default Steffen, I've got the same
  #25
Senior Member
 
Cedric DUPRAT
Join Date: Mar 2009
Location: Nantes, France
Posts: 195
Rep Power: 17
cedric_duprat is on a distinguished road
Steffen,

I've got the same problem as your upper one (March 07, 2006), with a periodic pipe:

running OF, I got this message : FOAM FATAL ERROR : face 0 and 7761 areas do not match by 98.4462% -- possible face ordering problem

and running couplePatch, I got this one:
Doing dummy mesh morph to correct face ordering ...
--> FOAM Serious Error :
From function cyclicPolyPatch::geometricOrder
in file meshes/polyMesh/polyPatches/derivedPolyPatches/cyclicPolyPatch/cyclicPolyPatch.C at line 652
patch:CYCLIC : Cannot match vectors to faces on both sides of patch
half0Ctrs[0]-0.5 -0.0492596010219 0.0492557149549)
half1Ctrs[0]-0.5 -0.0508307124148 -0.0526534440746)
Please use topological matching or adapt the featureCos() setting
Continuing with incorrect face ordering from now on!
Mesh ordering ok. Nothing changed.

You wrote later that renumbering the mesh was the solution for your case, I would like to try with mine.

how did you do that ?

Thank you for your answer, I hope you didn't forget how to do :o)

I'd like to try your solution before other hints

Regards,

Cedric
cedric_duprat is offline   Reply With Quote

Old   June 17, 2008, 01:51
Default Hello, I have a mesh from T
  #26
New Member
 
Mohd Yousuf
Join Date: Mar 2009
Location: Kharagpur
Posts: 18
Rep Power: 17
yousuf is on a distinguished road
Hello,

I have a mesh from T-grid. I am trying to apply cyclic bc on this mesh but am not understanding how to renumber the faces. couplePatch gives following error

Doing dummy mesh morph to correct face ordering ...
--> FOAM Serious Error :
From function cyclicPolyPatch::order(const primitivePatch&, labelList&, labelList&) const
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 726
patch:leftRight0 : Cannot match vectors to faces on both sides of patch
half0Ctrs[0]-0.085419 -0.258388 0.710859)
half1Ctrs[0]-0.898367 -0.0555492 0.153664)
Please use topological matching or adapt the featureCos() setting
Continuing with incorrect face ordering from now on!
Mesh ordering ok. Nothing changed.
End


What exactly are these coordinates and how can i renumber my mesh?


-Yousuf
yousuf is offline   Reply With Quote

Old   June 19, 2008, 02:57
Default Hi again, Here is the link
  #27
New Member
 
Mohd Yousuf
Join Date: Mar 2009
Location: Kharagpur
Posts: 18
Rep Power: 17
yousuf is on a distinguished road
Hi again,

Here is the link of my mesh. Can someone have a look at this and tell me where i'm going wrong

http://www.2shared.com/file/3461246/...modmshtar.html

Here is one more link(for same mesh) for those who are not able to download the above file

http://rapidshare.com/files/123247501/16deg_mod.msh


This is pity urgent yar because i have got struck on applying cyclic boundary condition and not able to proceed further, already wasted 5 days .....Please Please Please help
yousuf is offline   Reply With Quote

Old   June 23, 2008, 03:40
Default Is anyone working on my mesh
  #28
New Member
 
Mohd Yousuf
Join Date: Mar 2009
Location: Kharagpur
Posts: 18
Rep Power: 17
yousuf is on a distinguished road
Is anyone working on my mesh


yousuf is offline   Reply With Quote

Old   March 20, 2009, 09:15
Default
  #29
Senior Member
 
Rishi .
Join Date: Mar 2009
Posts: 149
Rep Power: 17
hellorishi is on a distinguished road
Can somebody please upload a case of periodic boundary for a Fluent mesh?
I am not able to figure out how to convert a mesh of periodic case from Fluent to OpenFOAM.

Thanks in advance.
Rishi
hellorishi is offline   Reply With Quote

Old   March 25, 2009, 04:02
Default What is the correct procedure of setting a cyclic boundary condition?
  #30
Senior Member
 
lakeat's Avatar
 
Daniel WEI (老魏)
Join Date: Mar 2009
Location: Beijing, China
Posts: 689
Blog Entries: 9
Rep Power: 21
lakeat is on a distinguished road
Send a message via Skype™ to lakeat
Dear all,

I am completely lost in this problem, please help.
I still don't understand how to set the cyclic B.C., the simulation blows again and again.
Here's what I did,
1. Use Gambit to create the mesh,
blocks.JPG
2. I linked fb1 & fb1_shadow, fb2 & fb2_shadow, ..., fb6 & fb6_shadow in Gambit.
3. Set fb1 & fb1_shadow, fb2 & fb2_shadow, ..., fb6 & fb6_shadow in Gambit as PERIODIC B.C.
blocks2_cr.jpg
blocks3.JPG
4. Use fluentMeshToFoam utility, everything's okay!
5. Use createPatch utility to build cyclic B.C.:
--------fb1New from fb1 & fb1_shadow;
--------fb2New from fb2 & fb2_shadow;
--------......
--------fb2New from fb6 & fb6_shadow;
Check file "constant/polyMesh/boundary" again.

Is the above procedure correct? Much appreciated!

Daniel
__________________
~
Daniel WEI
-------------
Boeing Research & Technology - China
Beijing, China
Email
lakeat is offline   Reply With Quote

Old   May 28, 2009, 11:16
Default creating cyclic boundary condition,
  #31
New Member
 
parham momeni
Join Date: Mar 2009
Location: glasgow, uk
Posts: 25
Rep Power: 16
mcjicpm2 is an unknown quantity at this point
Hi, I am having difficulty in creating cyclic boundary condition, I have done it this way:
1- I created a mesh in Gambit (Quarter of a cylinder) and I called the two planes symmetrya and symmetryb. and I set them to be symmetry for periodic bc.
2-set the writePrecision in system/controlDict to 12.
3-In the end of *.msh file I saw
(0 "Cells:")
(12 (0 1 5eb78 0))
(12 (2 1 5eb78 1 4))

(0 "Zones:")
(45 (2 fluid fluid)())
(45 (3 mass-flow-inlet ariinlet2)())
(45 (4 symmetry symmetryb)())
(45 (5 symmetry symmetrya)())
(45 (6 pressure-outlet outlet)())
(45 (7 wall wall)())
(45 (8 mass-flow-inlet airinlet1)())
(45 (9 mass-flow-inlet fuelinlet)())
(45 (11 interior default-interior)())

I did not change anything here, and leave it as it is.
3-then I ran fluentMeshTofoam *.msh :

Building boundary and internal patches.
Creating patch 0 for zone: 3 start: 1 end: 25 type: mass-flow-inlet name: ariinlet2
Creating patch 1 for zone: 4 start: 26 end: 10345 type: symmetry name: symmetryb
Creating patch 2 for zone: 5 start: 10346 end: 20665 type: symmetry name: symmetrya
Creating patch 3 for zone: 6 start: 20666 end: 23898 type: pressure-outlet name: outlet
Creating patch 4 for zone: 7 start: 23899 end: 34233 type: wall name: wall
Creating patch 5 for zone: 8 start: 34234 end: 34263 type: mass-flow-inlet name: airinlet1
Creating patch 6 for zone: 9 start: 34264 end: 34306 type: mass-flow-inlet name: fuelinlet
Creating patch 7 for zone: 11 start: 34307 end: 1181033 type: interior name: default-interior
Adding new patch ariinlet2 of type patch as patch 0
Adding new patch symmetryb of type symmetryPlane as patch 1
Adding new patch symmetrya of type symmetryPlane as patch 2
Adding new patch outlet of type patch as patch 3
Adding new patch wall of type wall as patch 4
Adding new patch airinlet1 of type patch as patch 5
Adding new patch fuelinlet of type patch as patch 6
Patch default-interior is internal to the mesh and is not being added to the boundary.

Default patch type set to empty

Writing mesh... to "constant/polyMesh" done.


End


4-It creates in the constant/polymesh ---> boundary :

7
(
ariinlet2
{
type patch;
nFaces 25;
startFace 1146727;
}
symmetryb
{
type symmetryPlane;
nFaces 10320;
startFace 1146752;
}
symmetrya
{
type symmetryPlane;
nFaces 10320;
startFace 1157072;
}
outlet
{
type patch;
nFaces 3233;
startFace 1167392;
}
wall
{
type wall;
nFaces 10335;
startFace 1170625;
}
airinlet1
{
type patch;
nFaces 30;
startFace 1180960;
}
fuelinlet
{
type patch;
nFaces 43;
startFace 1180990;
}
)


5-then I define the createPatchDict in /system and within that I have:
matchTolerance 1E-3;
pointSync true;
patches
(
{
name symmetrya;

type cyclic;

constructFrom patches;

patches (symmetrya symmetryb);
}
);

6-then I ran createPatch, this was the outcome:
Create time

Reading createPatchDict.

Using relative tolerance 0.001 to match up faces and points

Create polyMesh for time = 0


Moving faces from patch symmetrya to patch 2
Moving faces from patch symmetryb to patch 2

Doing topology modification to order faces.

Synchronising points.
Points changed by average:0 max:0

Removing patches with no faces in them.

Removing empty patch symmetryb at position 1
Removing patches.
Writing repatched mesh to 1

End
7-It creates a folder /1/polyMesh and within that:
[]$ ls
boundary cellZones faces faceZones neighbour owner points pointZones

8-vi boundary :
6
(
ariinlet2
{
type patch;
nFaces 25;
startFace 1146727;
}
symmetrya
{
type symmetryPlane;
nFaces 20640;
startFace 1146752;
}
outlet
{
type patch;
nFaces 3233;
startFace 1167392;
}
wall
{
type wall;
nFaces 10335;
startFace 1170625;
}
airinlet1
{
type patch;
nFaces 30;
startFace 1180960;
}
fuelinlet
{
type patch;
nFaces 43;
startFace 1180990;
}
)

8-I copy all the contents of this folder to constant/polymesh/

9- I did changed the symmetryplane type now to cyclic for symmetrya

10-I did the simpleFoam and I received this error:

Create time
Create mesh for time = 0
face 0 area does not match neighbour 10320 by 21.8435% -- possible face ordering problem.
patch:symmetrya my area:0.000277 neighbour area:0.000344925 matching tolerance:0.001
Mesh face:1146752 vertices:4((0 0 0.1123) (0.05 0 0.1123) (0.05 0 0.11784) (0 0 0.11784))
Neighbour face:1157072 vertices:4((0 0.043315 0) (0 0.0502135 0) (0.05 0.0502135 0) (0.05 0.043315 0))
Rerun with cyclic debug flag set for more information.

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

FOAM exiting



Can anyone help me with this problem?
mcjicpm2 is offline   Reply With Quote

Old   June 12, 2009, 06:25
Default how to make cyc boundry when using fluent mesh convert to Foam
  #32
Senior Member
 
wayne.zhang
Join Date: Mar 2009
Location: Shanghai, Shanghai, P.R.China
Posts: 309
Rep Power: 18
waynezw0618 is on a distinguished road
Send a message via MSN to waynezw0618 Send a message via Skype™ to waynezw0618
Hi

i also facing this problem,when i use the mesh by converting the fluent mesh to Foam.
how can i go on?

i want to calculate two pump passages with MRFSimpleFoam.

firstly i make a mesh from ICEMCFD and write the fluent mesh file
then i use fluent3dMeshToFoam to convert the fluent mesh file to Foam
and doing "makeMesh"
after that i setting the cyclic in constant/ployMesh/boundary and files in 0/ dir. for boundary conditions

when i start MRFSimpleFoam there were errors :

face 0 area does not match neighbour 2312 by 198.652% -- possible face ordering problem.
patch:CYC_INLET my area:0.147821 neighbour area:0.0005 matching tolerance:0.001
Mesh face:2117726 vertices:4((3.775 6.53849 -2.95641) (3.75 6.49519 -2.95641) (3.75 6.49519 0) (3.775 6.53849 0))
Neighbour face:2120038 vertices:4((17.75 -30.7439 -35) (17.75 -30.7439 -34.99) (17.725 -30.7006 -34.99) (17.725 -30.7006 -35))
Rerun with cyclic debug flag set for more information.

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

FOAM exiting

and i also try setting the cyclic before "makeMesh" this messages will be find in cellSets ,faceSets procedure.

and after reading this topic i try use the creatPatch utilities. and make two parts separately as (CYCINA CYCINB) and (CYCOUTA CYCOUTB) in icem and also creat a createPatchDict in system dir as:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/

FoamFile
{
version 2.0;
format ascii;

root "";
case "";
instance "";
local "";

class dictionary;
object createPatchDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
matchTolerance 1E-6;
pointSync true;
patches
(
{
name CYCIN;

type cyclic;

constructFrom patches;

patches (CYCINA CYCINB);
}

and first convert the fluent mesh to Foam
set the writePrecision in system/controlDict to 12.
and use CreatePatch Utility,but i get the errors as:
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Exec : createPatch -case twopassage/
Date : Jun 12 2009
Time : 18:00:03
Host : linux-g923
PID : 12312
Case : ./twopassage
nProcs : 1

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Reading createPatchDict.

Using relative tolerance 1e-06 to match up faces and points

Create polyMesh for time = 0

Adding new patch CYCIN of type cyclic as patch 9

Moving faces from patch CYCINA to patch 9
Moving faces from patch CYCINB to patch 9

Doing topology modification to order faces.

Segmentation fault



how can i resolve this?


thanks

yours wayne

attachment is mesh picture.two blue and red zones are to cyclic zones.
Attached Images
File Type: png Screenshot.png (80.7 KB, 79 views)

Last edited by waynezw0618; June 12, 2009 at 06:55.
waynezw0618 is offline   Reply With Quote

Old   June 12, 2009, 12:13
Default problem have been resolved!
  #33
Senior Member
 
wayne.zhang
Join Date: Mar 2009
Location: Shanghai, Shanghai, P.R.China
Posts: 309
Rep Power: 18
waynezw0618 is on a distinguished road
Send a message via MSN to waynezw0618 Send a message via Skype™ to waynezw0618
problem have been resolved!
Quote:
Originally Posted by waynezw0618 View Post
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/

FoamFile
{
version 2.0;
format ascii;

root "";
case "";
instance "";
local "";

class dictionary;
object createPatchDict;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
matchTolerance 1E-6;
pointSync true;
patches
(
{
name CYCIN;

type cyclic;

constructFrom patches;

patches (CYCINA CYCINB); It seems that the two red name should the same.
}
}
waynezw0618 is offline   Reply With Quote

Old   June 15, 2009, 02:11
Default
  #34
Senior Member
 
wayne.zhang
Join Date: Mar 2009
Location: Shanghai, Shanghai, P.R.China
Posts: 309
Rep Power: 18
waynezw0618 is on a distinguished road
Send a message via MSN to waynezw0618 Send a message via Skype™ to waynezw0618
problem RESOLVED

KEYWORDS: RENUMBER !!!

Last edited by waynezw0618; June 15, 2009 at 05:36.
waynezw0618 is offline   Reply With Quote

Old   June 24, 2009, 09:47
Default GambittoFoam
  #35
Member
 
Brugiere Olivier
Join Date: Mar 2009
Posts: 34
Rep Power: 17
brugiere_olivier is on a distinguished road
Hello every body,

I have created my geometry on Gambit and when I want to convert it on OF, it's working but after the couple patch, I have this problem like Cedric :
Create polyMesh for time = 500

Using geometry to calculate face correspondence across coupled boundaries (processor, cyclic)
This will only work for cyclics if they are parallel or their rotation is defined across the origin

Mesh has coupled patches ...

Doing dummy mesh morph to correct face ordering ...
--> FOAM Serious Error :
From function cyclicPolyPatch:rder(const primitivePatch&, labelList&, labelList&) const
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 726
patcher_trans : Cannot match vectors to faces on both sides of patch
half0Ctrs[0] : (9 1 4.5)
half1Ctrs[0] : (9 1 4.5)
Please use topological matching or adapt the featureCos() setting
Continuing with incorrect face ordering from now on!
Mesh ordering ok. Nothing changed.
End

And after that, my calculation is wrong. Some body have find the solution which work ?

Thank's to your help

Olivier
brugiere_olivier is offline   Reply With Quote

Old   June 24, 2009, 10:05
Default
  #36
Senior Member
 
wayne.zhang
Join Date: Mar 2009
Location: Shanghai, Shanghai, P.R.China
Posts: 309
Rep Power: 18
waynezw0618 is on a distinguished road
Send a message via MSN to waynezw0618 Send a message via Skype™ to waynezw0618
where is couplePatch utiliy? i don`t find it in 1.5 .i renumber the cyclic boundary in ICEM.i dont know if gambit has the same tool
.
Quote:
Originally Posted by brugiere_olivier View Post
Hello every body,

I have created my geometry on Gambit and when I want to convert it on OF, it's working but after the couple patch, I have this problem like Cedric :
Create polyMesh for time = 500

Using geometry to calculate face correspondence across coupled boundaries (processor, cyclic)
This will only work for cyclics if they are parallel or their rotation is defined across the origin

Mesh has coupled patches ...

Doing dummy mesh morph to correct face ordering ...
--> FOAM Serious Error :
From function cyclicPolyPatch:rder(const primitivePatch&, labelList&, labelList&) const
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 726
patcher_trans : Cannot match vectors to faces on both sides of patch
half0Ctrs[0] : (9 1 4.5)
half1Ctrs[0] : (9 1 4.5)
Please use topological matching or adapt the featureCos() setting
Continuing with incorrect face ordering from now on!
Mesh ordering ok. Nothing changed.
End

And after that, my calculation is wrong. Some body have find the solution which work ?

Thank's to your help

Olivier
waynezw0618 is offline   Reply With Quote

Old   June 24, 2009, 10:11
Default
  #37
Member
 
Brugiere Olivier
Join Date: Mar 2009
Posts: 34
Rep Power: 17
brugiere_olivier is on a distinguished road
couplePatch is an utility it is in : utilities/mesh/manipulation/couplePatches
brugiere_olivier is offline   Reply With Quote

Old   July 2, 2009, 10:35
Default
  #38
New Member
 
Denis Semyonov
Join Date: Mar 2009
Posts: 14
Rep Power: 17
sundaero is on a distinguished road
Hi all!

I am also dealing with the cyclic BC's in OpenFOAM 1.5 and faced similar problems.

I create my geometry in ICEM, save it in Fluent .msh format and convert to FOAM format using FluentMeshToFoam.
Fluent3DMeshToFoam does not work for some reason. It gives the message:

Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Dimension of grid: 3


Do not understand characters: 

    From function fluentMeshToFoam::lexer
    in file fluent3DMeshToFoam.L at line 708.

FOAM exiting
But I don't care as long as just FluentMeshToFoam works fine.


For the first try when I have imported mesh and ran createPatch utility to create one translational cyclic patch from two, like it has been advised:

my createPatchDict file:
Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
matchTolerance 1E-7;
pointSync true;

patches
(
    {
        name LEFT_RIGHT;
        type cyclic;
        constructFrom patches;
        patches (LEFT_WALL RIGHT_WALL);
    }
);
//****************************************************** //
it gave (and had been giving for a long time no matter what I have been doing; f. ex. I set writePrecision to 12 in controlDict) error message of the following type:

Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Reading createPatchDict.

Using relative tolerance 1e-07 to match up faces and points

Create polyMesh for time = 0

Adding new patch LEFT_RIGHT of type cyclic as patch 9

Moving faces from patch LEFT_WALL to patch 9
Moving faces from patch RIGHT_WALL to patch 9

Doing topology modification to order faces.

#0  Foam::error::printStack(Foam::Ostream&) in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libOpenFOAM.so"
#1  Foam::sigSegv::sigSegvHandler(int) in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libOpenFOAM.so"
#2  ?? in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/libs_shared/libc.so.6"
#3  Foam::face::normal(Foam::Field<Foam::Vector<double> > const&) const in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libOpenFOAM.so"
#4  Foam::cyclicPolyPatch::getCentresAndAnchors(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::List<Foam::face> const&, Foam::List<Foam::face> const&, Foam::Field<Foam::Vector<double> >&, Foam::Field<Foam::Vector<double> >&, Foam::Field<Foam::Vector<double> >&, Foam::Field<double>&) const in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libOpenFOAM.so"
#5  Foam::cyclicPolyPatch::order(Foam::PrimitivePatch<Foam::face, Foam::SubList, Foam::Field<Foam::Vector<double> > const&, Foam::Vector<double> > const&, Foam::List<int>&, Foam::List<int>&) const in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libOpenFOAM.so"
#6  Foam::polyTopoChange::reorderCoupledFaces(bool, Foam::polyBoundaryMesh const&, Foam::List<int> const&, Foam::List<int> const&, Foam::Field<Foam::Vector<double> > const&) in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libdynamicMesh.so"
#7  Foam::polyTopoChange::compactAndReorder(Foam::polyMesh const&, bool, bool, bool, int&, Foam::Field<Foam::Vector<double> >&, Foam::List<int>&, Foam::List<int>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::objectMap>&, Foam::List<Foam::Map<int> >&, Foam::List<int>&, Foam::List<int>&, Foam::List<Foam::Map<int> >&) in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libdynamicMesh.so"
#8  Foam::polyTopoChange::changeMesh(Foam::polyMesh&, bool, bool, bool, bool) in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/lib/crayxtDPOpt/libdynamicMesh.so"
#9  main in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/applications/bin/crayxtDPOpt/createPatch"
#10  __libc_start_main in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/libs_shared/libc.so.6"
#11  __gxx_personality_v0 in "/fs/local/linux26_x86_64/appl/fluid/openfoam-1.5_test/OpenFOAM/OpenFOAM-1.5/applications/bin/crayxtDPOpt/createPatch"
Segmentation fault
I have tried to check out then some simple geometry like a rectangle with just left and right walls set to cyclic, but did it also in ICEM.
Disappointly (and quite expectingly) I got the same error. I have been thinking that renumbering mesh in such a way that the faces which should correspond to each other in the periodicity should have their numbers x and N/2+x correspondingly. But I don't have any clue how to do it.

Solution came suddenly. It has been turned out so that if you specify some other patch type in createPatchDict (I used symmetryPlane), like:

Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

matchTolerance 1E-7;
pointSync true;

patches
(
    {
        name IN_OUT;
        type symmetryPlane;
        constructFrom patches;
        patches (INLET OUTLET);
    }
);

// ************************************************************************* //
then you won't get the error message. So far I don't have any idea, why createPatch fails with cyclic but works fine with other patch types. Does it try to renumber faces for matching? If you look at the errors listing, there are errors with face normals.

Then I change this new IN_OUT patch in $CASE_DIR/constant/polyMesh/boundary file manually to be 'cyclic':
Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

4
(
    EMPTYP
    {
        type            empty;
        nFaces          25600;
        startFace       25360;
    }
    DOWN
    {
        type            patch;
        nFaces          80;
        startFace       50960;
    }
    TOP
    {
        type            patch;
        nFaces          80;
        startFace       51040;
    }
    IN_OUT
    {
        type            cyclic;
        nFaces          320;
        startFace       51120;
    }
)

// ************************************************************************* //
as well as corresponding BCs in $CASE_DIR/0 directory, like:

example of 'U' file:
Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    EMPTYP
    {
        type            empty;
    }
    DOWN
    {
        type            slip;
    }
    TOP
    {
        type            pressureInletOutletVelocity;
        phi             phi;
        value           uniform (0 0 0);
    }
    IN_OUT
    {
        type            cyclic;
    }
}


// ************************************************************************* //
After this I've got quite nice performance of the cyclic BCs in this simple case.

======
So, in my case problem was in the createPatch utility and it has been solved in the simple case just by changing patch type in the createPatchDict from 'cyclic' to some other type and then changing it back to 'cyclic' in the 'boundary' file
======

I am not shure if this solution will work in my real case where the periodic boundaries not the single faces but a quite large number of planar disconnected regions. I am testing it right now, but it will take some time.

Hope this could help anybody who has similar problem.
sundaero is offline   Reply With Quote

Old   July 8, 2009, 11:48
Default
  #39
New Member
 
Denis Semyonov
Join Date: Mar 2009
Posts: 14
Rep Power: 17
sundaero is on a distinguished road
Ok, now it seems that for my case cyclic BC works pretty well.
sundaero is offline   Reply With Quote

Old   August 31, 2009, 12:04
Default
  #40
Member
 
Tomislav Sencic
Join Date: Mar 2009
Posts: 42
Rep Power: 17
tsencic is on a distinguished road
Hello,

I am trying to build a 180 degree engine mesh with cyclic boundaries. I tried both with k3prep/kivaToFoam and gambit/fluentMeshToFoam preprocessor and converter.
During the the mesh conversion everithing goes OK, and I have a cyclic patch named FrontAndBack.
After it, when I run couplePatches I get something like:

Doing dummy mesh morph to correct face ordering ...
--> FOAM Serious Error :
From function cyclicPolyPatch:rder(const primitivePatch&, labelList&, labelList&) const
in file meshes/polyMesh/polyPatches/constraint/cyclic/cyclicPolyPatch.C at line 728
patch:frontAndBack : Cannot match vectors to faces on both sides of patch
half0Ctrs[0]0 -0.233458681972 -0.00619257333064)
half1Ctrs[0]0 -0.0165649476268 -0.00619257333064)
Please use topological matching or adapt the featureCos setting
Continuing with incorrect face ordering from now on!
Mesh ordering ok. Nothing changed.
End

I tried with central angles of 179 degree, I tried with a central separation zone between the two halves without results.
I menaged to obtain good meshes with the central angle of 150 degree, but not over, like if the angle is not sharp enough.
I meneged to obtain a good mesh of a simple half cylinder (without bowl and head chamber).

Hou could I build a half engine cylinder mesh?
How should I use topological matching?
Where should I adopt the fatureCos setting?

Best regards,
Tomislav
tsencic 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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cyclic boundaries importing Gambit msh file and interFoam chegdan OpenFOAM Running, Solving & CFD 16 February 14, 2023 04:56
[snappyHexMesh] Solution Snappy Hex 2D Msh with Surface Layers and cyclic bc for symmetric geometry flexi182 OpenFOAM Meshing & Mesh Conversion 0 May 24, 2013 09:38


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