CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Native Meshers: snappyHexMesh and Others (
-   -   handling of baffle regions or surfaces with zero thickness with snappyHexMesh (

StSchiff July 2, 2012 09:44

handling of baffle regions or surfaces with zero thickness with snappyHexMesh

I'm struggeling with the creation of a mesh that includes a surface of zero thickness. I've tried various things so far.

1. Define the baffle region as a faceZone with the following entry in snappyHexMesh:

level (3 3);
faceZone baffle;
cellZone baffle;
cellZoneInside inside;

Snappy then generates a nice mesh and the baffle region is nice and smooth. But then I'm stuck. Since 'baffle' is now a faceZone and not a boundary patch I can not define it as a wall and set boundary conditions.
I've tried using the 'createBaffles' command to turn the faceZone into a boundary patch which seems to work fine. But the checkMesh fail in various areas:
- Multiple regions which are not connected by any face
- 92254 conflicting points for multiply connected surfaces
- 52 skewfaces
Also simulation crashes when solving for p with a printStack error.

2. If I don't define the baffle region as a faceZone as seen in 1. but a normal surface, I end up with two intersecting patches in the baffle region which messes up my geometry.

So does anyone have any advice for me? Is there maybe another way to convert a faceZone into a patch? I've also considered 'createPatch', but since I don't know how to convert a faceZone into a faceZone, I'm stuck there as well.

I'd highly appreciate any suggestions!!

StSchiff July 4, 2012 03:07

So, I tried an easier test case with approach number 1 where I define my baffle region as a faceZone and than turn it into a patch with createBaffles. That works perfectly! I've come to the conclusion, that the problem lies with the complex geometry. Looks like snappy has trouble in the snapping process already, since the output is always the same:

Did not succesfully snap mesh. Giving up.

I've tried different approaches to handle that problem:

1. set featureEdge level to 0 as suggested in a different thread:
2. duplicating the edge list in the eMesh as suggested in another thread:
3. increase the tolerance in the snapControls subdictionary
4. play around with minVolCollapseRatio

So far the second approach seems to have the best effect on the surface. But the snapping process still fails. Does anyone have any further suggestions what other parameters I could play around with to successfully snap the mesh to the surface?


hfs September 21, 2012 13:28

Thanks for sharing!

giovanidiniz June 13, 2013 22:43


I was finding the same problem in my geometries. As I'm handling propellers, I thought that the problem was in the refinement parameters, but I found out that in my blockMesh, I was setting the inlet and outlet faces of the region as empty patches. When I changed that to "wall", it worked just fine for any set of parameters I tried so far.

Just a thought if you haven't figured this one yet.

Have a good one

Naresh yathuru September 19, 2016 04:27

creating baffles in SnappyHexMesh
Hello foamers,

Excuse me for restarting this thread again. i have a similar problem. As metioned in #1. I have a very simple geometry of a box with a zero thickness surface inside. i created the geometry in salome.Exported geometry as stl files and meshing in snappyHexMesh. I used the "facetype baffles" in snappy hex mesh to create baffle.
I have the following questions:
1. After meshing it shows the master and slave boundary in polymesh/boundary files. how to set boundary conditions for theses surfaces in 0 folder?

Am I missing something. There is not tutorials for the method where snappyhexmesh is used to create baffles. I have tried the tutorials Tjunctionfan and thermal baffles tutorials but they use createbafflesDict. but I want to generate baffles for the geometry stl file i created in Salome. Could someone through some light. I m stuck at this point.

I m using OpenFoam 2.3.0


PanPeter March 8, 2017 10:45

Hi Naresh,

You can just merge the master and slave patch through createPatch.
Use this dictionary:


        name NewPatchName;

            type patch;

        constructFrom patches;

        patches (OldPatchName, OldPatchName_slave);

You will then find NewPatchName is you polymesh/boundary file.

All times are GMT -4. The time now is 04:39.