CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   gmshToFoam Fatal error (https://www.cfd-online.com/Forums/openfoam-solving/164600-gmshtofoam-fatal-error.html)

KFUrzua December 27, 2015 14:19

gmshToFoam Fatal error
 
1 Attachment(s)
Hi,

i'm quite new in openfoam and i'm working with the NACA 0012 case. When i impose the transfinite line, i give the Ceil and the progression. If i choose Ceil =20 and progression = 1.15, it runs in openfoam very well but i obtain yPlus=300 more or less and i should look for yPlus =1. Then i should change the Ceil and the progression in order to obtain yPlus=1, and i computed that i should use, Ceil=74 and progression=1.3... but when i try to implement it, openfoam show me a fatal error:

--> FOAM FATAL ERROR:
Problem : Patch top starts at 16038
Current face counter at 15761
Are patches in incremental order?

From function polyTopoChange::polyTopoChange(const polyMesh& mesh, const bool strict)
in file polyTopoChange/polyTopoChange/polyTopoChange.C at line 2498.

FOAM aborting

-----------------

I see that probably it is related to some weird lines that are created with the extrussion. (see the image). When i look the 2d mesh, i have the right or expected mesh but when i extrude it, the pattern of the mesh is not followed...

Someone have more info about that?

Thanks!

GEO FILE
-----------------
Point(1) = {1, 0, 0, 1};
Point(2) = {0.999315, 0.001356, 0, 1};
Point(3) = {0.997261, 0.001644, 0, 1};
Point(4) = {0.9938439999999999, 0.00212, 0, 1};
Point(5) = {0.989074, 0.002783, 0, 1};
Point(6) = {0.982963, 0.003626, 0, 1};
Point(7) = {0.975528, 0.004642, 0, 1};
Point(8) = {0.96679, 0.005826, 0, 1};
Point(9) = {0.956773, 0.007168, 0, 1};
Point(10) = {0.945503, 0.008658000000000001, 0, 1};
Point(11) = {0.933013, 0.010286, 0, 1};
Point(12) = {0.919335, 0.012042, 0, 1};
Point(13) = {0.904508, 0.013914, 0, 1};
Point(14) = {0.8885729999999999, 0.015891, 0, 1};
Point(15) = {0.871572, 0.017959, 0, 1};
Point(16) = {0.853553, 0.020107, 0, 1};
Point(17) = {0.834565, 0.022323, 0, 1};
Point(18) = {0.8146600000000001, 0.024593, 0, 1};
Point(19) = {0.793893, 0.026905, 0, 1};
Point(20) = {0.77232, 0.029246, 0, 1};
Point(21) = {0.75, 0.031603, 0, 1};
Point(22) = {0.7269949999999999, 0.033962, 0, 1};
Point(23) = {0.703368, 0.036311, 0, 1};
Point(24) = {0.679184, 0.038634, 0, 1};
Point(25) = {0.654508, 0.040917, 0, 1};
Point(26) = {0.62941, 0.043147, 0, 1};
Point(27) = {0.603956, 0.045307, 0, 1};
Point(28) = {0.578217, 0.047383, 0, 1};
Point(29) = {0.552264, 0.049358, 0, 1};
Point(30) = {0.526168, 0.051216, 0, 1};
Point(31) = {0.5, 0.05294, 0, 1};
Point(32) = {0.473832, 0.054515, 0, 1};
Point(33) = {0.447736, 0.055923, 0, 1};
Point(34) = {0.421783, 0.057148, 0, 1};
Point(35) = {0.396044, 0.058175, 0, 1};
Point(36) = {0.37059, 0.058989, 0, 1};
Point(37) = {0.345492, 0.059575, 0, 1};
Point(38) = {0.320816, 0.059921, 0, 1};
Point(39) = {0.296632, 0.060015, 0, 1};
Point(40) = {0.273005, 0.059848, 0, 1};
Point(41) = {0.25, 0.059412, 0, 1};
Point(42) = {0.22768, 0.058702, 0, 1};
Point(43) = {0.206107, 0.057714, 0, 1};
Point(44) = {0.18534, 0.056447, 0, 1};
Point(45) = {0.165435, 0.054902, 0, 1};
Point(46) = {0.146447, 0.053083, 0, 1};
Point(47) = {0.128428, 0.050996, 0, 1};
Point(48) = {0.111427, 0.048648, 0, 1};
Point(49) = {0.09549199999999999, 0.046049, 0, 1};
Point(50) = {0.080665, 0.043211, 0, 1};
Point(51) = {0.066987, 0.040145, 0, 1};
Point(52) = {0.054497, 0.036867, 0, 1};
Point(53) = {0.043227, 0.033389, 0, 1};
Point(54) = {0.03321, 0.029726, 0, 1};
Point(55) = {0.024472, 0.025893, 0, 1};
Point(56) = {0.017037, 0.021904, 0, 1};
Point(57) = {0.010926, 0.01777, 0, 1};
Point(58) = {0.006156, 0.013503, 0, 1};
Point(59) = {0.002739, 0.009114000000000001, 0, 1};
Point(60) = {0.000685, 0.004611, 0, 1};
Point(61) = {0, 0, 0, 1};
Point(62) = {0.000685, -0.004611, 0, 1};
Point(63) = {0.002739, -0.009114000000000001, 0, 1};
Point(64) = {0.006156, -0.013503, 0, 1};
Point(65) = {0.010926, -0.01777, 0, 1};
Point(66) = {0.017037, -0.021904, 0, 1};
Point(67) = {0.024472, -0.025893, 0, 1};
Point(68) = {0.03321, -0.029726, 0, 1};
Point(69) = {0.043227, -0.033389, 0, 1};
Point(70) = {0.054497, -0.036867, 0, 1};
Point(71) = {0.066987, -0.040145, 0, 1};
Point(72) = {0.080665, -0.043211, 0, 1};
Point(73) = {0.09549199999999999, -0.046049, 0, 1};
Point(74) = {0.111427, -0.048648, 0, 1};
Point(75) = {0.128428, -0.050996, 0, 1};
Point(76) = {0.146447, -0.053083, 0, 1};
Point(77) = {0.165435, -0.054902, 0, 1};
Point(78) = {0.18534, -0.056447, 0, 1};
Point(79) = {0.206107, -0.057714, 0, 1};
Point(80) = {0.22768, -0.058702, 0, 1};
Point(81) = {0.25, -0.059412, 0, 1};
Point(82) = {0.273005, -0.059848, 0, 1};
Point(83) = {0.296632, -0.060015, 0, 1};
Point(84) = {0.320816, -0.059921, 0, 1};
Point(85) = {0.345492, -0.059575, 0, 1};
Point(86) = {0.37059, -0.058989, 0, 1};
Point(87) = {0.396044, -0.058175, 0, 1};
Point(88) = {0.421783, -0.057148, 0, 1};
Point(89) = {0.447736, -0.055923, 0, 1};
Point(90) = {0.473832, -0.054515, 0, 1};
Point(91) = {0.5, -0.05294, 0, 1};
Point(92) = {0.526168, -0.051216, 0, 1};
Point(93) = {0.552264, -0.049358, 0, 1};
Point(94) = {0.578217, -0.047383, 0, 1};
Point(95) = {0.603956, -0.045307, 0, 1};
Point(96) = {0.62941, -0.043147, 0, 1};
Point(97) = {0.654508, -0.040917, 0, 1};
Point(98) = {0.679184, -0.038634, 0, 1};
Point(99) = {0.703368, -0.036311, 0, 1};
Point(100) = {0.7269949999999999, -0.033962, 0, 1};
Point(101) = {0.75, -0.031603, 0, 1};
Point(102) = {0.77232, -0.029246, 0, 1};
Point(103) = {0.793893, -0.026905, 0, 1};
Point(104) = {0.8146600000000001, -0.024593, 0, 1};
Point(105) = {0.834565, -0.022323, 0, 1};
Point(106) = {0.853553, -0.020107, 0, 1};
Point(107) = {0.871572, -0.017959, 0, 1};
Point(108) = {0.8885729999999999, -0.015891, 0, 1};
Point(109) = {0.904508, -0.013914, 0, 1};
Point(110) = {0.919335, -0.012042, 0, 1};
Point(111) = {0.933013, -0.010286, 0, 1};
Point(112) = {0.945503, -0.008658000000000001, 0, 1};
Point(113) = {0.956773, -0.007168, 0, 1};
Point(114) = {0.96679, -0.005826, 0, 1};
Point(115) = {0.975528, -0.004642, 0, 1};
Point(116) = {0.982963, -0.003626, 0, 1};
Point(117) = {0.989074, -0.002783, 0, 1};
Point(118) = {0.9938439999999999, -0.00212, 0, 1};
Point(119) = {0.997261, -0.001644, 0, 1};
Point(120) = {0.999315, -0.001356, 0, 1};
Point(123) = {-0.7071067812*500, 0.7071067812*500, 0, 1};
Point(124) = {-0.7071067812*500, -0.7071067812*500, 0, 1};
Point(125) = {1, 500, 0, 1};
Point(126) = {1, -500, 0, 1};
Point(127) = {500, 500, 0, 1};
Point(128) = {500, 0, 0, 1};
Point(129) = {500, -500, 0, 1};

Line(1) = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41};
Transfinite Line {1} = Ceil(20) Using Progression 1;

