CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [Technical] Polyhedral mesh generation (https://www.cfd-online.com/Forums/openfoam-meshing/61911-polyhedral-mesh-generation.html)

cnsidero September 14, 2008 23:30

Hrv, Something came to mind
 
Hrv,

Something came to mind after I posted. If the triangular surface meshing is done independently from the tetrahedral volume meshing, the tet mesh may not be able to modify to surface mesh to allow the tets near the surfaces to be Delaunay - I believe this is called 'constrained Delaunay' meshing. Constrained Delaunay meshes may not be strictly Delaunay.

This a common approach for most mesh generators as the user typically 'tunes' the surface mesh manually - through local refinement and boundary point adjustment - and the volume mesh is generated based off the surface mesh.

This may be where the loosening of the Delaunay criteria may be appearing.

Chris

bfa July 9, 2009 05:31

It seems like polyDualMesh still suffers from some restrictions. Unfortunately in the current state it's of not much use to me.
Do you know of any papers on the matter? I would like to know more about what the polyDualMesh tool actually does. I tried to understand all of it by browsing the code, but that is at least tedious work. The common search engines did not yield any useful links when searching for something like "convert tetrahedral to polyhedral grids". (80% of the links point to this forum...)

Bjoern

olesen July 10, 2009 02:41

Quote:

Originally Posted by bfa (Post 222029)
The common search engines did not yield any useful links when searching for something like "convert tetrahedral to polyhedral grids". (80% of the links point to this forum...)

This link should give you a bit of an idea, even if the exact implementation is different:
http://www.anova.com.tr/dosyalar/destek/polyhedral.pdf

You might also try searching for < voronoi delaunay > - this is a somewhat similar concept.

tomislav_maric October 20, 2009 12:22

2D polyhedral mesh
 
Hi everyone,


Can someone tell me is there a straightforward way to produce "2D" polyhedral meshes for OpenFOAM?

Thanks...

markusrehm November 10, 2010 09:10

Hello,

I converted a hybrid mesh with polyDualMesh and got nice poly cells in the former tet region but in the hexa region the cells are split leading to a huge final mesh. I suppose that polyDualMesh splits one hexa cell into 8 new hexas.

Is there a way to supress this behaviour or to apply the utility only in a certain region?

Regards Markus.

olesen November 10, 2010 09:40

Quote:

Originally Posted by markusrehm (Post 282916)
Hello,

I converted a hybrid mesh with polyDualMesh and got nice poly cells in the former tet region but in the hexa region the cells are split leading to a huge final mesh. I suppose that polyDualMesh splits one hexa cell into 8 new hexas.

Is there a way to supress this behaviour or to apply the utility only in a certain region?

Are you really sure about it splitting the hexas? I haven't used polyDualMesh for a while or looked into the code recently but this certainly was not the case previously. From what I remember seeing, it internally split along the cell edges and then recombined about the corner points. Thus a duallized hexa mesh should result in another hexa mesh, albeit shifted by approx. 1/2 cell in each direction.

If I check with the mesh from angledDuctImplicit, then checkMesh reports

Before:
hexahedra: 22000

After:
hexahedra: 23232
prisms: 4
polyhedra: 1460


The non-hexas arise from the corners of the domain.
At least for this type of mesh I wouldn't say that the increase in the cell count is excessive.

markusrehm November 11, 2010 04:06

5 Attachment(s)
Hello Mark,

thank you for your reply. I can confirm your observation for the angledDuct geometry.
I ran another test with the cavity case and the cell number goes up from 400 to 882.
In our geometry which has quite a few edges I start with 0.4 mill. cells and end up with 2.7 mill. !

I post some pictures of the two examples.

Do you see a chance to ignore the hexas in the polyDualMesh algorithm? As it works now it is not very benefitial for complex hybrid geometries.



Regards, Markus

olesen November 11, 2010 04:40

Quote:

Originally Posted by markusrehm (Post 283043)
Hello Mark,

thank you for your reply. I can confirm your observation for the angledDuct geometry.
I ran another test with the cavity case and the cell number goes up from 400 to 882.
In our geometry which has quite a few edges I start with 0.4 mill. cells and end up with 2.7 mill. !

This is probably your issue as well. If (as an extreme example) the mesh is a single cell layer deep (ie, essentially 2d), the number of hexas will approximately double.

Quote:

Do you see a chance to ignore the hexas in the polyDualMesh algorithm? As it works now it is not very benefitial for complex hybrid geometries.
It would not be general enough for the polyDualMesh algorithm to simply ignore hexas. It would essentially need to do the same as the workaround that you'll need to attempt. Sorry I haven't tried any of this myself, so I can't be much more help here.

1. Identify the hex-dominant region that you don't want dualized and assign it to a cellset. This region should be contiguous.
2. Use splitMeshRegions to split things apart.
3. You'll need a modified polyDualMesh that handles the '-region' option so that you only dualize a particular region. You might need support help for that.
4. Rejoin the mesh regions. I don't find a command for that immediately, but it must be there (I hope).

markusrehm November 11, 2010 05:01

Thanks a lot. I will check it out.

Markus

-mAx- July 17, 2012 02:59

Hello,
Did you solved your problem?
I tried yesterday to convert a 4 millions cells with polyDualMesh and it generated 21 millions cells.
My mesh comes from Gambit, and it is an hybrid one : Hexa Volumes in combination with Volumes which are meshed with tetra-hexcore schema. With this schema a core of hexa is generated within the volume, and surrounding it there are some tetra layers.
I would like to convert only tetra in polyhedra
any idea?


All times are GMT -4. The time now is 09:12.