|
[Sponsors] |
[snappyHexMesh] meshing with snappy: im a very beginner |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
October 1, 2009, 07:17 |
meshing with snappy: im a very beginner
|
#1 |
Senior Member
Samuele Z
Join Date: Oct 2009
Location: Mozzate - Co - Italy
Posts: 520
Rep Power: 19 |
Hi all,
I am a very beginner with OpenFOAM and I do have a stl model that I wanna mesh. So, which are the steps to do? I wanna use SnappyHexMesh in order to be able to run the OpenFOAM analysis, later. What I am asking you is: could you suggest me the steps I had to follow? Or, even simpler, could you explain me how I can run the motorbike example in the tutorial? Thanks a lot, samuele |
|
October 1, 2009, 12:22 |
|
#2 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Hi Samuele,
You can find snappyHexMesh described in the User's Guide. But: You could start by copying the '$FOAM_TUTORIALS/snappyHexMesh/motorBike' directory to your '$FOAM_RUN' directory. Basically the motorBike case consists of a man on a motorbike (STL file), and presumably the aerodynamics wish to be looked at so a large box is created around the man on the motorbike (like a wind tunnel). The way snappyHexMesh works is that it meshes the box first with blockMesh (or any other mesher) and then cuts the STL out of that box and either keeps the part of the mesh that it cut out or the mesh that remains. It then 'snaps' the castellated surface to the STL (ie it smoothes the mesh at the STL surface). Then an optional step is to add a boundary layer. So enter the '$FOAM_RUN/motorBike' and execute 'blockMesh' - this creates the box around the motorbike. Then execute snappyHexMesh, which does its thing and creates the new mesh in the next time directory. I think time '1' is the castellated mesh, time '2' is the snapped mesh and time '3' has a boundary layer. You have to zoom in close to see the motorbike. So to use your own STL, place it in the 'constant/triSurface' directory and then edit the 'snappyHexMeshDict' in the 'system' directory appropriately. You can change the refinement level etc and turn on/off boundary layers. Hope it helps, Philip C |
|
October 1, 2009, 12:35 |
Thank
|
#3 |
Senior Member
Samuele Z
Join Date: Oct 2009
Location: Mozzate - Co - Italy
Posts: 520
Rep Power: 19 |
Ok, it really helps.
Can you give me any suggestion about the layer feature? I have tryied to delete them, but it tells me that there's something wrong. Is the point explained in the user guide? Thanks a lot, samuele |
|
October 1, 2009, 12:45 |
|
#4 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
At the top of the snappyHexMeshDict,
you can set the layers feature to on or off. Don't delete the layers stuff from the dictionary. I think you can turn the other two steps on or off there too. Philip |
|
October 1, 2009, 12:52 |
|
#5 |
Senior Member
Samuele Z
Join Date: Oct 2009
Location: Mozzate - Co - Italy
Posts: 520
Rep Power: 19 |
Just a question: but do you think that SnappyHexMesh is a good choice???
Thanks a lot, samuele. |
|
October 1, 2009, 13:00 |
|
#6 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
There are a lot of meshing softwares out there, so it really depends on what you want to do.
I haven't used snappyHexMesh too much, and I'd have to do some mesh comparison studies before I could really say, but it's easy enough to use once you figure it out, and it's built in to OpenFOAM. You'll probably have to mess around with the mesh refinement until it's right and you get a mesh independent result. But as I said there are lots of software choices out there and it depends what you want to do. Philip |
|
November 12, 2009, 05:22 |
|
#7 |
Guest
Posts: n/a
|
Hello everyone,
I'm a newbie to the OpenFOAM world and I'd like to make my first own meshes. (I've already completed all the tutorials and excercises in the User's and Programmer's Guid.) I'm on To start off, I have two questions: Like samiam1000, I wanted to make the Motorbike Tutorial. When I executed snappyHesMesh, it started fine, but it ended with following message and aborted: ----------------------------------------------------------------------------------------------------- Create time Create mesh for time = 3 Read mesh in = 3.91 s Overall mesh bounding box : (-5 -4 0) (15 4 8) Relative tolerance : 1e-06 Absolute matching distance : 2.29783e-05 Reading refinement surfaces. Read refinement surfaces in = 2.05 s Reading refinement shells. Refinement level 4 for all cells inside refinementBox Read refinement shells in = 0 s Setting refinement level of surface to be consistent with shells. Checked shell refinement in = 0.02 s Determining initial surface intersections ----------------------------------------- Edge intersection testing: Number of edges : 1065751 Number of edges to retest : 1065751 Number of intersected edges : 30128 Calculated surface intersections in = 6.4 s Initial mesh : cells:339662 faces:1065751 points:392459 Cells per refinement level: 0 934 1 1720 2 5040 3 9472 4 131655 5 24036 6 166805 Adding patches for surface regions ---------------------------------- Patch Region ----- ------ motorBike: 5 motorBike_frt-fairing:001%1 6 motorBike_windshield:002%2 7 motorBike_rr-wh-rim:005%5 8 motorBike_rr-wh-rim:010%10 9 motorBike_fr-wh-rim:011%11 10 motorBike_fr-wh-brake-disk:012%12 11 motorBike_frame:016-shadow%13 12 motorBike_rear-susp:014%14 13 motorBike_rear-susp:014-shadow%15 14 motorBike_frame:016%16 15 motorBike_rr-wh-rim:005-shadow%17 16 motorBike_rr-wh-chain-hub:022%22 17 motorBike_rearseat%24 18 motorBike_frt-fairing%25 19 motorBike_windshield%26 20 motorBike_headlights%27 21 motorBike_driversseat%28 22 motorBike_rear-body%29 23 motorBike_fuel-tank%30 24 motorBike_exhaust%31 25 motorBike_rr-wh-rim%32 26 motorBike_fr-mud-guard%33 27 motorBike_fr-wh-rim%34 28 motorBike_fr-wh-brake-disk%35 29 motorBike_fr-brake-caliper%36 30 motorBike_fr-wh-tyre%37 31 motorBike_hbars%38 32 motorBike_fr-forks%39 33 motorBike_chain%40 34 motorBike_rr-wh-tyre%41 35 motorBike_square-dial%42 36 motorBike_round-dial%43 37 motorBike_dial-holder%44 38 motorBike_rear-susp%45 39 motorBike_rear-brake-lights%46 40 motorBike_rear-light-bracket%47 41 motorBike_frame%48 42 motorBike_rear-mud-guard%49 43 motorBike_rear-susp-spring-damp%50 44 motorBike_fairing-inner-plate%51 45 motorBike_clutch-housing%52 46 motorBike_radiator%53 47 motorBike_water-pipe%54 48 motorBike_water-pump%55 49 motorBike_engine%56 50 motorBike_rear-shock-link%57 51 motorBike_rear-brake-fluid-pot-bracket%58 52 motorBike_rear-brake-fluid-pot%59 53 motorBike_footpeg%60 54 motorBike_rr-wh-chain-hub%61 55 motorBike_rear-brake-caliper%62 56 motorBike_rider-helmet%65 57 motorBike_rider-visor%66 58 motorBike_rider-boots%67 59 motorBike_rider-gloves%68 60 motorBike_rider-body%69 61 motorBike_frame:0%70 62 motorBike_frt-fairing:001-shadow%74 63 motorBike_windshield-shadow%75 64 motorBike_fr-mud-guard-shadow%81 65 motorBike_fr-wh-brake-disk-shadow%83 66 motorBike_rear-mud-guard-shadow%84 67 motorBike_rear-susp-spring-damp-shadow%85 68 motorBike_radiator-shadow%86 69 motorBike_rear-shock-link-shadow%87 70 motorBike_rear-brake-fluid-pot-bracket-shadow%88 71 motorBike_rr-wh-chain-hub-shadow%89 Added patches in = 0.01 s Selecting decompositionMethod hierarchical Refinement phase ---------------- Found point (3 3 0.43) in cell 169409 on processor 0 Reading external feature lines. Read feature lines in = 0 s Surface refinement iteration 0 ------------------------------ Marked for refinement due to surface intersection : 0 cells. Marked for refinement due to curvature/regions : 14 cells. Determined cells to refine in = 0.26 s Selected for refinement : 14 cells (out of 339662) hexRef8 : Dumping cell as obj to "/home/fa1/OpenFOAM/eschirach/run/tutorials/incompressible/simpleFoam/motorBike/cell_334436.obj" cell 334436 of level 5 uses more than 8 points of equal or lower level Points so far:8(20342 45178 56201 56206 83600 83601 388097 388098)#0 Foam::error:rintStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so" #1 Foam::error::abort() in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so" #2 Foam::hexRef8::setRefinement(Foam::List<int> const&, Foam:olyTopoChange&) in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libdynamicMesh.so" #3 Foam::meshRefinement::refine(Foam::List<int> const&) in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libautoMesh.so" #4 Foam::meshRefinement::refineAndBalance(Foam::strin g const&, Foam::decompositionMethod&, Foam::fvMeshDistribute&, Foam::List<int> const&) in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libautoMesh.so" #5 Foam::autoRefineDriver::surfaceOnlyRefine(Foam::re finementParameters const&, int) in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libautoMesh.so" #6 Foam::autoRefineDriver::doRefine(Foam::dictionary const&, Foam::refinementParameters const&, bool, Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libautoMesh.so" #7 main in "/opt/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/snappyHexMesh" #8 __libc_start_main in "/lib/libc.so.6" #9 _start at /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:116 From function hexRef8::setRefinement(const labelList&, polyTopoChange&) in file polyTopoChange/polyTopoChange/hexRef8.C at line 3481. FOAM aborting ----------------------------------------------------------------------------------------------------- Could someone please tell me what this exactly means? I could start ParaView on the mesh and see the motorbike in it's third iteration. My second question: I have an .stl file and I want to mesh it with snappy. I created a folder and made everything that's in the User's Guide. But I don't realy understand how to deal with the snappyHexMeshDict dictionary. How can I tell snappy, that I need the interior mesh for my calculation (I have to mesh a bended tube). What about the boundary definitions? How do I creat them? What exactly do I need to define? Best greetings from a sunny autumn day in Munich, Eridian EDIT I have one more question. I tried to adapt the motorbike case to my own test case. When I try to run sHM, I reviece the following error: ---------------------------------------------------------------------------------------------------- Create time Create mesh for time = 0 Read mesh in = 0.04 s --> FOAM Warning : From function entry::getKeyword(keyType&, Istream&) in file db/dictionary/entry/entryIO.C at line 78 Reading /home/fa1/OpenFOAM/eschirach/run/testmodelle/uebung_box/box_stl/system/snappyHexMeshDict found on line 33 the punctuation token '{' expected either } or EOF keyword castellatedMeshControls is undefined in dictionary "/home/fa1/OpenFOAM/eschirach/run/testmodelle/uebung_box/box_stl/system/snappyHexMeshDict" file: /home/fa1/OpenFOAM/eschirach/run/testmodelle/uebung_box/box_stl/system/snappyHexMeshDict from line 18 to line 35. From function dictionary::subDict(const word& keyword) in file db/dictionary/dictionary.C at line 467. FOAM exiting ---------------------------------------------------------------------------------------------------- #1 Error The command lines in snappyHexMeshDict are (line 29 - 44) --------------------------- geometry { box.stl; { type triSurfaceMesh; name box; } refinementBox { type searchableBox; min (-1.0 -0.7 0.0); max ( 8.0 0.7 2.5); } }; --------------------------- I don't know, why there should be an "}" or an "EOF" in line 33. What is actually an "EOF"? #2 Error I don't unterstand, why the castellatedMeshControls seems to be undefined. All braces are closed and I did the same things in there like in the motorbike tutorial. Moreover I tried zu set the boundaryLayers on "false", because, I'm not sure what to enter there. Can I delete now the code from the sHMDict or must I leave in there - but then, with which Information in it? A lot of questions, I know, but I'd realy appreciate it, if someone could help me! Last edited by Eridian; November 13, 2009 at 05:26. |
|
November 16, 2009, 22:04 |
|
#8 |
New Member
Join Date: Nov 2009
Posts: 28
Rep Power: 17 |
Philip,
I have successfully generated the mesh ( I think, i ran blockmesh and snappyhexmesh with no errors). I'm still not able to see the bike in parefoam any suggestions on to adjust the settings to see it? Also, this tutorial is equipped with the appropriate files to run a flow case correct? Thank you |
|
November 17, 2009, 06:32 |
|
#9 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Stark22,
It sounds as if it ran fine. The bike is very small relative to the size of the flow domain, so as far as I can remember you set the view to wireframe and zoom in very close to the centre of the bottom of the domain. I have attached a picture of the zoomed out geometry (you can see the motorbike is where the mesh is refined at the bottom) and the zoomed in view where you can see the motorbike. I have never ran the motorbike case so I don't know but I'm sure you can give it a try. Philip |
|
November 17, 2009, 06:59 |
|
#10 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Hi Eridian,
I can't answer all your questions but hopefully I can be of some help. Firstly, I am not sure why snappyHexMesh ended in an error - possibly it ran out of RAM, have you very little? - i'm not sure, but I have attached the snappyHexMeshDict from my OF-1.5-dev case that works for me, so you could try that. To tell snappy to keep the interior part of your mesh, just specify 'locationInMesh' (line 155 I think) to be a point inside that part of the mesh you want to keep. So you specify this point and you specify the STL surface(s) you are using and the refinement on these surfaces. Specify boundary patches is a slightly more difficult, I think you can find some answers by searching the forum. You can define patches on your blockMesh box and these patches will be kept (if theyre still left). I am not sure what you edited in snappyHexMeshDict but there are three parts to snappy that can be turned on or off at the top: castellate, snapping and addLayer (or something like that) so if you don't want one just set to no but don't delete things in the dictionary. Hopefully it helps a bit, Philip |
|
November 17, 2009, 09:56 |
|
#11 |
New Member
Join Date: Nov 2009
Posts: 28
Rep Power: 17 |
Philip,
Thanks for the response. I did set the view to wireframe but I didn't obtain the same mesh model as you do. My grid is much coarser and doesn't contain the refined region where the motorbike is located. I must be doing something wrong although there are no error messages after running snappyhexmesh. Im running a dual core (intel) 64 bit OS with 8G of memory. It takes about 187s for the mesh to be generatated. How long does it take you to create this mesh on your system? Ill keep working at it. Thanks again |
|
November 17, 2009, 10:01 |
|
#12 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Stark22,
Ye mine takes about the same length of time on my machine. Hmmnn did you change to the last time step? The final mesh will be in the third timestep usually - the first will be just the blockMesh, the second will be the castellated mesh and the third will be the snapped mesh. Maybe that'll work, Philip |
|
November 17, 2009, 22:03 |
|
#13 |
New Member
Join Date: Nov 2009
Posts: 28
Rep Power: 17 |
Philip,
When I run blockmesh and snappyHexMesh the following is created: Folders 1, 2, 3 and file motorBike.OpenFoam. If I change directories to folder "3" and run paraFoam, it will not run. It seems parafoam will only run the motorBike.OpenFoam file that was in the original directory. When I run this file it looks like it only generates to the overall fluid domain boundary. Any thoughts. I really appreciate your help. |
|
November 18, 2009, 07:11 |
|
#14 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Stark22,
I'm not sure what the motorbike.OpenFOAM file is, I suspect it is created by paraFoam. I don't use paraFoam, I use 'foamToVTK' and then open the VTK file in 'paraview'. So you could try that - from the case directory run 'foamToVTK', then run 'paraview'. In paraview, go to 'open' and go into the 'VTK' directory that was created and open the '*.vtk' file. It should then work if you go to the last time-step. Or you could try: delete your mesh by 'rm -rf constant/polyMesh' then move the mesh in '3' to the constant directory 'mv 3/polyMesh constant/' then remove the time directories 'rm -rf 1 2 3' then when you run 'paraFoam' it should work. Philip |
|
November 18, 2009, 08:30 |
|
#15 |
New Member
Join Date: Nov 2009
Posts: 28
Rep Power: 17 |
Philip,
I ran foamtoVTK and then launched paraview (parafoam is the script that launches paraview). I opened the last time step mesh *.vtk (3) and sure enough it worked. Thank for your help I really appreciate it. Now I just need to run an analysis! |
|
November 18, 2009, 08:42 |
|
#16 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
No problem,
good luck! Philip |
|
November 18, 2009, 21:54 |
|
#17 |
New Member
Join Date: Nov 2009
Posts: 28
Rep Power: 17 |
Philip,
I know this is off topic but if you generate the motorbike mesh and then run simpleFoam it will generate solution files. The last solution file is "500" which I believe relates to the time step specified in one of the boundary condition directories (I forget the actual name, I believe it was in the "systems" directory). How then do you post process it in paraview? Thanks, and sorry to the rest for going off topic. |
|
November 19, 2009, 06:20 |
|
#18 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Stark22,
I am not sure what your question is exactly, but the first tutorial in the OpenFOAM user's guide (http://foam.sourceforge.net/doc/Guides-a4/UserGuide.pdf) explains clearly how to run a simple fluid simulation and how to perform post-processing with paraview (streamlines, pressure/velocity plots, glyphs). I am guessing that the same methods can be applied to your case. Philip |
|
November 19, 2009, 07:44 |
|
#19 |
New Member
Join Date: Nov 2009
Posts: 28
Rep Power: 17 |
I did the cavity flow tutorial but I'll keep trying. Thanks for the help.
|
|
November 23, 2009, 06:03 |
|
#20 | ||
Member
Join Date: Nov 2009
Location: Munich
Posts: 43
Rep Power: 17 |
Hello everyone,
I'm trying to mesh a test file i created, but I recieve two different errors: #1 It is about the locationInMesh in the castellatedMeshControls dictionary. This happens, when I enter (580 430 -45) for the locaitonInMesh Quote:
#2 When entering (188 270 -50) for locationInMesh, I get this error: Quote:
Last edited by sErik; November 23, 2009 at 06:22. |
|||
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[snappyHexMesh] snappyHexMesh stops meshing | Tensian | OpenFOAM Meshing & Mesh Conversion | 2 | January 26, 2014 10:54 |
Help me to choose between Ansys Meshing, Fluent Meshing or ICEM ? | pipolaki | ANSYS | 0 | December 6, 2013 09:12 |
[snappyHexMesh] Meshing NACA airFoil with snappy | Paolo.F | OpenFOAM Meshing & Mesh Conversion | 6 | October 8, 2013 05:52 |
Meshing locks workbench window. | andy2o | CFX | 0 | February 1, 2008 06:01 |