Line(2) = {41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81};
Transfinite Line {2} = Ceil(20) Using Progression 1;

Line(3) = {81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 1};
Transfinite Line {3} = Ceil(20) Using Progression 1;

Circle(4) = {123, 61, 124};
Transfinite Line {4} = Ceil(20) Using Progression 1;

Circle(5) = {125, 61, 123};
Transfinite Line {5} = Ceil(20) Using Progression 1;

Circle(6) = {124, 61, 126};
Transfinite Line {6} = Ceil(20) Using Progression 1;

Line(7) = {126, 129};
Transfinite Line {7} = Ceil(50) Using Progression 1.3;

Line(8) = {129, 128};
Transfinite Line {-8} = Ceil(50) Using Progression 1.3;

Line(9) = {128, 127};
Transfinite Line {9} = Ceil(50) Using Progression 1.3;

Line(10) = {127, 125};
Transfinite Line {-10} = Ceil(50) Using Progression 1.3;

Line(11) = {1, 125};
Transfinite Line {11} = Ceil(50) Using Progression 1.3;

Line(12) = {41, 123};
Transfinite Line {12} = Ceil(50) Using Progression 1.3;

Line(13) = {81, 124};
Transfinite Line {13} = Ceil(50) Using Progression 1.3;

Line(14) = {1, 126};
Transfinite Line {14} = Ceil(50) Using Progression 1.3;

