CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [Gmsh] 3D coil mesh: can't create the volume? (https://www.cfd-online.com/Forums/openfoam-meshing/173500-3d-coil-mesh-cant-create-volume.html)

RomainBou June 21, 2016 08:37

3D coil mesh: can't create the volume?
 
Hello,

I want to make a 3D structured mesh from this coil shape :
https://framapic.org/5MeetKBGsAuf/XKaLUi7pfHMM.png
(It is a square extruded along a coil path)
I made it using FreeCAD, exported it in .iges file format. (also tried .step)

My issue is that I can't manage to make the 3D mesh with Gmesh. It looks like the Volume is not took into account.

Here is my .geo file, made automatically from the .iges import, and at the end, written by end :
I shortened the code defining the coil because the text was too long for the cfd-online forum engine. It builds the 2 square ends and 4 splines to make the coil.
EDIT : see the first reply under the post to read the complete definition: the issue may be there because gmsh defines the 2 squares using splines too instead of straight lines.
Code:

cl__1 = 1;
Point(1) = {35, -3.552713678801e-15, -3.552713678801e-15, cl__1};
Point(2) = {35, -2.841806515585e-13, 16, cl__1};
Point(3) = {25, 7.105490038038999e-15, 0, cl__1};
Point(4) = {25.00000...

p12 = newp;
Point(p12 + 1) = {34.99995040328159, 9.665512834544799e-12, 25.4999999998708};
Point(p12 + 2) = {34.9999530136352, 9.1418428382896e-12, 24.9999999998776};
Point(p12 + 3) = {34.9999556239888, 8.6181728420344e-12, 24.4999999998844};
Point(p12 + 4) = {34.9999582343424, 8.094502845779199e-12, 23.9999999998912};
Point(p12 + 5) = {34.999960844696, 7.570832849524e-12, 23.499999999898};
Point(p12 + 6) = {34.9999634550496, 7.0471628532688e-12, 22.9999999999048};
Point(p12 + 7) = {34.9999660654032, 6.5234928570136e-12, 22.4999999999116};
Point(p12 + 8) = {34.9999686757568, 5.9998228607584e-12, 21.9999999999184};
Point(p12 + 9) = {34.9999712861104, 5.4761528645032e-12, 21.4999999999252};
Point(p12 + 10) = {34.999973896464, 4.952482868248e-12, 20.999999999932};
Point(p12 + 11) = {34.9999765068176, 4.428812871992799e-12, 20.4999999999388};
Point(p12 + 12) = {34.9999791171712, 3.9051428757376e-12, 19.9999999999456};
Point(p12 + 13) = {34.9999817275248, 3.3814728794824e-12, 19.4999999999524};
Point(p12 + 14) = {34.9999843378784, 2.857802883227201e-12, 18.9999999999592};
Point(p12 + 15) = {34.999986948232, 2.334132886972e-12, 18.499999999966};
Point(p12 + 16) = {34.9999895585856, 1.8104628907168e-12, 17.9999999999728};
Point(p12 + 17) = {34.9999921689392, 1.286792894461601e-12, 17.4999999999796};
Point(p12 + 18) = {34.9999947792928, 7.631228982063999e-13, 16.9999999999864};
Point(p12 + 19) = {34.9999973896464, 2.394529019512009e-13, 16.4999999999932};
Spline(12) = {8, p12 + 1, p12 + 2, p12 + 3, p12 + 4, p12 + 5, p12 + 6, p12 + 7, p12 + 8, p12 + 9, p12 + 10, p12 + 11, p12 + 12, p12 + 13, p12 + 14, p12 + 15, p12 + 16, p12 + 17, p12 + 18, p12 + 19, 2};

Line Loop(1) = {1, 4, -3, -2};
    Ruled Surface(1) = {1};
Line Loop(2) = {3, 7, -6, -5};
    Ruled Surface(2) = {2};
Line Loop(3) = {6, 10, -9, -8};
    Ruled Surface(3) = {3};
Line Loop(4) = {9, 12, -1, -11};
    Ruled Surface(4) = {4};
Line Loop(5) = {2, 5, 8, 11};
    Plane Surface(5) = {5};
Line Loop(6) = {4, 7, 10, 12};
    Plane Surface(6) = {6};
   
Surface Loop(1) = {1, 2, 3, 4, 5, 6};

Physical Surface("anode") = {4};
Physical Surface("outlet") = {6};
Physical Surface("cathode") = {2};
Physical Surface("inlet") = {5};
Physical Surface("walls") = {1, 3};

Transfinite Line {5, 11, 2, 8, 10, 12, 7, 4} = 30 Using Bump 0.1;
Transfinite Line {1, 3, 6, 9} = 100;
Transfinite Surface "*";

Recombine Surface "*";

Volume(1) = {1};
Transfinite Volume "*";

And here is the Terminal screen after typing gmsh -3 serpentin1Transfinite.geo :
Code:

Info    : Running 'gmsh -3 serpentin1Transfinite.geo' [Gmsh 2.8.3, 1 node, max. 4 threads]
Info    : Started on Tue Jun 21 14:14:50 2016
Info    : Reading 'serpentin1Transfinite.geo'...
Info    : Done reading 'serpentin1Transfinite.geo'
Info    : Meshing 1D...
Info    : Meshing curve 1 (Nurb)
Info    : Meshing curve 2 (Nurb)
Info    : Meshing curve 3 (Nurb)
Info    : Meshing curve 4 (Nurb)
Info    : Meshing curve 5 (Nurb)
Info    : Meshing curve 6 (Nurb)
Info    : Meshing curve 7 (Nurb)
Info    : Meshing curve 8 (Nurb)
Info    : Meshing curve 9 (Nurb)
Info    : Meshing curve 10 (Nurb)
Info    : Meshing curve 11 (Nurb)
Info    : Meshing curve 12 (Nurb)
Info    : Done meshing 1D (0.093044 s)
Info    : Meshing 2D...
Info    : Meshing surface 3 (transfinite)
Info    : Meshing surface 2 (transfinite)
Info    : Meshing surface 4 (transfinite)
Info    : Meshing surface 1 (transfinite)
Info    : Meshing surface 5 (transfinite)
Info    : Meshing surface 6 (transfinite)
Info    : Done meshing 2D (0.0170281 s)
Info    : Meshing 3D...
Info    : Meshing volume 1 (transfinite)
Info    : Done meshing 3D (0.042758 s)
Info    : Optimizing 3D mesh...
Info    : Done optimizing 3D mesh (3e-06 s)
Info    : Optimizing 3D mesh with Netgen...
Info    : Done optimizing 3D mesh with Netgen (2e-06 s)
Info    : 90228 vertices 97289 elements
Info    : Writing 'serpentin1Transfinite.msh'...
Info    : Done writing 'serpentin1Transfinite.msh'

Then the gmsh -check serpentin1Transfinite.msh command:
Code:

Info    : Running 'gmsh -check serpentin1Transfinite.msh' [Gmsh 2.8.3, 1 node, max. 4 threads]
Info    : Started on Tue Jun 21 14:15:01 2016
Info    : Reading 'serpentin1Transfinite.msh'...
Info    : 13168 vertices
Info    : Vertex numbering is dense
Info    : 13166 elements
Info    : Done reading 'serpentin1Transfinite.msh'
Info    : Checking mesh coherence (13166 elements)...
Info    : Checking for duplicate vertices...
Info    : Checking for duplicate elements...
Info    : Done checking mesh coherence

And finally, the gmshToFoam mesh/serpentin1Transfinite.msh command to import in in OpenFoam:
Code:

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:5
    Surface 1    anode
    Surface 2    outlet
    Surface 3    cathode
    Surface 4    inlet
    Surface 5    walls

Starting to read points at line 13
Vertices to be read:13168
Vertices read:13168

Starting to read cells at line 13184
Cells to be read:13166

Mapping region 5 to Foam patch 0
Mapping region 3 to Foam patch 1
Mapping region 1 to Foam patch 2
Mapping region 4 to Foam patch 3
Mapping region 2 to Foam patch 4
Cells:
    total:0
    hex  :0
    prism:0
    pyr  :0
    tet  :0



--> FOAM FATAL IO ERROR:
No cells read from file "mesh/serpentin1Transfinite.msh"
Does your file specify any 3D elements (hex=5, prism=6, pyramid=7, tet=4)?
Perhaps you have not exported the 3D elements?

file: mesh/serpentin1Transfinite.msh at line 26352.

    From function readCells(..)
    in file gmshToFoam.C at line 726.

FOAM exiting

It seems that I did not correctly define the volume in the .geo file.
Any idea please ???

Is there an error using the lines
Surface Loop(1) = {1, 2, 3, 4, 5, 6};
Volume(1) = {1};

?
Thank you very much for your reply

RomainBou June 21, 2016 08:47

here is the complete .geo file :
Code:

cl__1 = 1;
Point(1) = {35, -3.552713678801e-15, -3.552713678801e-15, cl__1};
Point(2) = {35, -2.841806515585e-13, 16, cl__1};
Point(3) = {25, 7.105490038038999e-15, 0, cl__1};
Point(4) = {25.000000000137, 3.798405561654e-06, 15.999947792928, cl__1};
Point(5) = {25, 8.881784197001e-16, 10, cl__1};
Point(6) = {24.999947793065, 3.798416055467e-06, 25.999947792792, cl__1};
Point(7) = {35, 3.552713678801e-15, 10, cl__1};
Point(8) = {34.999947792928, 1.018914638805e-11, 25.999999999864, cl__1};
p1 = newp;
Point(p1 + 1) = {33.28697578667563, 10.81557595430603, 0.7999999999999649};
Point(p1 + 2) = {28.31559506160125, 20.57248086873501, 1.600000000000005};
Point(p1 + 3) = {20.57248485494981, 28.31560779522319, 2.400000000000103};
Point(p1 + 4) = {10.81559385895301, 33.28697488757213, 3.200000000000139};
Point(p1 + 5) = {-3.934240595526717e-07, 34.99998761012458, 4.000000000000092};
Point(p1 + 6) = {-10.81559370025635, 33.286983947342, 4.8};
Point(p1 + 7) = {-20.5724838605131, 28.31560799352859, 5.599999999999903};
Point(p1 + 8) = {-28.31559583718905, 20.57247413673261, 6.399999999999838};
Point(p1 + 9) = {-33.28697791557772, 10.81557986333438, 7.19999999999981};
Point(p1 + 10) = {-34.99999952433, -7.283063041541027e-14, 7.99999999999975};
Point(p1 + 11) = {-33.2869779155778, -10.81557986333407, 8.799999999999667};
Point(p1 + 12) = {-28.31559583718945, -20.5724741367307, 9.599999999999756};
Point(p1 + 13) = {-20.57248386051387, -28.31560799352474, 10.39999999999986};
Point(p1 + 14) = {-10.81559370025707, -33.28698394733719, 11.19999999999993};
Point(p1 + 15) = {-3.934244503511763e-07, -34.99998761011999, 12};
Point(p1 + 16) = {10.8155938589526, -33.28697488756801, 12.80000000000009};
Point(p1 + 17) = {20.57248485494896, -28.31560779521928, 13.60000000000011};
Point(p1 + 18) = {28.31559506160023, -20.5724808687317, 14.40000000000003};
Point(p1 + 19) = {33.28697578667518, -10.81557595430443, 15.19999999999995};
Spline(1) = {1, p1 + 1, p1 + 2, p1 + 3, p1 + 4, p1 + 5, p1 + 6, p1 + 7, p1 + 8, p1 + 9, p1 + 10, p1 + 11, p1 + 12, p1 + 13, p1 + 14, p1 + 15, p1 + 16, p1 + 17, p1 + 18, p1 + 19, 2};
p2 = newp;
Point(p2 + 1) = {34.5, 3.5527136788005e-16, -2.2204460492505e-17};
Point(p2 + 2) = {34, 7.105427357601e-16, -4.440892098501e-17};
Point(p2 + 3) = {33.5, 1.06581410364015e-15, -6.6613381477515e-17};
Point(p2 + 4) = {33, 1.4210854715202e-15, -8.881784197002e-17};
Point(p2 + 5) = {32.5, 1.77635683940025e-15, -1.11022302462525e-16};
Point(p2 + 6) = {32, 2.1316282072803e-15, -1.3322676295503e-16};
Point(p2 + 7) = {31.5, 2.48689957516035e-15, -1.55431223447535e-16};
Point(p2 + 8) = {31, 2.8421709430404e-15, -1.7763568394004e-16};
Point(p2 + 9) = {30.5, 3.19744231092045e-15, -1.99840144432545e-16};
Point(p2 + 10) = {30, 3.5527136788005e-15, -2.2204460492505e-16};
Point(p2 + 11) = {29.5, 3.907985046680551e-15, -2.44249065417555e-16};
Point(p2 + 12) = {29, 4.2632564145606e-15, -2.6645352591006e-16};
Point(p2 + 13) = {28.5, 4.618527782440651e-15, -2.88657986402565e-16};
Point(p2 + 14) = {28, 4.9737991503207e-15, -3.1086244689507e-16};
Point(p2 + 15) = {27.5, 5.32907051820075e-15, -3.33066907387575e-16};
Point(p2 + 16) = {27, 5.6843418860808e-15, -3.5527136788008e-16};
Point(p2 + 17) = {26.5, 6.03961325396085e-15, -3.77475828372585e-16};
Point(p2 + 18) = {26, 6.3948846218409e-15, -3.9968028886509e-16};
Point(p2 + 19) = {25.5, 6.75015598972095e-15, -4.21884749357595e-16};
Spline(2) = {1, p2 + 1, p2 + 2, p2 + 3, p2 + 4, p2 + 5, p2 + 6, p2 + 7, p2 + 8, p2 + 9, p2 + 10, p2 + 11, p2 + 12, p2 + 13, p2 + 14, p2 + 15, p2 + 16, p2 + 17, p2 + 18, p2 + 19, 3};
p3 = newp;
Point(p3 + 1) = {23.77641052640401, 7.725406834925433, 0.799967528881368};
Point(p3 + 2) = {20.22542459964436, 14.69463299397066, 1.599976999479448};
Point(p3 + 3) = {14.6946330566992, 20.22543763519334, 2.399974747972084};
Point(p3 + 4) = {7.725423698554923, 23.77640723674901, 3.199972942024594};
Point(p3 + 5) = {-4.777837354197345e-06, 24.99998746685228, 3.999973862993754};
Point(p3 + 6) = {-7.725429725077163, 23.77641908865229, 4.799973770831803};
Point(p3 + 7) = {-14.69463293255824, 20.22543734322262, 5.599973156628059};
Point(p3 + 8) = {-20.22542311606549, 14.69462207042045, 6.399974258167043};
Point(p3 + 9) = {-23.7764114478925, 7.725409692672865, 7.199975287514579};
Point(p3 + 10) = {-24.9999995243625, -1.899201690136465e-06, 7.99997389646725};
Point(p3 + 11) = {-23.7764102741238, -7.725413305162711, 8.799972505419536};
Point(p3 + 12) = {-20.22542088342103, -14.6946251433837, 9.599973534766855};
Point(p3 + 13) = {-14.69462985958553, -20.22543957586559, 10.39997463630607};
Point(p3 + 14) = {-7.725426112577281, -23.77642026241737, 11.1999740221024};
Point(p3 + 15) = {-9.794303075238986e-07, -24.99998746683572, 11.99997392994034};
Point(p3 + 16) = {7.725427311049618, -23.77640606296714, 12.79997485090963};
Point(p3 + 17) = {14.69463612967655, -20.22543540255435, 13.59997304496233};
Point(p3 + 18) = {20.22542683230346, -14.69462992099718, 14.39997079345485};
Point(p3 + 19) = {23.77641170014313, -7.725403222406675, 15.19998026405267};
Spline(3) = {3, p3 + 1, p3 + 2, p3 + 3, p3 + 4, p3 + 5, p3 + 6, p3 + 7, p3 + 8, p3 + 9, p3 + 10, p3 + 11, p3 + 12, p3 + 13, p3 + 14, p3 + 15, p3 + 16, p3 + 17, p3 + 18, p3 + 19, 4};
p4 = newp;
Point(p4 + 1) = {34.50000000000685, 1.899200031019044e-07, 15.9999973896464};
Point(p4 + 2) = {34.0000000000137, 3.798402975263305e-07, 15.9999947792928};
Point(p4 + 3) = {33.50000000002055, 5.697605919507566e-07, 15.9999921689392};
Point(p4 + 4) = {33.0000000000274, 7.596808863751827e-07, 15.9999895585856};
Point(p4 + 5) = {32.50000000003425, 9.496011807996088e-07, 15.999986948232};
Point(p4 + 6) = {32.0000000000411, 1.139521475224035e-06, 15.9999843378784};
Point(p4 + 7) = {31.50000000004795, 1.329441769648461e-06, 15.9999817275248};
Point(p4 + 8) = {31.0000000000548, 1.519362064072887e-06, 15.9999791171712};
Point(p4 + 9) = {30.50000000006165, 1.709282358497313e-06, 15.9999765068176};
Point(p4 + 10) = {30.0000000000685, 1.899202652921739e-06, 15.999973896464};
Point(p4 + 11) = {29.50000000007535, 2.089122947346165e-06, 15.9999712861104};
Point(p4 + 12) = {29.0000000000822, 2.279043241770591e-06, 15.9999686757568};
Point(p4 + 13) = {28.50000000008905, 2.468963536195017e-06, 15.9999660654032};
Point(p4 + 14) = {28.0000000000959, 2.658883830619443e-06, 15.9999634550496};
Point(p4 + 15) = {27.50000000010275, 2.84880412504387e-06, 15.999960844696};
Point(p4 + 16) = {27.0000000001096, 3.038724419468296e-06, 15.9999582343424};
Point(p4 + 17) = {26.50000000011645, 3.228644713892722e-06, 15.9999556239888};
Point(p4 + 18) = {26.0000000001233, 3.418565008317148e-06, 15.9999530136352};
Point(p4 + 19) = {25.50000000013015, 3.608485302741574e-06, 15.9999504032816};
Spline(4) = {2, p4 + 1, p4 + 2, p4 + 3, p4 + 4, p4 + 5, p4 + 6, p4 + 7, p4 + 8, p4 + 9, p4 + 10, p4 + 11, p4 + 12, p4 + 13, p4 + 14, p4 + 15, p4 + 16, p4 + 17, p4 + 18, p4 + 19, 4};
p5 = newp;
Point(p5 + 1) = {25, 6.75015598972095e-15, 0.4999999999999996};
Point(p5 + 2) = {25, 6.3948846218409e-15, 0.9999999999999996};
Point(p5 + 3) = {25, 6.039613253960851e-15, 1.5};
Point(p5 + 4) = {25, 5.6843418860808e-15, 2};
Point(p5 + 5) = {25, 5.32907051820075e-15, 2.5};
Point(p5 + 6) = {25, 4.9737991503207e-15, 3};
Point(p5 + 7) = {25, 4.618527782440651e-15, 3.5};
Point(p5 + 8) = {25, 4.2632564145606e-15, 4};
Point(p5 + 9) = {25, 3.90798504668055e-15, 4.499999999999999};
Point(p5 + 10) = {25, 3.5527136788005e-15, 4.999999999999999};
Point(p5 + 11) = {25, 3.19744231092045e-15, 5.499999999999999};
Point(p5 + 12) = {25, 2.8421709430404e-15, 5.999999999999999};
Point(p5 + 13) = {25, 2.48689957516035e-15, 6.499999999999999};
Point(p5 + 14) = {25, 2.1316282072803e-15, 6.999999999999999};
Point(p5 + 15) = {25, 1.77635683940025e-15, 7.499999999999999};
Point(p5 + 16) = {25, 1.4210854715202e-15, 7.999999999999999};
Point(p5 + 17) = {25, 1.06581410364015e-15, 8.5};
Point(p5 + 18) = {25, 7.105427357601e-16, 9};
Point(p5 + 19) = {25, 3.552713678800504e-16, 9.5};
Spline(5) = {3, p5 + 1, p5 + 2, p5 + 3, p5 + 4, p5 + 5, p5 + 6, p5 + 7, p5 + 8, p5 + 9, p5 + 10, p5 + 11, p5 + 12, p5 + 13, p5 + 14, p5 + 15, p5 + 16, p5 + 17, p5 + 18, p5 + 19, 5};
p6 = newp;
Point(p6 + 1) = {23.77637942271676, 7.725395028110497, 10.79996752868822};
Point(p6 + 2) = {20.22540628442055, 14.69461847251175, 11.59997699943675};
Point(p6 + 3) = {14.6946183372976, 20.22541887775483, 12.39997474801252};
Point(p6 + 4) = {7.725414835562436, 23.77638161371448, 13.19997294196919};
Point(p6 + 5) = {-4.369282990523971e-06, 24.99995970468934, 13.99997386291042};
Point(p6 + 6) = {-7.725421141501236, 23.77639466495889, 14.79997377082443};
Point(p6 + 7) = {-14.694617879098, 20.22541687914596, 15.59997315663087};
Point(p6 + 8) = {-20.22540245114558, 14.69460548372962, 16.39997425809336};
Point(p6 + 9) = {-23.77638733224092, 7.72540083349461, 17.19997528744359};
Point(p6 + 10) = {-24.99997342083, -1.526408995644601e-06, 17.999973896433};
Point(p6 + 11) = {-23.77638473789596, -7.725406031478821, 18.79997250534116};
Point(p6 + 12) = {-20.2253993119169, -14.69461104354239, 19.59997353469108};
Point(p6 + 13) = {-14.69461422650177, -20.22541780354248, 20.39997463631247};
Point(p6 + 14) = {-7.725418563303268, -23.77639503424744, 21.1999740220954};
Point(p6 + 15) = {-1.387996832136196e-06, -24.99996302193447, 21.99997392985702};
Point(p6 + 16) = {7.725420041180197, -23.77638203411787, 22.79997485085928};
Point(p6 + 17) = {14.6946201625467, -20.22541192358474, 23.59997304499864};
Point(p6 + 18) = {20.22540291112722, -14.69461375593091, 24.39997079339639};
Point(p6 + 19) = {23.77639315196277, -7.725398896346661, 25.1999802638931};
Spline(6) = {5, p6 + 1, p6 + 2, p6 + 3, p6 + 4, p6 + 5, p6 + 6, p6 + 7, p6 + 8, p6 + 9, p6 + 10, p6 + 11, p6 + 12, p6 + 13, p6 + 14, p6 + 15, p6 + 16, p6 + 17, p6 + 18, p6 + 19, 6};
p7 = newp;
Point(p7 + 1) = {24.9999973897834, 3.79840612048075e-06, 16.4999477929212};
Point(p7 + 2) = {24.9999947794298, 3.7984066437955e-06, 16.9999477929144};
Point(p7 + 3) = {24.9999921690762, 3.79840716711025e-06, 17.4999477929076};
Point(p7 + 4) = {24.9999895587226, 3.798407690425e-06, 17.9999477929008};
Point(p7 + 5) = {24.999986948369, 3.79840821373975e-06, 18.499947792894};
Point(p7 + 6) = {24.9999843380154, 3.7984087370545e-06, 18.9999477928872};
Point(p7 + 7) = {24.9999817276618, 3.79840926036925e-06, 19.4999477928804};
Point(p7 + 8) = {24.9999791173082, 3.798409783684e-06, 19.9999477928736};
Point(p7 + 9) = {24.9999765069546, 3.79841030699875e-06, 20.4999477928668};
Point(p7 + 10) = {24.999973896601, 3.7984108303135e-06, 20.99994779286};
Point(p7 + 11) = {24.9999712862474, 3.79841135362825e-06, 21.4999477928532};
Point(p7 + 12) = {24.9999686758938, 3.798411876943e-06, 21.9999477928464};
Point(p7 + 13) = {24.9999660655402, 3.79841240025775e-06, 22.4999477928396};
Point(p7 + 14) = {24.9999634551866, 3.7984129235725e-06, 22.9999477928328};
Point(p7 + 15) = {24.999960844833, 3.79841344688725e-06, 23.499947792826};
Point(p7 + 16) = {24.9999582344794, 3.798413970202e-06, 23.9999477928192};
Point(p7 + 17) = {24.9999556241258, 3.79841449351675e-06, 24.4999477928124};
Point(p7 + 18) = {24.9999530137722, 3.7984150168315e-06, 24.9999477928056};
Point(p7 + 19) = {24.9999504034186, 3.79841554014625e-06, 25.4999477927988};
Spline(7) = {4, p7 + 1, p7 + 2, p7 + 3, p7 + 4, p7 + 5, p7 + 6, p7 + 7, p7 + 8, p7 + 9, p7 + 10, p7 + 11, p7 + 12, p7 + 13, p7 + 14, p7 + 15, p7 + 16, p7 + 17, p7 + 18, p7 + 19, 6};
p8 = newp;
Point(p8 + 1) = {25.5, 3.730349362741e-15, 10};
Point(p8 + 2) = {26, 3.907985046681e-15, 10};
Point(p8 + 3) = {26.5, 4.085620730621e-15, 10};
Point(p8 + 4) = {27, 4.263256414561e-15, 10};
Point(p8 + 5) = {27.5, 4.440892098501e-15, 10};
Point(p8 + 6) = {28, 4.618527782441e-15, 10};
Point(p8 + 7) = {28.5, 4.796163466381e-15, 10};
Point(p8 + 8) = {29, 4.973799150321001e-15, 10};
Point(p8 + 9) = {29.5, 5.151434834261e-15, 10};
Point(p8 + 10) = {30, 5.329070518201001e-15, 10};
Point(p8 + 11) = {30.5, 5.506706202141e-15, 10};
Point(p8 + 12) = {31, 5.684341886081001e-15, 10};
Point(p8 + 13) = {31.5, 5.861977570021e-15, 10};
Point(p8 + 14) = {32, 6.039613253961001e-15, 10};
Point(p8 + 15) = {32.5, 6.217248937901e-15, 10};
Point(p8 + 16) = {33, 6.394884621841e-15, 10};
Point(p8 + 17) = {33.5, 6.572520305781e-15, 10};
Point(p8 + 18) = {34, 6.750155989721e-15, 10};
Point(p8 + 19) = {34.5, 6.927791673661e-15, 10};
Spline(8) = {5, p8 + 1, p8 + 2, p8 + 3, p8 + 4, p8 + 5, p8 + 6, p8 + 7, p8 + 8, p8 + 9, p8 + 10, p8 + 11, p8 + 12, p8 + 13, p8 + 14, p8 + 15, p8 + 16, p8 + 17, p8 + 18, p8 + 19, 7};
p9 = newp;
Point(p9 + 1) = {33.28694468298838, 10.81556414749148, 10.79999999980681};
Point(p9 + 2) = {28.31557674637745, 20.57246634727634, 11.59999999995723};
Point(p9 + 3) = {20.57247013554825, 28.31558903778467, 12.40000000004029};
Point(p9 + 4) = {10.81558499596076, 33.28694926453743, 13.19999999994432};
Point(p9 + 5) = {1.513110703399434e-08, 34.99995984796148, 13.99999999991627};
Point(p9 + 6) = {-10.81558511667846, 33.28695952364863, 14.79999999999225};
Point(p9 + 7) = {-20.5724688070493, 28.31558752945221, 15.60000000000257};
Point(p9 + 8) = {-28.31557517226427, 20.57245755004223, 16.39999999992629};
Point(p9 + 9) = {-33.28695379992151, 10.81557100415658, 17.1999999999292};
Point(p9 + 10) = {-34.999973420795, 3.727928330476971e-07, 17.999999999966};
Point(p9 + 11) = {-33.28695237934944, -10.81557258965012, 18.79999999992168};
Point(p9 + 12) = {-28.31557426568681, -20.57246003688935, 19.59999999992425};
Point(p9 + 13) = {-20.57246822743285, -28.31558622120141, 20.40000000000646};
Point(p9 + 14) = {-10.81558615098579, -33.28695871916649, 21.19999999999303};
Point(p9 + 15) = {-8.019928401381549e-07, -34.99996316521701, 21.99999999991661};
Point(p9 + 16) = {10.81558658908234, -33.28695085871593, 22.7999999999495};
Point(p9 + 17) = {20.572468887819, -28.31558431624622, 23.60000000003605};
Point(p9 + 18) = {28.31557114042426, -20.57246470366217, 24.39999999994122};
Point(p9 + 19) = {33.28695723849519, -10.81557162824202, 25.1999999998402};
Spline(9) = {7, p9 + 1, p9 + 2, p9 + 3, p9 + 4, p9 + 5, p9 + 6, p9 + 7, p9 + 8, p9 + 9, p9 + 10, p9 + 11, p9 + 12, p9 + 13, p9 + 14, p9 + 15, p9 + 16, p9 + 17, p9 + 18, p9 + 19, 8};
p10 = newp;
Point(p10 + 1) = {25.49994779305815, 3.60849576939182e-06, 25.9999504031456};
Point(p10 + 2) = {25.9999477930513, 3.418575475322641e-06, 25.9999530134992};
Point(p10 + 3) = {26.49994779304445, 3.228655181253461e-06, 25.9999556238528};
Point(p10 + 4) = {26.9999477930376, 3.038734887184281e-06, 25.9999582342064};
Point(p10 + 5) = {27.49994779303075, 2.848814593115101e-06, 25.99996084456};
Point(p10 + 6) = {27.9999477930239, 2.658894299045921e-06, 25.9999634549136};
Point(p10 + 7) = {28.49994779301705, 2.468974004976741e-06, 25.9999660652672};
Point(p10 + 8) = {28.9999477930102, 2.279053710907561e-06, 25.9999686756208};
Point(p10 + 9) = {29.49994779300335, 2.089133416838381e-06, 25.9999712859744};
Point(p10 + 10) = {29.9999477929965, 1.899213122769202e-06, 25.999973896328};
Point(p10 + 11) = {30.49994779298965, 1.709292828700022e-06, 25.9999765066816};
Point(p10 + 12) = {30.9999477929828, 1.519372534630842e-06, 25.9999791170352};
Point(p10 + 13) = {31.49994779297595, 1.329452240561662e-06, 25.9999817273888};
Point(p10 + 14) = {31.9999477929691, 1.139531946492483e-06, 25.9999843377424};
Point(p10 + 15) = {32.49994779296225, 9.496116524233027e-07, 25.999986948096};
Point(p10 + 16) = {32.9999477929554, 7.596913583541228e-07, 25.9999895584496};
Point(p10 + 17) = {33.49994779294855, 5.697710642849428e-07, 25.9999921688032};
Point(p10 + 18) = {33.9999477929417, 3.798507702157629e-07, 25.9999947791568};
Point(p10 + 19) = {34.49994779293485, 1.899304761465834e-07, 25.9999973895104};
Spline(10) = {6, p10 + 1, p10 + 2, p10 + 3, p10 + 4, p10 + 5, p10 + 6, p10 + 7, p10 + 8, p10 + 9, p10 + 10, p10 + 11, p10 + 12, p10 + 13, p10 + 14, p10 + 15, p10 + 16, p10 + 17, p10 + 18, p10 + 19, 8};
p11 = newp;
Point(p11 + 1) = {35, 6.75015598972095e-15, 9.5};
Point(p11 + 2) = {35, 6.3948846218409e-15, 9};
Point(p11 + 3) = {35, 6.039613253960851e-15, 8.5};
Point(p11 + 4) = {35, 5.6843418860808e-15, 8};
Point(p11 + 5) = {35, 5.32907051820075e-15, 7.5};
Point(p11 + 6) = {35, 4.9737991503207e-15, 7};
Point(p11 + 7) = {35, 4.618527782440651e-15, 6.5};
Point(p11 + 8) = {35, 4.2632564145606e-15, 6};
Point(p11 + 9) = {35, 3.90798504668055e-15, 5.5};
Point(p11 + 10) = {35, 3.5527136788005e-15, 5};
Point(p11 + 11) = {35, 3.19744231092045e-15, 4.5};
Point(p11 + 12) = {35, 2.8421709430404e-15, 4};
Point(p11 + 13) = {35, 2.48689957516035e-15, 3.5};
Point(p11 + 14) = {35, 2.1316282072803e-15, 3};
Point(p11 + 15) = {35, 1.77635683940025e-15, 2.5};
Point(p11 + 16) = {35, 1.4210854715202e-15, 2};
Point(p11 + 17) = {35, 1.06581410364015e-15, 1.5};
Point(p11 + 18) = {35, 7.105427357601e-16, 1};
Point(p11 + 19) = {35, 3.552713678800504e-16, 0.5};
Spline(11) = {7, p11 + 1, p11 + 2, p11 + 3, p11 + 4, p11 + 5, p11 + 6, p11 + 7, p11 + 8, p11 + 9, p11 + 10, p11 + 11, p11 + 12, p11 + 13, p11 + 14, p11 + 15, p11 + 16, p11 + 17, p11 + 18, p11 + 19, 1};
p12 = newp;
Point(p12 + 1) = {34.99995040328159, 9.665512834544799e-12, 25.4999999998708};
Point(p12 + 2) = {34.9999530136352, 9.1418428382896e-12, 24.9999999998776};
Point(p12 + 3) = {34.9999556239888, 8.6181728420344e-12, 24.4999999998844};
Point(p12 + 4) = {34.9999582343424, 8.094502845779199e-12, 23.9999999998912};
Point(p12 + 5) = {34.999960844696, 7.570832849524e-12, 23.499999999898};
Point(p12 + 6) = {34.9999634550496, 7.0471628532688e-12, 22.9999999999048};
Point(p12 + 7) = {34.9999660654032, 6.5234928570136e-12, 22.4999999999116};
Point(p12 + 8) = {34.9999686757568, 5.9998228607584e-12, 21.9999999999184};
Point(p12 + 9) = {34.9999712861104, 5.4761528645032e-12, 21.4999999999252};
Point(p12 + 10) = {34.999973896464, 4.952482868248e-12, 20.999999999932};
Point(p12 + 11) = {34.9999765068176, 4.428812871992799e-12, 20.4999999999388};
Point(p12 + 12) = {34.9999791171712, 3.9051428757376e-12, 19.9999999999456};
Point(p12 + 13) = {34.9999817275248, 3.3814728794824e-12, 19.4999999999524};
Point(p12 + 14) = {34.9999843378784, 2.857802883227201e-12, 18.9999999999592};
Point(p12 + 15) = {34.999986948232, 2.334132886972e-12, 18.499999999966};
Point(p12 + 16) = {34.9999895585856, 1.8104628907168e-12, 17.9999999999728};
Point(p12 + 17) = {34.9999921689392, 1.286792894461601e-12, 17.4999999999796};
Point(p12 + 18) = {34.9999947792928, 7.631228982063999e-13, 16.9999999999864};
Point(p12 + 19) = {34.9999973896464, 2.394529019512009e-13, 16.4999999999932};
Spline(12) = {8, p12 + 1, p12 + 2, p12 + 3, p12 + 4, p12 + 5, p12 + 6, p12 + 7, p12 + 8, p12 + 9, p12 + 10, p12 + 11, p12 + 12, p12 + 13, p12 + 14, p12 + 15, p12 + 16, p12 + 17, p12 + 18, p12 + 19, 2};

Line Loop(1) = {1, 4, -3, -2};
    Ruled Surface(1) = {1};
Line Loop(2) = {3, 7, -6, -5};
    Ruled Surface(2) = {2};
Line Loop(3) = {6, 10, -9, -8};
    Ruled Surface(3) = {3};
Line Loop(4) = {9, 12, -1, -11};
    Ruled Surface(4) = {4};
Line Loop(5) = {2, 5, 8, 11};
    Plane Surface(5) = {5};
Line Loop(6) = {4, 7, 10, 12};
    Plane Surface(6) = {6};
   
Surface Loop(1) = {1, 2, 3, 4, 5, 6};

Physical Surface("anode") = {4};
Physical Surface("outlet") = {6};
Physical Surface("cathode") = {2};
Physical Surface("inlet") = {5};
Physical Surface("walls") = {1, 3};

Transfinite Line {5, 11, 2, 8, 10, 12, 7, 4} = 30 Using Bump 0.1;
Transfinite Line {1, 3, 6, 9} = 100;
Transfinite Surface "*";

Recombine Surface "*";

Volume(1) = {1};
Transfinite Volume "*";


alexeym June 21, 2016 15:30

Hi,

In addition to geometric volume, you have to define physical volume. For example, you can add the following line to your geo-file:

Code:

Physical Volume("mesh") = {1};
and the result of gmshToFoam becomes:

Code:

...
Cells:
    total:83259
    hex  :83259
    prism:0
    pyr  :0
    tet  :0
...


RomainBou July 18, 2016 05:09

I didn't take the time to thank you! so thanks a lot! It worked fine. :)


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