|
[Sponsors] |
October 27, 2010, 10:20 |
|
#21 | |
New Member
zakk
Join Date: Jun 2009
Posts: 10
Rep Power: 17 |
I suffered with same problem before. I made completely same thing. It worked. Only thing, I changed the matchTolerance in createPatchDict to 3e-3
Quote:
|
||
November 24, 2010, 10:04 |
|
#22 | |
Senior Member
Robert Sawko
Join Date: Mar 2009
Posts: 117
Rep Power: 22 |
Quote:
|
||
November 24, 2010, 22:20 |
Yes it is possible
|
#23 | |
Senior Member
Daniel P. Combest
Join Date: Mar 2009
Location: St. Louis, USA
Posts: 621
Rep Power: 0 |
Quote:
|
||
November 25, 2010, 07:19 |
Summary of experiences with Cyclic BCs
|
#24 |
Member
Bernhard Grieser
Join Date: Mar 2010
Location: Zurich, Switzerland
Posts: 30
Rep Power: 16 |
What I found out about cyclic boundary conditions is:
1.) Care has to be taken when running in parallel: Every single processor has to have both corresponding cell sets of a cyclic patch within its computational region. Experience with various geometries has shown that the distribution of 2 "cyclical" cells (cells from different faces but same cyclic patch) into 2 different processor regions results in faulty matching, but the simulation can still be run. Without warning the user, the unwanted matches then obviously produce errors. -> This means that for e.g. a squareDuct with 4 cyclic walls one can only split the computational domain in streamwise direction. Zero spanwise, only streamwise cuts (in this particular case). 2.) The patch type of cyclic patches has to be set to cyclic (within blockMeshDict respectively constant/polyMesh/boundary). Also the boundary conditions for all fields in the time folders have to be set to cyclic as well, logically. 3.) To avoid improper and unwanted matches, every cyclic patch should only consist of 2 faces. These are the faces that have to be connected. It is possible to include more than 2 faces within a cyclic patch, though. But it might be that they will not be matched properly, if the order of the definition of faces is incorrect. -> Does someone know how faces should be ordered, if a cyclic patch comprises more than two faces? Pairwise in sequence? 4.) Cyclic patches seem to have issues when refining with refineMesh Please correct me if statements 1 to 4 turn out to be wrong. Additional posting of experiences is appreciated. Regards, Bernhard |
|
November 29, 2010, 11:13 |
|
#25 |
Senior Member
Steven van Haren
Join Date: Aug 2010
Location: The Netherlands
Posts: 149
Rep Power: 16 |
Hi everyone,
I have been doing a lot of channel flows using anything from 4 processor folders up to 36. Decomposed using the metis method. Bernhard, how do you see the effects of what happens under number 1 in your list? I don't see weird things going on in paraview and my velocity profiles seem reasonable. I have used both meshes from blockMesh and meshes imported from Star-CCM. |
|
November 29, 2010, 12:23 |
Cyclic Patches
|
#26 | |
Member
Bernhard Grieser
Join Date: Mar 2010
Location: Zurich, Switzerland
Posts: 30
Rep Power: 16 |
Quote:
I was refering to a LES on rod bundles where I expected secondary vortices after averaging the flow field for several 100'000 timesteps, but none of them appeared at the supposed locations. Then I extracted some cuts through my flow field and I realized that fields were not matching on the cyclic patches. I changed the decomposition method from single (0 2 16) to single (0 0 32), with z being the streamwise coordinate, and cyclic patches matched perfectly. Also, secondary vortices seemed to be alright. Conclusions were drawn.. Regards, Bernhard |
||
November 30, 2010, 08:13 |
|
#27 |
Senior Member
Steven van Haren
Join Date: Aug 2010
Location: The Netherlands
Posts: 149
Rep Power: 16 |
Mmmm...I also pay attention do this. So far all my fields appear continious at the cyclic patches.
Just for the record, which version of OpenFoam are you using? I am using 1.7. |
|
November 30, 2010, 08:28 |
|
#28 | |
Senior Member
maddalena
Join Date: Mar 2009
Posts: 436
Rep Power: 23 |
Quote:
mad |
||
November 30, 2010, 09:20 |
|
#29 |
Member
Bernhard Grieser
Join Date: Mar 2010
Location: Zurich, Switzerland
Posts: 30
Rep Power: 16 |
||
November 30, 2010, 10:20 |
|
#30 |
Senior Member
Steven van Haren
Join Date: Aug 2010
Location: The Netherlands
Posts: 149
Rep Power: 16 |
Hi Bernhard,
Did you ever observe strange results using metis decomposition? Could the decomposition method influence this? By the way, I only used channels and pipes. No complex geometries. But used both hex and polygrids. Could your complexer geometry produce these errors in the decomposition. Did you ever try a simple geometry? |
|
November 30, 2010, 16:13 |
|
#31 | |
Member
Bernhard Grieser
Join Date: Mar 2010
Location: Zurich, Switzerland
Posts: 30
Rep Power: 16 |
Quote:
Steven, since you're using metis, can you explain to me how it decomposes geometries? I only used hex grids so far. Although I have run simple geometries with cyclic patches once, I don't remember the decomposition setup. I'll have a look in my old case files. |
||
December 1, 2010, 05:06 |
|
#32 |
Senior Member
Steven van Haren
Join Date: Aug 2010
Location: The Netherlands
Posts: 149
Rep Power: 16 |
Actually, I have no idea. What I have read about it is that it minimizes the faces at processor boundaries. But that is basically all I know.
It was standard practice to use this in the company where I work now when I arrived. I never looked into the different decomposition methods. |
|
December 4, 2010, 20:20 |
|
#33 | |
Member
Bernhard Grieser
Join Date: Mar 2010
Location: Zurich, Switzerland
Posts: 30
Rep Power: 16 |
I found an answer to my question no. 3 in OpenFOAM Wiki:
http://openfoamwiki.net/index.php/Write_OpenFOAM_meshes Quote:
Example: face0-1 are neighbouring faces on one side of the channel, face2-3 on the other side. Linking face0 to face2 and face1 to face3 results in the following definition order in blockMeshDict: cyclic Wall ( face0 // to be matched with face2 face1 // to be matched with face3 face2 face3 ) |
||
December 6, 2010, 06:27 |
|
#34 |
Senior Member
Steven van Haren
Join Date: Aug 2010
Location: The Netherlands
Posts: 149
Rep Power: 16 |
Ok, so we can conclude that there will be no problems if we use only two faces for a cyclic patch?
|
|
December 6, 2010, 16:32 |
|
#35 | |
Member
Bernhard Grieser
Join Date: Mar 2010
Location: Zurich, Switzerland
Posts: 30
Rep Power: 16 |
Quote:
Example of a correct declaration: cyclic nameOfPatch ( (P1a P2a P3a P4a) (P1b P4b P3b P2b) // order reversed (right hand rule) ) But... there's still more restrictions that apply to a successful mapping of cyclic face pairs: I played around with cyclic patch formations in the last few days and found out that graded cells along any edge of the cyclic patch (when pairs do not belong to the same block) return error messages when compiling with blockMesh, even if the previous rules were respected. You can run them with the cyclic debug flag set. Paraview is able to display the resulting files. (How to run the cyclic debug flag set? Go to your installation folder of OF and look for the blockMesh file in the /etc folder. Change the file mode as a root to write access, open it and search for "cyclic". It's currently set to 0, so switch to 1 and save.) Instead of trusting solely on blockMesh, I recommend the following procedure (which worked perfectly for all tested geometries): Design your geometry as usual. When it comes to defining patches, create temporary patches of type "patch" for each side you want to "cycle" later. Say we have a channel where we want to map the left to the right side. Each side consists of 3 faces with different gradings and cell numbers on the edges. So theres a "top", "middle" and "bottom" face on each side. There's 2 temporary patches to be created now: patch left_temp ( (TL1 TL2 TL3 TL4) // left top face (ML1 ML2 ML3 ML4) // left middle face (BL1 BL2 BL3 BL4) // left bottom face ) patch right_temp ( (TR1 TR4 TR3 TR2) // right top face, pay attention to the order of points (MR1 MR4 MR3 MR2) // right middle face (right hand rule) (BR1 BR4 BR3 BR2) // right bottom face (right hand rule) ) (The point numbers identify corresponding points, so TL1 will be matched with TR1 later etc. ) After running blockMesh, you copy a file called "createPatchDict" into your /system directory. It has the following content (just copy & paste): matchTolerance 1E-5; pointSync true; patchInfo ( { name cyclicpatch; dictionary { type cyclic; } constructFrom patches; patches ( "left_temp" "right_temp" ); } ); Now run "createPatch" in your terminal. This will take the temporary patches and map them into one cyclic patch called "cyclicpatch", which you can find in the /constant/polyMesh/boundary file. If you run "checkMesh" afterwards with activated cyclic debug flag set, you can even check if your matching vectors are correctly displayed in Paraview. Long story short: It's complicated, but yes, it works :-) Regards, Bernhard |
||
June 14, 2011, 09:52 |
|
#36 |
Member
José Rodrigues
Join Date: Jun 2010
Location: IN+/IST Lisbon
Posts: 53
Rep Power: 16 |
Hi
I am experiencing problems using RSTM turbulence model to compute the flow in a section of an annular combustor, bounded by cyclic patches. The solver seams to diverge when computing Ryy or Ryz components in the cyclic patch, and there's the reason why I posted this here. Does anybody knows any problem concerning RSTM models and cyclic BCs? With other RANS models and even LES it seems to work fine. Thx Jose |
|
July 2, 2012, 13:23 |
|
#37 | |
Senior Member
Jian Zhong
Join Date: Feb 2012
Location: Birmingham
Posts: 109
Rep Power: 14 |
Quote:
Could you sent me your new spongeCyclic BC? I also met the problem that I find that cyclic patches can not accept other BCs. I want to set 0/zeroGradient for the cyclic inlet/outlet patches. Many thanks, Jian zhongjian6739@gmail.com |
||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Cyclic jump boundary condition | hjasak | OpenFOAM Running, Solving & CFD | 10 | April 16, 2010 16:35 |
Cyclic boundary condition | qtian | OpenFOAM Running, Solving & CFD | 3 | November 12, 2008 22:23 |
Cyclic Boundary Condition | SG | Siemens | 0 | June 1, 2008 15:56 |
Cyclic boundary condition in Multi-Block. | Las | Phoenics | 0 | November 9, 2002 11:39 |
About Partial Cyclic Boundary Condition | Jiaying Xu | Siemens | 2 | October 31, 2002 21:12 |