|
[Sponsors] |
[mesh manipulation] Usage of polyDualMesh utility |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
Senior Member
Join Date: Feb 2010
Posts: 213
Rep Power: 17 ![]() |
I can't find documentation or examples about polyDualMesh, I only read a very few posts here about this meshing utility. My aim is to convert a tet mesh into a polyhedral one, in order to lower the large amount of cells I obtain with tetrahedrals.
I didn't understand the concrete meaning of the <angle> parameter and why most of users set it between 40 and 80. Please, can anyone explain that? |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Olivier
Join Date: Jun 2009
Location: France, grenoble
Posts: 272
Rep Power: 18 ![]() |
helllo,
I am not sure about feature angle, but this help to keep mesh on curved surfaces, so on a cube, 90 would work, and on more complexe geom, less. I am using it in the 60-80 range. Check the -concaveMultiCells option, because this help the give you a correct mesh, and don't forget du check the mesh after ! regards, olivier |
|
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Join Date: Feb 2010
Posts: 213
Rep Power: 17 ![]() |
I know the feature angle is important in obtaining a good mesh, but I'd like to understand the exact meaning to use the utility well. I hope someone else will reply here.
Anyway, thanks for your suggestion about best angle range and above all the -concaveMultiCells option: I haven't ever heard about it. How do I use it and how it works? Something like Code:
polyDualMesh 75 -concaveMultiCells |
|
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Join Date: Feb 2010
Posts: 213
Rep Power: 17 ![]() |
Any reply?
![]() Anyway, I read someone uses Code:
polyDualMesh 180 |
|
![]() |
![]() |
![]() |
![]() |
#5 | |
Assistant Moderator
Bernhard Gschaider
Join Date: Mar 2009
Posts: 4,225
Rep Power: 51 ![]() ![]() |
Quote:
polyDualMesh -doc that should open the browser with the Doxygen-documentation of the browser. Go to the source-file polyDualMeshApp.C. The description of the options and arguments is there |
||
![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Join Date: Feb 2010
Posts: 213
Rep Power: 17 ![]() |
OK. polyDualMesh -doc doesn't open anything, i think i miss documentation because of my installation settings. anyway, I look for polyDualMeshApp.C and i found a bare file (i use OF-1.5-dev). well, i didn't give up, i tried with OF-1.7 and found a more complex and detailed file, but i can read only:
Code:
- polyDualMesh featureAngle Detects any boundary edge > angle and creates multiple boundary faces for it. Normal behaviour is to have each point become a cell (1.5 behaviour) |
|
![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Join Date: Feb 2010
Posts: 213
Rep Power: 17 ![]() |
I found some documentation about tet mesh conversion into polyhedral one. It concerns other software or general algorithms, but I hope I can understand anyway. Polyhedral conversion process joins quad faces (derived from tet cells): below a feature angle (between normals?) the edge between two faces is ignored, above a feature angle the edge is retained. Am I correct?
Anyway a feature angle of 180° looks strange to me. |
|
![]() |
![]() |
![]() |
![]() |
#8 |
New Member
Join Date: Jun 2015
Posts: 1
Rep Power: 0 ![]() |
Hi,
I am new here ;-) I have a problem with polyDualMesh. I am workin with OpenFoam. I have a 2D flow passag with step. I create the mesh with GMesh. So it is a tetrahedral mesh. When I'm now execute the command polyDualMesh. The programm creates the new Mesh but it looks like the picture one. Now I found on the openfoam-wiki a tuorial: https://openfoamwiki.net/index.php/P...esh_generation There the mesh has two layer in the third dimension. My mesh has this too. Picture two On the openfoam-wiki website there are step 5 to 7 how to make a good mesh. But on step 5 you have to trn the setSet application to create a cell set that contains only one layer of cells. That's my problem. How to execute the setSet comand . Can anybody tell me how it works? How the command look like. Thank you very very much for help! ![]() ![]() |
|
![]() |
![]() |
![]() |
![]() |
#9 |
New Member
toor
Join Date: Oct 2015
Posts: 1
Rep Power: 0 ![]() |
Hi folk,
I have worked with generating primal and/or dual meshes. When deriving dual-mesh around each primal-mesh (tet mesh) point a dual-cell is constructed. For interior points constructing dual is straight forward, however for boundary points defining ridges and/or corners to be represented by dual-cell faces they must be split along these entities. A ridge is an edge of primal mesh separating two different sides of the domain being meshed. To decide which boundary edges are ridges, a calculation of angles between faces sharing(dihedral angle) is required, i.e. for a simple cube with straight sides you can say that if dihedral angle between faces is not 180 (or 0) then edge shared between the faces is a ridge. Corners are the points where more than two ridges meet. I hope this makes sense. Last edited by toor; October 23, 2015 at 17:22. |
|
![]() |
![]() |
![]() |
![]() |
#10 |
Member
Federico Agustín Caccia
Join Date: Jun 2015
Location: Buenos Aires, Argentina
Posts: 55
Rep Power: 11 ![]() |
How, I'm working with a tetrahedra mesh. I'm using polyDualMesh as following:
HTML Code:
polyDualMesh 75 -concaveMultiCells /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org \\ / A nd | Version: 6 \\/ M anipulation | \*---------------------------------------------------------------------------*/ Build : 6-1a0c91b3baa8 Exec : polyDualMesh 75 -concaveMultiCells Date : Sep 04 2018 Time : 10:11:33 Host : "fede-C500" PID : 31730 I/O : uncollated Case : /home/fede/OpenFOAM/fede-6/run/sic-tec/ductos/pitzDaily_fine_noslip_polydual nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create mesh for time = 0 Feature:75 minCos :0.258819 Generating multiple cells for points on concave feature edges. Detected concave feature edge:11800 cos:0.0198833 coords ![]() Detected concave feature edge:12718 cos:0.0201133 coords ![]() Detected concave feature edge:12721 cos:0.0310433 coords ![]() .... .... .... Detected concave feature edge:94514 cos:0.0105767 coords ![]() Dumping centres of featureFaces to obj file "featureFaces.obj" Dumping featureEdges to obj file "featureEdges.obj" Dumping featurePoints that become a single cell to obj file "singleCellFeaturePoints.obj" Dumping featurePoints that become multiple cells to obj file "multiCellFeaturePoints.obj" Reading volScalarField p Reading volScalarField nut Reading volScalarField k Reading volScalarField epsilon Reading volScalarField omega Reading volScalarField nuTilda Reading volVectorField U --> FOAM FATAL ERROR: mapPolyMesh does not correspond to the old mesh. nCells:199953 cellMap:199981 nOldCells:920529 nFaces:1309524 faceMap:1309524 nOldFaces:1880642 From function virtual void Foam::fvMesh::mapFields(const Foam::mapPolyMesh&) in file fvMesh/fvMesh.C at line 582. FOAM exiting |
|
![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Reviewer #2
Join Date: Jul 2015
Location: Knoxville, TN
Posts: 141
Rep Power: 11 ![]() |
Please read post #6 and #9
Here is an example: The first pic is generated by polyDualMesh 10 -concaveMultiCells The second pic is generated by polyDualMesh 180 -concaveMultiCells Thanks, Rdf |
|
![]() |
![]() |
![]() |
![]() |
#12 | |
New Member
Alberto Artoni
Join Date: Oct 2019
Posts: 7
Rep Power: 6 ![]() |
Quote:
Hi, I am trying to reproduce your example from an initial cubic mesh, or from a trapezoidal prismatic mesh, but I can't get the polyhedra on the boundary as yours - keep getting the -10 refinement. What was your initial tetraedrical mesh? |
||
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Other] Contribution a new utility: refine wall layer mesh based on yPlus field | lakeat | OpenFOAM Community Contributions | 58 | December 23, 2021 02:36 |
[Commercial meshers] Usage of createPatchDict | Bombolati | OpenFOAM Meshing & Mesh Conversion | 17 | February 21, 2020 08:51 |
Something doens't work with wallHeatFlux utility or externalWallHeatFluxTemperat BC!! | zfaraday | OpenFOAM Post-Processing | 0 | February 5, 2015 16:47 |
[mesh manipulation] Sharp edge problem on concave patches using polyDualMesh without error | keepfit | OpenFOAM Meshing & Mesh Conversion | 1 | November 25, 2014 14:28 |
About the usage of polyDualMesh | weijing | OpenFOAM Running, Solving & CFD | 3 | June 15, 2006 07:54 |