|
[Sponsors] |
[mesh manipulation] Generating 3-D axisymmetric mesh using extrudeMesh |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 2, 2012, 10:13 |
Generating 3-D axisymmetric mesh using extrudeMesh
|
#1 |
Member
Hugh Ingham
Join Date: Aug 2012
Posts: 35
Rep Power: 14 |
Hi guys,
I am modelling an axisymmetric jet and would like to use extrudeMesh to convert a 2-D mesh into 3-D. I created a 2-D mesh in Fluent then used fluentMeshToFoam to convert it. I would now like to revolve this 2-D mesh 45 degrees about a symmetry axis, effectively making a 1/8th section. The problem is I can't get extrudeMesh to work. It comes up with the following message: --> FOAM FATAL IO ERROR: cannot open file file: /home/hugh/OpenFOAM/hugh-2.1.0/3d/jet_3d_extrude/system/extrudeMeshDict at line 0. From function regIOobject::readStream() in file db/regIOobject/regIOobjectRead.C at line 87. I have looked at other threads and they say to run extrudeMesh from a separate directory to that which your 2-D mesh is stored and then call the 2-D directory in your extrudeMeshDict. I have done this but it still doesn't work. Could someone please help me! Thanks Hugh |
|
August 3, 2012, 12:19 |
|
#2 |
Member
|
It looks like it can't find or open your extrudeMeshDict at all. What directory are you executing extrudeMesh from?
If your extrudeMeshDict is located at: /home/hugh/OpenFOAM/hugh-2.1.0/3d/jet_3d_extrude/system/extrudeMeshDict then you should be able to run extrudeMesh from /home/hugh/OpenFOAM/hugh-2.1.0/3d/jet_3d_extrude/ Otherwise you might have file ownership properties. Maybe try chmod 700 extrudeMeshDict |
|
July 22, 2016, 02:41 |
|
#3 |
New Member
sudhakar singh
Join Date: Jun 2016
Posts: 12
Rep Power: 10 |
hello,
i also wanna to generate 3D axisymmetry mesh using extrudeMesh utility but it is showing error. i am able to generate 2D wedge shape but cann't 3d axisymmetry. This is the error message: --> FOAM FATAL ERROR: wedge front plane aligns with a coordinate plane. The wedge plane should make a small angle (~2.5deg) with the coordinate plane and the the pair of wedge planes should be symmetric about the coordinate plane. Normal of wedge plane is (5.93255206084e-34 1 -6.12323399574e-17) , implied coordinate plane direction is (0 1 -0) From function virtual void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBu ffers&) in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 109. My exrudeMeshdict file is: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.4.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object extrudeProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // constructFrom patch; sourceCase "$FOAM_CASE"; sourcePatches (front); exposedPatchName back; extrudeModel wedge; sectorCoeffs { axisPt (0 0 0); axis (1 0 0); angle 180; } flipNormals false; mergeFaces true; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // blockMeshdict file: /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.4.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // backgroundMesh { length 25; rA 0.5; // radius of inlet patch rB 4; // outer radius lengthCells 250; rAcells 10; rBcells 50; } convertToMeters 1; vertices ( ( 0 0 -1) ($:backgroundMesh.length 0 -1) ( 0 $:backgroundMesh.rA -1) ($:backgroundMesh.length $:backgroundMesh.rA -1) ( 0 $:backgroundMesh.rB -1) ($:backgroundMesh.length $:backgroundMesh.rB -1) ( 0 0 0) ($:backgroundMesh.length 0 0) ( 0 $:backgroundMesh.rA 0) ($:backgroundMesh.length $:backgroundMesh.rA 0) ( 0 $:backgroundMesh.rB 0) ($:backgroundMesh.length $:backgroundMesh.rB 0) ); blocks ( hex (0 1 3 2 6 7 9 8) ($:backgroundMesh.lengthCells $:backgroundMesh.rAcells 1) simpleGrading (1 1 1) hex (2 3 5 4 8 9 11 10) ($:backgroundMesh.lengthCells $:backgroundMesh.rBcells 1) simpleGrading (1 1 1) ); edges ( ); boundary ( inlet { type patch; faces ( (0 6 8 2) ); } front { type symmetry; faces ( (6 7 9 8) (8 9 11 10) ); } back { type symmetry; faces ( (0 1 3 2) (2 3 5 4) ); } atmosphere { type patch; faces ( (2 8 10 4) (4 5 11 10) (5 3 9 11) (3 1 7 9) ); } ); mergePatchPairs ( ); // ************************************************** *********************** // |
|
July 23, 2016, 07:20 |
|
#4 |
New Member
Join Date: Mar 2016
Posts: 14
Rep Power: 10 |
hi Sud,
The "wedge" functionnality only works for a wedge angle of 5 degrees. Is your geometry respecting that? Here is a blockmeshDict that works correctly and produces an axisymmetric simple rectangle : Code:
convertToMeters 0.001; vertices ( (20 0 0) (65 0 0) (64.9901001852 1.1344064184 0) (19.9969539031 0.3490481287 0) (20 0 40) (65 0 40) (64.9901001852 1.1344064184 40) (19.9969539031 0.3490481287 40) ); edges ( line 0 1 line 3 2 line 7 6 line 4 5 arc 0 3 (19.9992384613 0.17453071 0) arc 1 2 (64.9975249992 0.5672248074 0) arc 5 6 (64.9975249992 0.5672248074 40) arc 4 7 (19.9992384613 0.17453071 40) line 0 4 line 1 5 line 2 6 line 3 7 ); blocks ( hex (0 1 2 3 4 5 6 7) (18 1 18) simpleGrading ( ( //X dir (0.2 0.3 4) (0.6 0.4 1) (0.2 0.3 0.25) ) 1 //Ydir ( //Z dir (0.2 0.3 4) (0.6 0.4 1) (0.2 0.3 0.25) ) ) ); boundary ( inlet { type cyclic; neighbourPatch outlet; faces ((0 1 5 4)); } outlet { type cyclic; neighbourPatch inlet; faces ((3 7 6 2)); } bottom { type wall; faces ((0 3 2 1)); } top { type patch; //(or wall) faces ((4 5 6 7)); } ext_wall { type wall; faces ((0 4 7 3)); } inner_wall { type wall; faces ((6 5 1 2)); } ); |
|
August 15, 2016, 12:51 |
Negative face area and Max Skewness error
|
#5 |
Member
Vignesh
Join Date: Oct 2012
Location: Darmstadt, Germany
Posts: 66
Rep Power: 14 |
Hello All,
I tried creating a 3D mesh by revolving the 2D mesh generated using blockMesh. For this, i followed the steps listed here. I modified the blockMesh in plateHole tutorial which is given below Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.2 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // convertToMeters 1; vertices ( (0.5 0 0) (1 0 0) (2 0 0) (2 0.707107 0) (0.707107 0.707107 0) (0.353553 0.353553 0) (2 2 0) (0.707107 2 0) (0 2 0) (0 1 0) (0 0.5 0) (0.5 0 0.5) (1 0 0.5) (2 0 0.5) (2 0.707107 0.5) (0.707107 0.707107 0.5) (0.353553 0.353553 0.5) (2 2 0.5) (0.707107 2 0.5) (0 2 0.5) (0 1 0.5) (0 0.5 0.5) ); blocks ( hex (5 4 9 10 16 15 20 21) (10 10 1) simpleGrading (1 1 1) hex (0 1 4 5 11 12 15 16) (10 10 1) simpleGrading (1 1 1) hex (1 2 3 4 12 13 14 15) (20 10 1) simpleGrading (1 1 1) hex (4 3 6 7 15 14 17 18) (20 20 1) simpleGrading (1 1 1) hex (9 4 7 8 20 15 18 19) (10 20 1) simpleGrading (1 1 1) ); edges ( arc 0 5 (0.469846 0.17101 0) arc 5 10 (0.17101 0.469846 0) arc 1 4 (0.939693 0.34202 0) arc 4 9 (0.34202 0.939693 0) arc 11 16 (0.469846 0.17101 0.5) arc 16 21 (0.17101 0.469846 0.5) arc 12 15 (0.939693 0.34202 0.5) arc 15 20 (0.34202 0.939693 0.5) ); boundary ( /* left { type symmetryPlane; faces ( (8 9 20 19) (9 10 21 20) ); }*/ right { type patch; faces ( (2 3 14 13) (3 6 17 14) (8 9 20 19) (9 10 21 20) ); } up { type patch; faces ( (7 8 19 18) (6 7 18 17) (0 1 12 11) (1 2 13 12) ); } hole { type patch; faces ( (10 5 16 21) (5 0 11 16) ); } front { type patch; faces ( (10 9 4 5) (5 4 1 0) (1 4 3 2) (4 7 6 3) (4 9 8 7) ); } back { type patch; faces ( (21 16 15 20) (16 11 12 15) (12 13 14 15) (15 14 17 18) (15 18 19 20) ); } ); mergePatchPairs ( ); // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.2.2 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object extrudeMeshDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // What to extrude: // patch : from patch of another case ('sourceCase') // mesh : as above but with original case included // surface : from externally read surface //constructFrom mesh; constructFrom patch; //constructFrom surface; // If construct from patch/mesh: sourceCase "."; sourcePatches (front); // If construct from patch: patch to use for back (can be same as sourcePatch) exposedPatchName back; // Flip surface normals before usage. Valid only for extrude from surface or // patch. flipNormals false; //- Wedge extrusion. If nLayers is 1 assumes symmetry around plane. extrudeModel wedge; nLayers 180; expansionRatio 1.0; //0.9; wedgeCoeffs { axisPt (0 0.1 0); axis (0 1 0); angle 360; } // Do front and back need to be merged? Usually only makes sense for 360 // degree wedges. mergeFaces false; // Merge small edges. Fraction of bounding box. mergeTol 0; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Code:
Mesh stats points: 192780 faces: 552600 internal faces: 527400 cells: 180000 faces per cell: 6 boundary patches: 3 point zones: 0 face zones: 1 cell zones: 0 Overall number of cells of each type: hexahedra: 180000 prisms: 0 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 0 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology right 10800 11160 ok (non-closed singly connected) up 10800 11160 ok (non-closed singly connected) hole 3600 3780 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-2 0 -2) (2 2 2) Mesh (non-empty, non-wedge) directions (1 1 1) Mesh (non-empty) directions (1 1 1) Boundary openness (-2.70183e-18 -6.87951e-16 1.08897e-18) OK. Max cell openness = 2.25422e-15 OK. Max aspect ratio = 63.3828 OK. ***Zero or negative face area detected. Minimum area: 0 <<Writing 5400 zero area faces to set zeroAreaFaces Min volume = 1.4814e-06. Max volume = 0.000306143. Total volume = 24.8663. Cell volumes OK. Mesh non-orthogonality Max: 41.2605 average: 8.22311 Non-orthogonality check OK. Face pyramids OK. ***Max skewness = 937.604, 5400 highly skew faces detected which may impair the quality of the results <<Writing 5400 skew faces to set skewFaces Coupled point location match (average 0) OK. Failed 2 mesh checks. End
__________________
Thanks and Regards Vignesh |
|
August 22, 2016, 10:22 |
|
#6 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52 |
Hi,
In extrude mesh there is an option "mergeFace" ... You have false. Change it to true. By the way, if you want to make a 360 extrusion, ou do not need to use stitch Mesh
__________________
Keep foaming, Tobias Holzmann |
|
August 22, 2016, 11:41 |
|
#7 |
Member
Vignesh
Join Date: Oct 2012
Location: Darmstadt, Germany
Posts: 66
Rep Power: 14 |
Hi Tobi,
Thanks for responding, I tried with mergeMesh set to true also before and also now. I get this error Code:
***Zero or negative face area detected. Minimum area: 0 <<Writing 9480 zero area faces to set zeroAreaFaces I am attaching the setup in case if you want to have a look !!
__________________
Thanks and Regards Vignesh |
|
August 23, 2016, 05:36 |
|
#8 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52 |
Hi,
I checked your geometry but I do not get the point.
__________________
Keep foaming, Tobias Holzmann |
|
August 23, 2016, 05:58 |
|
#9 |
Member
Vignesh
Join Date: Oct 2012
Location: Darmstadt, Germany
Posts: 66
Rep Power: 14 |
Hi Tobi,
Thanks for taking time to look into the mesh !! I wanted to create a sphere inside a cylinder. I followed the steps listed in this link. It says, that we need a 2d mesh one cell thick with both front and back faces labelled as separate patches. Yes the mesh is not optimal ... i am working on it now
__________________
Thanks and Regards Vignesh |
|
August 23, 2016, 06:55 |
|
#11 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52 |
I tied your method with FOAM 4.x (case is attached). The problem with that one:
Code:
***Zero or negative face area detected. Minimum area: 0 Summary You did everything correct but the centerline makes problems.
__________________
Keep foaming, Tobias Holzmann |
|
August 23, 2016, 06:59 |
|
#12 | |
Member
Vignesh
Join Date: Oct 2012
Location: Darmstadt, Germany
Posts: 66
Rep Power: 14 |
Quote:
Hi Tobi, Thanks once again. Initially i thought using SHM for this case might result in polyhedral cells close to the sphere !! But i will try the tutorials you have it in your website.
__________________
Thanks and Regards Vignesh |
||
November 27, 2016, 17:46 |
|
#13 |
New Member
Marius-Corne Meijer
Join Date: Sep 2016
Location: Pretoria, South Africa
Posts: 4
Rep Power: 10 |
Hi Vignesh,
This may be too late, but for future reference: after extrudeMesh, you can run collapseEdges to fix the cell faces on the centerline -- it collapses the hex cells into the appropriate shape. |
|
February 1, 2017, 18:12 |
|
#14 |
Super Moderator
Tobias Holzmann
Join Date: Oct 2010
Location: Bad Wörishofen
Posts: 2,711
Blog Entries: 6
Rep Power: 52 |
Hi aeroeng,
Good to know ... Never used that tool. Sent from my HTC One mini using CFD Online Forum mobile app
__________________
Keep foaming, Tobias Holzmann |
|
June 21, 2017, 09:31 |
|
#15 |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Hello,
Just curiosity, with this method, i.e. rotating the 2D mesh slice to get the 3D cylindrical mesh, will we get the singular axis? Because in that axis in 2D mesh slide is always axis. Thanks. |
|
June 21, 2017, 18:44 |
|
#16 |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Hello All,
I tried the case in the following link, which is from OpenFOAM 2.3.x: https://github.com/OpenFOAM/OpenFOAM...xisymmetricJet In that case, the slab mesh is first generated, and then the command extrudeMesh can be used to generated a 5 degree wedge. In this case, the angle is 1 degree. If I change it to 180 or 360, I will not get the half cylinder or full cylinder. Is there any parameter that should be changed in extrudeMeshDict? Thanks! |
|
June 21, 2017, 20:13 |
|
#17 | |
New Member
Marius-Corne Meijer
Join Date: Sep 2016
Location: Pretoria, South Africa
Posts: 4
Rep Power: 10 |
Quote:
I'm not sure I follow your first post. As for your second post: if you want to generate a 3D mesh, you need to change the settings in the extrudeMeshDict: https://github.com/OpenFOAM/OpenFOAM...xtrudeMeshDict For extrudeModel, you should use sector. If you do a full 360 extrusion, consider using "mergeFaces true;". For a full 360 extrusion with mergeFaces true, as far as I remember, extrudeMesh automatically fixes the zero face areas that are generated if you have cells in the 2D mesh that lie on the axis of rotation. If not, you can use the collapseEdges utility, which will change the cell shape from hex to whatever shape results from collapsing zero-length edges and zero-area faces. I hope this helps. |
||
June 21, 2017, 20:42 |
|
#18 |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Dear Marius-Corne,
Thank you for your suggestions. I solver this problems. I am running a test case - an axisymmetric jet flow, to see if there is any problem. ======update====== The results are reasonable, at least qualitatively. But Iam curious how OpenFOAM does the numerical discretization for the cells sharing the centerline axis? |
|
Tags |
axisymmetric mesh, extrudemesh |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[snappyHexMesh] Creating multiple multiple cell zones with snappyHexMesh - a newbie in deep water! | divergence | OpenFOAM Meshing & Mesh Conversion | 0 | January 23, 2019 05:17 |
Mesh motion with Translation & Rotation | Doginal | CFX | 2 | January 12, 2014 07:21 |
3D Hybrid Mesh Errors | DarrenC | ANSYS Meshing & Geometry | 11 | August 5, 2013 07:42 |
Icemcfd 11: Loss of mesh from surface mesh option? | Joe | CFX | 2 | March 26, 2007 19:10 |
Generating a Non-Uniform 2-D Axisymmetric Mesh | anindya | Siemens | 0 | December 13, 2001 02:52 |