Case running in serial, but Parallel run gives error
Dear all,
Im using OpenFOAM 2.1 and am implementing the cyclic boundary condition for my case in both the streamwise and spanwise directions (its a kind of LES simulation of channel flow). I use the following in my boundary file(and likewise for spanwise patches): inlet { type cyclic; nFaces 23808; startFace 13950208; matchTolerance 0.01; neighbourPatch outlet; } outlet { type cyclic; nFaces 23808; startFace 13974016; matchTolerance 0.01; neighbourPatch inlet; } This works fine when I run the code in serial. However, in parallel, I get this error: --> FOAM FATAL ERROR: [6] face 14 area does not match neighbour by 0.0232802% -- possible face ordering problem. patch:procBoundary6to11throughinlet my area:0.000103534 neighbour area:0.00010351 matching tolerance:1.49818e-08 Mesh face:1174459 vertices:4((-3.74192e-08 1.05217 2.2654) (-3.74192e-08 1.05217 2.2895) (-3.74192e-08 1.05647 2.2895) (-3.74192e-08 1.05647 2.2654)) If you are certain your matching is correct you can increase the 'matchTolerance' setting in the patch dictionary in the boundary file. Rerun with processor debug flag set for more information. [6] [6] From function processorPolyPatch::calcGeometry() [6] in file meshes/polyMesh/polyPatches/constraint/processor/processorPolyPatch.C at line 239. [6] FOAM parallel run exiting No matter how much I relax the tolerance I get the same error. I think this is due to the processor boundary-neighbour mismatch. Has anyone encountered this before and solved this??? Also, does the "processor" boundary condition help in any way? I couldn't find much documentation for it. Thank you!! |
Case running in serial, but Parallel run gives error - Please help! urgent !
Hello all,
I had posted a similar query some days back but couldn't get any replies. I am being more detail now... I hope I get some feedback. I am running an LES case using channelFoam. the boundary conditions are CYCLIC in streamwise and spanwise directions. I can run my case in serial, but when I try to run it in parallel, I get the following error. Code:
Following is the link for my "boundary" file. http://dl.dropbox.com/u/37012034/boundary Additional notes: This is the geometry of the case (in 2D view), but I'm running a 3D case extruded uniformly, such that "front" and "back" walls are of same size, and "inlet" and "outlet" surfaces are of same size. http://dl.dropbox.com/u/37012034/hill_streamlines.jpg here is the checkMesh output: http://dl.dropbox.com/u/37012034/checkmesh_output I would very much appreciate if someone could help with this. The case runs good in serial, but it is terribly slow. I REALLY need to get it running in parallel to move ahead, since it has a very high run time.:confused: I guess the problem is with the cyclic b.c . I have run parallel cases in OpenFOAM in the past w/o any issues, when they weren't using cyclic b.c. Thank you in advance :) |
Greetings atmcfd,
I'll recycle a recent post of mine: Quote:
Best regards, Bruno PS: I've moved that other post into this thread instead. |
Dear Bruno,
Thank you very much for your feedback. My case now works in parallel! I never knew such a "preservePatches" command existed. Is there some sort of command sheet etc. for OF you know of? So that I can try them myself before asking help? A couple of things: 1) The case would run on 12 processors, but would start diverging after about 2500 iters ( which takes about 13 hours :eek:) I use hierarchichal (4 1 3) 2) The same case gives a floating point error and aborts in 100 iters, when I run it with 24 processors !!! I tried hierarchichal (4 2 3) and (4 1 6) both. more interestingly , my checkMesh (which I already posted earlier) gives Code:
Checking topology... I would appreciate any suggestions/pointers. Thank you... |
I found out about "preservePatches" here on the forum, probably when I was searching for stuff about "cyclic BCs" and "parallel" in OpenFOAM.
The "suppressed warnings" message indicates that there would be a metric ton of identical error messages, varying only in the two numbers you can see you that 1st message. You can try the full check: Code:
checkMesh -allTopology -allGeometry |
Dear Bruno,
Thanks for the suggestion. Here is the additional info: Image of the Mesh, with patch names: http://dl.dropbox.com/u/37012034/mesh.png The "0" folder: http://dl.dropbox.com/u/37012034/0.zip The "system" folder: http://dl.dropbox.com/u/37012034/system.zip the boundary file: http://dl.dropbox.com/u/37012034/boundary the complete checkMesh output: http://dl.dropbox.com/u/37012034/checkmesh_output I am trying to figure out why "The patch should start on face no 13913752...." is showing up. I built the mesh from extruding the 2D mesh directly into 3D, and I don't see why the patch should start from a different face, since I defined all of them myself :confused: . this boundary error must be the reason the simulation is diverging too. Also, here is the link for the complete 3D mesh for the standard periodic hill test case ,133mb, if people ever need it in future. Would save them a lot of time building a new one. :p http://dl.dropbox.com/u/37012034/constant.zip I'm pretty sure about the consistency of the 2D mesh, since its from a official test case. I dont foresee any problems in the 3D version either, since its just plain extrusion in z direction. atleast thats what the checkMesh appears to say so :rolleyes:. The B.C is cyclic in streamwise and spanwise direction, and Im 100% sure its physically correct.... Thanks again Bruno!!! :) P.S.: I really wish OF had some sort of "cheat sheet" of all the commands it has. would do a world of good to newbies.:( |
Hi Atm,
There might be a cheat sheet available, but I haven't found it yet. There are several sources of information about OpenFOAM, so it's a matter of looking for it... Either way, usually "cheat sheets" are made by people in any community, not usually distributed by the software developers. As for the case, I forgot to mention that it's the procedure itself that I would like to know about. And a simpler test case would make it a lot easier to diagnose where the problem is :( Best regards, Bruno |
Quote:
I will just explain the procedure I have followed. 1) I have a mesh in plot3d format, which I converted to FOAM using plot3dtoFoam utility. 2) then I used the interactive "setSet" utility to set the boundaries inlet,outlet,top wall, bottom wall, front and back, by using a bounding box to specify the faces within each patch. eg. the command I used for "inlet" was like this faceSet inlet add boxToFace (-1 1 0.0241) (0 3.035 4.5067) 3) Once I did step 2 for all the boundaries , I do createPatch and a "polyMesh" folder is created, having the boundary file, and the remaning files in the polyMesh directory, for which I posted a link in my earlier post. 4) Then , I apply "cyclic" b.c. for inlet - outlet and the front-back pairs. Code:
inlet Code:
oamFile I looked up tutorials using cyclic patches like "boxTurb16" and "channel395" and they have not been very helpful, since they create faces in blockMeshDict itself (whereas I am importing a mesh). Is my procedure correct? Meanwhile I will also be trying some different approaches, using commercial mesh gen software, different,simpler cases etc. to understand whats happening here. One thing i observe is that the checkMesh doesnt give the "boundary definition error" for the "front" and "back" planes, even though I have defined them using exactly the same way as the "inlet" and "outlet", and have not even used CreatePatchDict for them. This confuses me even more!! :confused: Please let me know if you need any other info...I appreciate your time and help.:) Thank you! |
1 Attachment(s)
Hi Atm,
Attached is the tutorial "DNS/dnsFoam/boxTurb16" modified to use topoSet and createPatch. Modified/added files:
Bruno |
Bruno,
That was truly awesome of you to post that tutorial!!!!! Helped me understand the concept very clearly! And also, I figured out the reason what the actual error in the checkMesh: So as it turns out, it was a hilariously simple solution. This was my old boundary file Code:
/*--------------------------------*- C++ -*----------------------------------*\ Code:
/*--------------------------------*- C++ -*----------------------------------*\ startFace + nFaces = startFace of next patch, and so on. In my earlier case since I had mixed up the position of the "bottom" patch, this wasnt happening. Might be a really basic thing, but easily overlooked.:p Thank you again for your help :) |
thanks
Quote:
|
Quote:
can you please explain what I've to put into the brackets of preservePatches? Thank you! |
Quote:
|
Quote:
Ok, now I understood it but in my case, I don't have any cyclic patch :confused: It's about a 3D flow around a beam placed in a square duct. In the meanwhile I've opened this thread where you can find further information: http://www.cfd-online.com/Forums/ope...ial-works.html I would really appreciate if you could have a look on it :D Greetings Harak |
Quote:
Quote:
|
hi
I have this problem too Checking topology... ****Problem with boundary patch 0 named inlet of type cyclic. The patch should start on face no 13913752 and the patch specifies 13950208. Possibly consecutive patches have this same problem. Suppressing future warnings. ***Boundary definition is in error. can anyone help me? best regards |
Quote:
|
hi Bruno
thank you for quick reply. I solve it ,now. with atmcfd comment. can you help me with other question? I have this problem in my run: --> FOAM FATAL ERROR: Maximum number of iterations exceeded From function thermo<Thermo, Type>::T(scalar f, scalar T0, scalar (thermo<Thermo, Type>::*F)(const scalar) const, scalar (thermo<Thermo, Type>::*dFdT)(const scalar) const, scalar (thermo<Thermo, Type>::*limit)(const scalar) const) const in file /home/opencfd/OpenFOAM/OpenFOAM-2.3.0/src/thermophysicalModels/specie/lnInclude/thermoI.H at line 76. best regards |
masoudsh, please follow the steps detailed on this thread: How to give enough info to get help
|
All times are GMT -4. The time now is 18:15. |