Inconsistent Grading Caused by Simple Translation
I have a simple blockMeshDict which creates four 6-sided blocks. blockMesh runs fine when I define the vertices as follows:
Code:
(5 0 0) // 0 Code:
(5 0 -5) // 0 For your information, here is the full blockMeshDict: Code:
/*--------------------------------*- C++ -*----------------------------------*\ |
Dear Wildfire230,
Did you solved the problem because I also facing the same problem and still working on it. If you have already solved the problem could you please share the information? |
All I could figure out was that it is some problem with generating blocks with six vertices. I think as you get farther from the origin, somehow errors add up, and the 4 vertices which are supposed to collapse into 2 somehow do not line up perfectly when the points are created. That's all I can think of. My only recommendation is to remake your mesh using blocks with 8 vertices.
|
Dear wilfire230,
Thank you very much for your suggestion. It helps me a lot and I already solved the problem. Your cooperation is highly appreciated. |
Greetings to all!
I saw this thread about a week ago and I managed to have a look into this myself. I've found the reason as to why this occurs and another way on how to not need to have to keep the geometry 5.0m closer to the origin (along Z). What I did was look into the file "src/mesh/blockMesh/blockMesh/blockMeshMerge.C", which is the one that emits the error message. Then I did the modifications indicated by this patch: Code:
diff --git a/src/mesh/blockMesh/blockMesh/blockMeshMerge.C b/src/mesh/blockMesh/blockMesh/blockMeshMerge.C Code:
(2.5 0 -19.330127019) // 8 For a bit more information on this topic of numerical precision, here's an interesting test:
In your case, you had around 11 digits to represent, but the blockMesh code needs to rely on square values, which roughly means that it would require around 22 digits to handle accurately the calculated distances. But since it fortunately it does not require so many digits of precision, if we remove the 11th digit, 17 out of 20 digits is precision enough for still being able to properly generate this mesh, given the algorithm that was used. So, what do we learn from this: use only the precision that you truly need! At least for mesh generation ;) Best regards, Bruno |
Thanks! That was a great answer. I guessed it was an issue with precision, but I didn't know how to check for sure, or how to solve the issue.
|
All times are GMT -4. The time now is 02:48. |