|
[Sponsors] |
[snappyHexMesh] SnappyHexmesh error: "keyword meshQualityControls is undefined in dictionary" |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
December 2, 2014, 10:41 |
SnappyHexmesh error: "keyword meshQualityControls is undefined in dictionary"
|
#1 |
New Member
Peter Rosén
Join Date: Sep 2014
Posts: 12
Rep Power: 12 |
Hi
I am trying to learn about how to use SHM and i am a bit confused. 1. I am trying to mesh a fluid domain with a geometry object inside. In Salome i have named every patch on my geometry, inlet, outlet, top, bottom, far-field and disk, which is my object inside the domain. When i am using blockMesh i make the boundy box just a little bigger then my domain. Is this a stupid approach? Should i just use the blockMesh mesh as domain instead and just use SHM to snap that to the disk? 2. When i am running SHM i get the error, --> FOAM FATAL IO ERROR: keyword meshQualityControls is undefined in dictionary "/home/peter/OpenFOAM/peter-2.3.x/run/2D_Test/0Deg/system/snappyHexMeshDict" file: /home/peter/OpenFOAM/peter-2.3.x/run/2D_Test/0Deg/system/snappyHexMeshDict from line 18 to line 364. From function dictionary::subDict(const word& keyword) const in file db/dictionary/dictionary.C at line 643. FOAM exiting sending along my snappyHexMeshDict file. Can anyone see something wrong, have i misplaced the brackets some ware? Kind regards, Peter |
|
December 8, 2014, 06:23 |
|
#2 |
Senior Member
|
1) This depends on your outer boundaries geometry. If it is a box, then just make it with block mesh. Otherwise make the bounding box of the outer (blockMesh) mesh larger than the bounding box of your outer geometry and let snappy do the rest.
2) Just read the error message, it tells you what's missing. It is an entry at the very end, that is missing. Compare it to one of the examples.
__________________
Blog: sourceflux.de/blog "The OpenFOAM Technology Primer": sourceflux.de/book Twitter: @sourceflux_de Interested in courses on OpenFOAM? |
|
February 20, 2015, 09:07 |
|
#3 |
Member
Naresh Yathuru
Join Date: Feb 2015
Posts: 66
Rep Power: 11 |
Hi,
Thanks for the reply Jhoepken. I m new to openfoam. I m trying to learn how snappyhexmesh works. so my geometry has a room with inlet and outlet. 1. I faced the same error . then i Included this line #include "meshQualityDict" Now i m getting this error --> FOAM FATAL IO ERROR: Cannot open include file "/home/yathuru/task1/system/meshQualityDict" while reading dictionary "/home/yathuru/task1/system/snappyHexMeshDict.meshQualityControls" 2. There is another error it says file: /home/yathuru/task1/system/snappyHexMeshDict at line 131. From function functionEntries::includeEntry::includeEntry(dictio nary& parentDict, Istream&) in file db/dictionary/functionEntries/includeEntry/includeEntry.C at line 148. FOAM exiting Am i missing some files if so how to add them. |
|
February 20, 2015, 10:02 |
|
#4 |
Member
|
Dear all.
I looked at the snappy file and I have a questions about the .stl files, if someone could answer this I would be gratefull. There was created a geometry like inlet.stl and then some specifications. What is this inlet? is it the one who was created in blockmesh? And if so, how can one create these files in folder triSurfaceMesh, because if I do like that at inlet it gives me an error that it can not find triSurfaceMesh Cheers Raitis |
|
February 22, 2015, 15:41 |
|
#5 |
Member
Naresh Yathuru
Join Date: Feb 2015
Posts: 66
Rep Power: 11 |
Inlet.stl is the stl files that is saved in the triSurface directory. and the inlet is the name of the solid. for example try this.
open the trisurface directory there u can find the stl files open one of them in a text editor u can see something like "solid inlet" and at the end u will see end "solid inlet". |
|
February 22, 2015, 15:56 |
|
#6 |
Member
|
Yes, I understand that in the folder there should be the stl files. Question is how do I create one?
For example I have an already existing geometry and I want to refine the mesh at a certain wall with the snapyHexMesh, how do I create an stl file then for example for inlet, if the triSurface folder is empty? | => if this would be mine geometry wall, and I would want to refine the | mesh close to it? | Cheers Raitis |
|
April 16, 2015, 12:37 |
|
#7 |
New Member
Jimmy
Join Date: Apr 2015
Posts: 20
Rep Power: 11 |
Referring to the original post...
I spent almsot 2 days tracking this same error down, and in my case it was a syntax issue. In editing/updating the snappyHexMeshDict, I had added an extra semicolon somewhere that must have indicated to OF that the entire file had been read, before it got to the end. I didn't need to change anything about meshQualityControls, just delete the unwanted semicolon. Just a friendly reminder to newbies/non-programmers like me: mind your syntax. And to experienced users/posters: don't assume we know basic programming stuff as well as you. Cheers! |
|
April 16, 2015, 16:58 |
|
#8 |
Member
|
Can you post or sent me your file?
|
|
November 11, 2017, 16:55 |
|
#9 |
Member
Piotr Ładyński
Join Date: Apr 2017
Posts: 55
Rep Power: 9 |
I'm trying to get used to sHM syntax and I had this message about missing meshQualityControl keyword too. I found some threads on this forum with similar errors and solution was related to missing bracket.
I really can't find any {} or () bracket missing in my code :< if I remove refinementSurfaces content sHM runs normally but i need this part of code. What's wrong with it? Can someone help me find my mistake? EDIT: Refinement level definition at refinementSurfaces should be defined with space before "()": level (1 1) (and not: level(1 1) like i did) Last edited by piotr.mecht; November 12, 2017 at 05:09. Reason: solution found |
|
November 13, 2017, 10:44 |
|
#10 |
New Member
Simeon Skopalik
Join Date: May 2017
Posts: 4
Rep Power: 9 |
Hi,
I was experiencing similar problems over the last couple of days. It appears to be the same problem, and I am still not 100% sure why this is happening. I am not an expert and hopefully someone else who is might shed some light on this, but I believe it is a deeper issue which is not simply fixed by adding the meshQualityControl in the SHM dictionary. Here is why I came to that conclusion: I was watching a meshing tutorial on youtube for a simple geometry (90deg bent pipe). Thankfully all the case files used in the tutorial were available for download so I was able to reproduce what was happening on the screen and everything was working fine. I then proceeded to apply the same procedure to my own geometry, a straight pipe with venturi narrowing in the middle. Naturally I copy and pasted the case files and replaced the STL file with my own. I also edited the SHM dictionary so it fits my geometry: I only changed the name of the stl file, mesh location and patch names and types. I never touched the section where meshQualityControl are specified. I tried running the case and got the error message that meshQualityControl is undefined. I tried checking the syntax, copying this part of the dictionary from another case, using different editors etc. but nothing worked. Finally I decided to restore the original file and start adapting it line by line, running SHM after each change and seeing what error message is displayed. I eventually got back to the stage where OpenFoam was complaining about the missing meshQualityControl entry. At that stage I was editing the refinementSurfaces part of the dictionary. After a few edits, re-writing the entries in what seemed identical manner I managed to get it working, but I still have no idea why. The bottom line here is that, at least according to my experience, the error doesn't necessary need to be in the entry OF is complaining about. Not particularly helpful to say the least... I hope this helps at least a little and if anyone more experienced has an explanation I would be very grateful to hear it! |
|
July 22, 2019, 10:44 |
|
#11 |
New Member
Pavlos Semelides
Join Date: Jul 2019
Posts: 5
Rep Power: 7 |
@sskp
I was having the same problem as the original poster. Your post gave me a hint as to what might have been going wrong. I put #include "meshQualityDict" under the refinementSurfaces segment in the snappyHexMeshDict file; like so: refinementSurfaces { #include "meshQualityDict" ... Note that #include "meshQualityDict" should also show up under the meshQualityControls segment: meshQualityControls { #include "meshQualityDict" ... Cheers, |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
LEMOS InflowGenerator | r_gordon | OpenFOAM Running, Solving & CFD | 103 | December 18, 2018 01:58 |
OpenFOAM 1.6-ext git installation on Ubuntu 11.10 x64 | Attesz | OpenFOAM Installation | 45 | January 13, 2012 13:38 |
OpenFOAM on MinGW crosscompiler hosted on Linux | allenzhao | OpenFOAM Installation | 127 | January 30, 2009 20:08 |
Problem with rhoSimpleFoam | matteo_gautero | OpenFOAM Running, Solving & CFD | 0 | February 28, 2008 07:51 |
G95 + CGNS | Bruno | Main CFD Forum | 1 | January 30, 2007 01:34 |