CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Mesh Utilities (
-   -   Sharp edge problem on concave patches using polyDualMesh without error (

keepfit September 12, 2012 07:53

Sharp edge problem on concave patches using polyDualMesh without error
Hi OpenFoamers,

I made a simple 3D damBreak case in order to test polyDualMesh utility, i.e. convert tetrahedral mesh to polyhedral mesh. Because sometimes you want to reduce tet cell number especially when it reaches millions.

Right now I could run the case with relative lower nonOrthoFaces, but I doubt if runing a case with large number of cells (millions) it may blow up.

My question is:
How to produce a perfect share edge on concave patches, without losing geometry information, and without nonOrthoFaces, wrong OrientedFaces ,etc.

I would appreciate any of your tips or recommendations.


1. Small feature angle / without -concaveMultiCells option

First a tetrahedral mesh is generated with Delaunay algorithm according to previous posts, import it to OpenFoam and checkMesh, everything is fine. Then perform:


polyDualMesh [option] <feature angle>

combinePatchFaces <feature angle>
After polyDualMeshing with a feature angle 60 I found that some wrongOrientedFaces is produced, see below:

2. Small feature angle / with -concaveMultiCells option

By looking into the polyDualmesh options I realized the -concaveMultiCells option is missed. By adding this option we can still get the sharp edges on concave patches and wrongOrientedFaces are eliminated. However, the concave edges could not be combined by varying from small to large feature angle. Furthermore, nonOrthoFaces are produced around concave patches/boundaries during the process.


polyDualMesh -concaveMultiCells 60

combinePatchFaces 60

3. corrected feature angle / with and without -concaveMultiCells option

Since the feature angle is the minimum angle between patches (if wrong please correct me). In this case the angle is approximately 90 degree.


polyDualMesh -concaveMultiCells 90
or without -concaveMultiCells

polyDualMesh 90
Both commands produce identical results and they can pass checkMesh without error information.

It seems that the featured concave edges are smoothened by polyhedral cell, and some of the geometry information is lost! During the polyDualMeshing I found that there is no "Detected concave feature edge ...." information, while with smaller feature angle, we can see such information


Detected concave feature edge:21320 cos:0.0123893 coords:(2.11429 0.685714 0.464286)(2.12857 0.671429 0.428571)
Detected concave feature edge:21386 cos:0.00931472 coords:(1.38571 1.41429 0.214286)(1.37143 1.42857 0.178571)
4. Summary

It seemed that none of above meshes are perfect.

Based on the tests above, using polyDualMesh utility in OpenFoam to convert tet mesh (with concave patches) to polyhedral mesh, the feature angle is the key parameter. Assuming Alpha_min is the minimum angle between patches, and Beta_ is the feature angle used with polyDualMesh,

I. if Beta_ < alpha_min, -concaveMultiCells option must be used to eliminate wrong OrientedFaces, but meanwhile it may produce nonOrthoFaces.
II. if Beta_ >= alpha_min, polyDualMesh will generate same polyhedral mesh either with or without -concaveMultiCells option, because it seems that polyDualMesh can not detect feature edges with a relative large feature angle.

Best regards,


wang2012 November 25, 2014 15:28

How to convert tetrahedral to polyhedral
i want to convert my mesh from tetrahedral to polyhedral for the chtMultiRegionFoam.

The mesh was built from ANSYS. I try the polyDualMesh.

polyDualMesh 180 -concaveMultiCells
combinePatchFaces 180

aber they worked not so well. After convert with polyDualMesh, the number of elements are 4 times larger than previously, and there are 99% of hexahedra and only 1% of polyhedral.



I really appreciate if you help me at this.


All times are GMT -4. The time now is 11:25.