|
[Sponsors] |
[Gmsh] Issue converting mesh from gmsh to openFoam |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
September 1, 2018, 20:09 |
Issue converting mesh from gmsh to openFoam
|
#1 |
New Member
Victor Carlos Teixeira
Join Date: Sep 2018
Posts: 3
Rep Power: 8 |
Hi everyone,
I've been learning how to use openFoam for couple of months and recently I have started to study a simple airfoil case. I have done the mesh with Gmsh and followed the steps to produce the .msh file but when I finally try to import the .msh file to openFoam format with the command gmshToFoam I get the following message: --> FOAM FATAL IO ERROR: wrong token type - expected word, found on line 0 the label 99 file: IStringStream.sourceFile at line 0. From function Foam::Istream& Foam:perator>>(Foam::Istream&, Foam::word&) in file primitives/strings/word/wordIO.C at line 74. FOAM exiting Here is the .geo file: //+ Point(1) = {0.08436612, 0.1027103, 0, 1.0}; //+ Point(2) = {0.08467859, 0.1005296, 0, 1.0}; //+ Point(3) = {0.08499106, 0.1053271, 0, 1.0}; //+ Point(4) = {0.08561599, 0.09834891, 0, 1.0}; //+ Point(5) = {0.08608469, 0.1075078, 0, 1.0}; //+ Point(6) = {0.08717833, 0.09660436, 0, 1.0}; //+ Point(7) = {0.08764703, 0.1092523, 0, 1.0}; //+ Point(8) = {0.08905313, 0.09529595, 0, 1.0}; //+ Point(9) = {0.0893656, 0.1107788, 0, 1.0}; //+ Point(10) = {0.09139663, 0.09420561, 0, 1.0}; //+ Point(11) = {0.09155287, 0.1118692, 0, 1.0}; //+ Point(12) = {0.0935839, 0.09333333, 0, 1.0}; //+ Point(13) = {0.09374014, 0.1129595, 0, 1.0}; //+ Point(14) = {0.09655234, 0.1140498, 0, 1.0}; //+ Point(15) = {0.09670857, 0.09246106, 0, 1.0}; //+ Point(16) = {0.09936454, 0.09202492, 0, 1.0}; //+ Point(17) = {0.09967701, 0.1149221, 0, 1.0}; //+ Point(18) = {0.1040516, 0.09158879, 0, 1.0}; //+ Point(19) = {0.104989, 0.1157944, 0, 1.0}; //+ Point(20) = {0.1081136, 0.09137072, 0, 1.0}; //+ Point(21) = {0.1098322, 0.1162305, 0, 1.0}; //+ Point(22) = {0.1131131, 0.09115265, 0, 1.0}; //+ Point(23) = {0.114363, 0.1164486, 0, 1.0}; //+ Point(24) = {0.1188937, 0.09115265, 0, 1.0}; //+ Point(25) = {0.1198311, 0.1162305, 0, 1.0}; //+ Point(26) = {0.1243619, 0.09115265, 0, 1.0}; //+ Point(27) = {0.1252993, 0.1155763, 0, 1.0}; //+ Point(28) = {0.1301426, 0.09115265, 0, 1.0}; //+ Point(29) = {0.13108, 0.114486, 0, 1.0}; //+ Point(30) = {0.1359232, 0.09115265, 0, 1.0}; //+ Point(31) = {0.1370168, 0.1133956, 0, 1.0}; //+ Point(32) = {0.1402977, 0.09093458, 0, 1.0}; //+ Point(33) = {0.1418601, 0.1123053, 0, 1.0}; //+ Point(34) = {0.1462346, 0.09093458, 0, 1.0}; //+ Point(35) = {0.1476407, 0.1105607, 0, 1.0}; //+ Point(36) = {0.1527964, 0.09049844, 0, 1.0}; //+ Point(37) = {0.1537338, 0.1085981, 0, 1.0}; //+ Point(38) = {0.1588895, 0.09006231, 0, 1.0}; //+ Point(39) = {0.1606081, 0.1059813, 0, 1.0}; //+ Point(40) = {0.1654513, 0.08919003, 0, 1.0}; //+ Point(41) = {0.1670137, 0.1033645, 0, 1.0}; //+ Point(42) = {0.1726381, 0.08809969, 0, 1.0}; //+ Point(43) = {0.173888, 0.1003115, 0, 1.0}; //+ Point(44) = {0.1813872, 0.08613707, 0, 1.0}; //+ Point(45) = {0.1823246, 0.09595016, 0, 1.0}; //+ Point(46) = {0.1891988, 0.08417445, 0, 1.0}; //+ Point(47) = {0.1902925, 0.09115265, 0, 1.0}; //+ Point(48) = {0.197323, 0.08133956, 0, 1.0}; //+ Point(49) = {0.1982604, 0.08657321, 0, 1.0}; //+ Point(50) = {0.204666, 0.0782866, 0, 1.0}; //+ Point(51) = {0.2054471, 0.08199377, 0, 1.0}; //+ Point(52) = {0.2127901, 0.07436137, 0, 1.0}; //+ Point(53) = {0.2132588, 0.07676012, 0, 1.0}; //+ Point(54) = {0.2198206, 0.07021807, 0, 1.0}; //+ Point(55) = {0.2204456, 0.07196262, 0, 1.0}; //+ Point(56) = {0.2259137, 0.06629283, 0, 1.0}; //+ Point(57) = {0.2263824, 0.06760125, 0, 1.0}; //+ Point(58) = {0.2296633, 0.06433022, 0, 1.0}; //+ Point(59) = {-1, -1, 0, 1.0}; //+ Point(60) = {-1, 1, 0, 1.0}; //+ Point(61) = {1, 1, 0, 1.0}; //+ Point(62) = {1, -1, 0, 1.0}; //+ Point(63) = {1, -1, 0, 1.0}; //+ Line(1) = {5, 3}; //+ Line(2) = {3, 1}; //+ Line(3) = {1, 2}; //+ Line(4) = {2, 2}; //+ Line(5) = {4, 2}; //+ Line(6) = {4, 6}; //+ Line(7) = {6, 8}; //+ Line(8) = {8, 10}; //+ Line(9) = {10, 12}; //+ Line(10) = {12, 15}; //+ Line(11) = {15, 16}; //+ Line(12) = {16, 18}; //+ Line(13) = {18, 20}; //+ Line(14) = {20, 22}; //+ Line(15) = {22, 24}; //+ Line(16) = {24, 26}; //+ Line(17) = {26, 28}; //+ Line(18) = {28, 30}; //+ Line(19) = {30, 32}; //+ Line(20) = {32, 34}; //+ Line(21) = {34, 36}; //+ Line(22) = {36, 38}; //+ Line(23) = {38, 40}; //+ Line(24) = {40, 42}; //+ Line(25) = {42, 44}; //+ Line(26) = {44, 46}; //+ Line(27) = {46, 48}; //+ Line(28) = {48, 50}; //+ Line(29) = {50, 52}; //+ Line(30) = {52, 54}; //+ Line(31) = {54, 56}; //+ Line(32) = {56, 58}; //+ Line(33) = {58, 57}; //+ Line(34) = {57, 55}; //+ Line(35) = {55, 53}; //+ Line(36) = {53, 51}; //+ Line(37) = {51, 49}; //+ Line(38) = {49, 47}; //+ Line(39) = {47, 45}; //+ Line(40) = {45, 43}; //+ Line(41) = {43, 41}; //+ Line(42) = {41, 39}; //+ Line(43) = {39, 37}; //+ Line(44) = {37, 35}; //+ Line(45) = {35, 33}; //+ Line(46) = {33, 31}; //+ Line(47) = {31, 29}; //+ Line(48) = {29, 27}; //+ Line(49) = {27, 25}; //+ Line(50) = {25, 23}; //+ Line(51) = {23, 21}; //+ Line(52) = {21, 19}; //+ Line(53) = {19, 17}; //+ Line(54) = {17, 14}; //+ Line(55) = {14, 13}; //+ Line(56) = {13, 11}; //+ Line(57) = {11, 9}; //+ Line(58) = {9, 7}; //+ Line(59) = {7, 5}; //+ Line(60) = {60, 59}; //+ Line(61) = {59, 62}; //+ Line(62) = {62, 61}; //+ Line(63) = {61, 60}; //+ Line Loop(1) = {63, 60, 61, 62}; //+ Line Loop(2) = {53, 54, 55, 56, 57, 58, 59, 1, 2, 3, -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, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52}; //+ Plane Surface(1) = {1, 2}; //+ Physical Volume("internal") = {1}; Extrude {0,0,0.05} { Surface{1}; Layers{1}; Recombine; } //+ Physical Surface("walls") = {150, 146, 374, 370, 366, 362, 1, 358, 354, 350, 346, 342, 338, 334, 330, 326, 322, 318, 314, 310, 306, 302, 298, 294, 290, 286, 282, 278, 274, 270, 266, 262, 258, 254, 250, 246, 242, 238, 234, 230, 226, 222, 375, 218, 214, 210, 206, 202, 198, 194, 190, 186, 182, 178, 174, 170, 166, 162, 158, 154}; //+ Physical Surface("inlet") = {130,134,138}; //+ Physical Surface("frontAndBack") = {375, 1}; //+ Physical Surface("outlet") = {142}; //+ Characteristic Length {60, 59, 62, 61} = 0.1; //+ Characteristic Length {17, 14, 13, 11, 9, 7, 5, 3, 1, 2, 4, 6, 8, 10, 12, 15} = 0.01; I already read several tutorials and I am still stuck at the same issue. I humbly ask for some help. |
|
September 2, 2018, 04:36 |
|
#2 |
Senior Member
Join Date: Mar 2014
Posts: 112
Rep Power: 12 |
I have tested your "x.geo" script with gmsh 3.0.6, made a 3D "x.msh" with it and imported to OpenFOAM (4.1) as "gmshToFoam x.geo"
Well, it is working as expected. If you are on windows this may be a reason.... |
|
September 2, 2018, 12:26 |
|
#3 |
New Member
Victor Carlos Teixeira
Join Date: Sep 2018
Posts: 3
Rep Power: 8 |
Hi mzzmrt,
Thank you for the reply. I am using Ubuntu 16.04, Gmsh 4.0.0 and OpenFoam 5. I got a new error message now when using gmshToFoam: FOAM FATAL IO ERROR: Attempt to get back from bad stream file: IStringStream.sourceFile at line 0. From function bool Foam::Istream::getBack(Foam::token&) I have no idea why it is not working for me. Could you show me the .msh file? |
|
September 2, 2018, 14:29 |
|
#4 |
Senior Member
Join Date: Mar 2014
Posts: 112
Rep Power: 12 |
I got it. The default *.msh format of the latest gmsh (4.0) has been updated to v4 but gmshToFoam needs v2.
So while exporting the mesh from gmsh use >file>export>*.msh and choose v2 ascii. Then it will work. Second line in the *.msh also shows the version... |
|
September 2, 2018, 16:14 |
Problem solved
|
#5 |
New Member
Victor Carlos Teixeira
Join Date: Sep 2018
Posts: 3
Rep Power: 8 |
It worked! It was the v2 ascii format as you said.
Thank you mzzmrt! |
|
October 25, 2018, 13:47 |
|
#6 |
New Member
Joseph Gonzalez
Join Date: Oct 2018
Posts: 1
Rep Power: 0 |
THANK YOU!! I wasted a tremendous amount of time trying to figure out the problem. Selecting v2 ASCII solved it!!!
|
|
February 8, 2019, 13:17 |
V2 ascii version OK, but still "bad token" error
|
#7 |
New Member
Tom Alderweireldt
Join Date: Jan 2015
Location: Schilde, Belgium
Posts: 16
Rep Power: 11 |
I'm running OpenFoam v1812+ on Fedora 28, with gmsh 4.0.7 (all recent versions)
My gmsh file>export> doesn't allow me to indicate V2 ASCII or something like that. However, looking at the header of the saved testmesh (4 connected cubes), that seems OK, it's version 2.2 ASCII, but gmshToFoam still gives me a 'bad token' error. Any suggestion what else I can try, apart from editing the .msh file ? (this used to work properly with GMSH 2 and OpenFoam 2.x versions) $MeshFormat 2.2 0 8 $EndMeshFormat $PhysicalNames 10 2 1 "inlet" 2 2 "outlet" 2 3 "leftwall" 2 4 "rightwall" 2 5 "top" 2 6 "bottom" 3 7 "V1" 3 8 "V2" 3 9 "V3" 3 10 "V4" $EndPhysicalNames $Nodes 7381 1 -0 -0 0 2 1 -0 0 3 0 0.5 0 [tom@localhost meshtest]$ gmshToFoam test2.msh /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v1812 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : v1812 OPENFOAM=1812 Arch : "LSB;label=32;scalar=64" Exec : gmshToFoam test2.msh Date : Feb 08 2019 Time : 17:54:19 Host : localhost.localdomain PID : 9194 I/O : uncollated Case : /home/tom/OpenFOAM/tom-v1812/run/meshtest nProcs : 1 trapFpe: Floating point exception trapping enabled (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10) allowSystemOperations : Allowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Starting to read mesh format at line 2 Read format version 2.2 ascii 0 Starting to read physical names at line 5 Physical names:10 Surface 1 inlet Surface 2 outlet Surface 3 leftwall Surface 4 rightwall Surface 5 top Surface 6 bottom Volume 7 V1 Volume 8 V2 Volume 9 V3 Volume 10 V4 Starting to read points at line 18 Vertices to be read:7381 Vertices read:7381 Starting to read cells at line 7402 Cells to be read:8600 Mapping region 3 to Foam patch 0 Mapping region 6 to Foam patch 1 Mapping region 5 to Foam patch 2 Mapping region 1 to Foam patch 3 Mapping region 4 to Foam patch 4 Mapping region 2 to Foam patch 5 Mapping region 7 to Foam cellZone 0 Mapping region 8 to Foam cellZone 1 Mapping region 9 to Foam cellZone 2 Mapping region 10 to Foam cellZone 3 Cells: total:6000 hex :6000 prism:0 pyr :0 tet :0 CellZones: Zone Size 0 2000 1 1000 2 1000 3 2000 --> FOAM FATAL IO ERROR: Bad token - could not get word file: input at line 0. From function Foam::Istream& Foam:perator>>(Foam::Istream&, Foam::word&) in file primitives/strings/word/wordIO.C at line 45. FOAM exiting |
|
February 9, 2019, 07:35 |
gmshToFoam : bad token - could not find word : progress
|
#8 |
New Member
Tom Alderweireldt
Join Date: Jan 2015
Location: Schilde, Belgium
Posts: 16
Rep Power: 11 |
I made a really simple gmsh testcube.geo in 3D. (4 x 4 x 4 ) 64-cell volume.
The file>export> *.msh V2 ASCII is OK. Since the foam error wants a word, I just added "$end" at the end of the msh file. Now gmshToFoam makes a polymesh. I do see the cube in paraFoam, but the internal mesh is missing. So it is clear that gmshToFoam expects some more definition about 3D-internal mesh, not sure what else you can save after generating the 3D mesh in gmsh. Hope someone sees what's missing Tom. Below is a view of the testcube.geo and testcube in paraFoam result. (and geo file) testcube.geo: //+ dim=1.0; hz=1.0; gridx=5; gridy=5; gridz=5; Point(1) = {0.0, 0.0, 0.0, dim}; Point(2) = {0.0, 1.0, 0.0, dim}; Point(3) = {1.0, 1.0, 0.0, dim}; Point(4) = {1.0, 0.0, 0.0, dim}; Point(5) = {0.0, 0.0, hz, dim}; Point(6) = {0.0, 1.0, hz, dim}; Point(7) = {1.0, 1.0, hz, dim}; Point(8) = {1.0, 0.0, hz, dim}; Line(1) = {1,2}; Line(2) = {2,3}; Line(3) = {3,4}; Line(4) = {4,1}; Line(5) = {5,6}; Line(6) = {6,7}; Line(7) = {7,8}; Line(8) = {8,5}; Line(9) = {1,5}; Line(10) = {2,6}; Line(11) = {3,7}; Line(12) = {4,8}; // inlet box 1 surface loops Line Loop(201) = {1,2,3,4}; Line Loop(202) = {5,6,7,8}; Line Loop(203) = {1,10,-5,-9}; Line Loop(204) = {2,11,-6,-10}; Line Loop(205) = {3,12,-7,-11}; Line Loop(206) = {4,9,-8,-12}; // define surface inlet box 1 Plane Surface(201) = {201}; Plane Surface(202) = {202}; Plane Surface(203) = {203}; Plane Surface(204) = {204}; Plane Surface(205) = {205}; Plane Surface(206) = {206}; //Make surfaces structured. Box 1 Transfinite Line{2,-4,6,-8} = gridx; Transfinite Line{1,-3,5,-7} = gridy; Transfinite Line{9,10,11,12} = gridz; // define surface loops box1 Surface Loop(301) = {201,202,203,204,205,206}; Volume(301) = {301}; Transfinite Surface "*"; Recombine Surface "*"; Transfinite Volume "*"; //+ Physical Surface("inlet") = {203}; Physical Surface("outlet") = {205}; Physical Surface("walls") = {204, 206}; Physical Surface("top") = {202}; Physical Surface("bottom") = {201}; //+ Physical Volume("internalvolume") = {301}; //+ |
|
February 9, 2019, 12:50 |
gmshToFoam : bad token resolved
|
#9 |
New Member
Tom Alderweireldt
Join Date: Jan 2015
Location: Schilde, Belgium
Posts: 16
Rep Power: 11 |
Problem resolved, if useful for others.
The cube problem above is OK, paraFoam doesn't show internal wireframe cells. The weird point is that gmshToFoam expects another word at the end of the .msh file. If I add 1 line with "$end" to any old or new msh file from gmsh, it converts properly. Tom. |
|
February 20, 2019, 06:17 |
|
#10 |
New Member
Paul Riesen
Join Date: Sep 2018
Posts: 1
Rep Power: 0 |
$End
works for me as well... Thank!!! |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Other] Converting 2D openFoam mesh to .msh | miro2000 | ANSYS Meshing & Geometry | 1 | January 14, 2022 14:03 |
Converting Salome hybrid mesh to OpenFOAM | Arnoldinho | OpenFOAM | 4 | March 28, 2012 11:24 |
[Gmsh] 2D Mesh Generation Tutorial for GMSH | aeroslacker | OpenFOAM Meshing & Mesh Conversion | 12 | January 19, 2012 04:52 |
[Gmsh] problem converting mesh from gmsh | Fried | OpenFOAM Meshing & Mesh Conversion | 8 | October 18, 2011 09:53 |
[Gmsh] gmshToFoam problem: not the same mesh in Gmsh vs. paraview | zhernadi | OpenFOAM Meshing & Mesh Conversion | 8 | July 7, 2011 03:28 |