Line(15) = {1, 128};
Transfinite Line {15} = Ceil(50) Using Progression 1.3;


Line Loop(17) = {10, -11, 15, 9};
Plane Surface(17) = {17};
Transfinite Surface {17};
Recombine Surface {17};
Coherence;

Line Loop(19) = {5, -12, -1, 11};
Plane Surface(19) = {19};
Transfinite Surface {19};
Recombine Surface {19};
Coherence;

Line Loop(21) = {12, 4, -13, -2};
Plane Surface(21) = {21};
Transfinite Surface {21};
Recombine Surface {21};
Coherence;

Line Loop(23) = {13, 6, -14, -3};
Plane Surface(23) = {23};
Transfinite Surface {23};
Recombine Surface {23};
Coherence;

Line Loop(25) = {14, 7, 8, -15};
Plane Surface(25) = {25};
Transfinite Surface {25};
Recombine Surface {25};
Coherence;

Extrude{0,0,1}{
Surface{17,19,21,23,25};
Layers{1};
Recombine;
}

Physical Surface("back") = {47, 69, 91, 113, 135};
Physical Surface("front") = {19, 17, 25, 23, 21};
Physical Surface("top") = {34};
Physical Surface("exit") = {46, 130};
Physical Surface("bottom") = {126};
Physical Surface("inlet") = {56, 82, 104};
Physical Surface("airfoil") = {64, 90, 112};

Physical Volume("internal") = {1, 2, 3, 4, 5};

KateEisenhower September 21, 2016 06:27

Hello Catherine,

I have the same issue when I am trying to scale the domain size for a mesh sensitivity study. Note that my basic case is running fine. The error message only occurs after I extended the distance to the farfield boundary.
I am still trying to figure it out. Have you come to any conclusion, Catherine? Or anyone else?

Best regards,

Kate

Edit:
I had a look into your geo file. You seem to have meshing problems in the airfoil area. I would consider to have a look at the trailing edge as well as the leading edge and the areas around points 41 & 81.

Edit2:
Okay the problem seems to be that gmsh fails to extrude the 2-D mesh properly in cases where the layer height is very small. You get triangles instead of quadrangles.

KateEisenhower September 21, 2016 09:12

1 Attachment(s)
Hello I hope you still care,

I kind of now what the reason for the problem is now. And I have attached a minimal example.

The problem occurs when you try to extrude very small 2-D cells in the third dimension while having a huge domain, like it is often necessary for a resolved boundary layer mesh for a 2-D airfoil simulation.
Gmsh then fails to recombine the extruded mesh into quadrangles.

You can test this with the attached main.geo.

So now we know where the problem comes from, but I don't have a solution for this.

Any advice is appreciated!

Best regards,

Kate

KateEisenhower September 22, 2016 04:23

Hello again,

finally I wrote Prof. Geuzaine a mail and asked him for help.

He made clear that, by default, gmsh sets the tolerance to distinguish separate points to 1e-6 times the size of the whole domain.

Hence the solution is to write something like

Code:

Geometry.Tolerance = 1e-12;
at the beginning of your script.

Have a nice day,

Kate


All times are GMT -4. The time now is 04:28.