CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Meshing & Mesh Conversion

[snappyHexMesh] SnappyHexmesh error: "keyword meshQualityControls is undefined in dictionary"

Register Blogs Community New Posts Updated Threads Search

Like Tree3Likes
  • 2 Post By MtnRunBeachBum
  • 1 Post By piotr.mecht

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 2, 2014, 10:41
Default SnappyHexmesh error: "keyword meshQualityControls is undefined in dictionary"
  #1
New Member
 
Peter Rosén
Join Date: Sep 2014
Posts: 12
Rep Power: 12
Zappstar is on a distinguished road
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
Attached Files
File Type: txt snappyHexMeshDict .txt (11.1 KB, 99 views)
Zappstar is offline   Reply With Quote

Old   December 8, 2014, 06:23
Default
  #2
Senior Member
 
Jens Höpken
Join Date: Apr 2009
Location: Duisburg, Germany
Posts: 159
Rep Power: 17
jhoepken is on a distinguished road
Send a message via Skype™ to jhoepken
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?
jhoepken is offline   Reply With Quote

Old   February 20, 2015, 09:07
Default
  #3
Member
 
Naresh Yathuru
Join Date: Feb 2015
Posts: 66
Rep Power: 11
Naresh yathuru is on a distinguished road
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.
Attached Files
File Type: doc snappy.doc (23.0 KB, 42 views)
Naresh yathuru is offline   Reply With Quote

Old   February 20, 2015, 10:02
Default
  #4
Member
 
Raitis Lebdevs
Join Date: Feb 2015
Location: Latvia
Posts: 37
Rep Power: 11
rietis is on a distinguished road
Send a message via Skype™ to rietis
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
rietis is offline   Reply With Quote

Old   February 22, 2015, 15:41
Smile
  #5
Member
 
Naresh Yathuru
Join Date: Feb 2015
Posts: 66
Rep Power: 11
Naresh yathuru is on a distinguished road
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".
Naresh yathuru is offline   Reply With Quote

Old   February 22, 2015, 15:56
Default
  #6
Member
 
Raitis Lebdevs
Join Date: Feb 2015
Location: Latvia
Posts: 37
Rep Power: 11
rietis is on a distinguished road
Send a message via Skype™ to rietis
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
rietis is offline   Reply With Quote

Old   April 16, 2015, 12:37
Smile
  #7
New Member
 
Jimmy
Join Date: Apr 2015
Posts: 20
Rep Power: 11
MtnRunBeachBum is on a distinguished road
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!
Amin Morales and Liangyuan like this.
MtnRunBeachBum is offline   Reply With Quote

Old   April 16, 2015, 16:58
Default
  #8
Member
 
Raitis Lebdevs
Join Date: Feb 2015
Location: Latvia
Posts: 37
Rep Power: 11
rietis is on a distinguished road
Send a message via Skype™ to rietis
Can you post or sent me your file?
rietis is offline   Reply With Quote

Old   November 11, 2017, 16:55
Default
  #9
Member
 
Piotr Ładyński
Join Date: Apr 2017
Posts: 55
Rep Power: 9
piotr.mecht is on a distinguished road
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)
Attached Files
File Type: h snappyHexMeshDict.h (9.4 KB, 37 views)
Malkocoglu likes this.

Last edited by piotr.mecht; November 12, 2017 at 05:09. Reason: solution found
piotr.mecht is offline   Reply With Quote

Old   November 13, 2017, 10:44
Default
  #10
New Member
 
Simeon Skopalik
Join Date: May 2017
Posts: 4
Rep Power: 9
sskp is on a distinguished road
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!
sskp is offline   Reply With Quote

Old   July 22, 2019, 10:44
Smile
  #11
New Member
 
Pavlos Semelides
Join Date: Jul 2019
Posts: 5
Rep Power: 7
pavlossemelides is on a distinguished road
@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,
pavlossemelides is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 21:30.