Discussion:
[Gmsh] Transfinite volume
g***@gmail.com
2013-12-08 11:56:49 UTC
Permalink
Hello everyone... I need your help please

I want to create a 3d mesh with hex only in a wind blade geometry (please
see the attachment). I get the geometry to an .stp file, so I can not
change it.

I use a scrip file (please see the attachment) to transfinite and recombine
the lines surfaces and volumes.

When I create the mesh I get an error like

Error : Cannot tetrahedralize volume with quadrangles on boundary

or

Error : Transfinite algorithm only available for 5- and 6-face volumes

There is any solution for my problem?

thank you in advance
Trevor Strickler
2013-12-08 14:57:56 UTC
Permalink
Hi George,

Here are the answers to your questions:

1. 'Cannot tetrahedralize volume with quadrangles on boundary.'

Although I think the gmsh team is working on improving and adding
unstructured 3D hex algorithms, those are still experimental and will not
work on volumes bounded by non-manifold faces (If that is not still true, I
am happy to be corrected). You would use one by changing the 3D mesh
algorithm (Mesh.Algorithm3D=6 for frontalHEX, for example).

If that is not the solution for your geometry, you can use QuadTri
options. This allows you to subdivide all the outer elements of a
structured grid into tetrahedra, prisms, and pyramids so that you can have
all triangles on the bounding faces. The internal elements will still be
structured and undivided. You can read about it in the manual here:

http://www.geuz.org/gmsh/doc/texinfo/#Structured-grids

Note that in addition to the QuadTri option for the extruded volumes, there
is a version of QuadTri for Transfinite Volumes (see, TransfQuadTri
command).

Also, I attached a .geo file showing an example of QuadTri usage for
extruded volumes.


2. 'Transfinite algorithm only available for 5- and 6-face volumes.'

The answer here is that the transfinite algorithm interpolates in 3D
from one face across to another. It can only do this for 5- and 6- sided
volumes. You might have to use an unstructured algorithm, or find another
way to work around the problem.

Regards,

Trevor Strickler

---------- Forwarded message ----------
From: ***@gmail.com
To: gmsh-***@googlegroups.com
Cc:
Date: Sun, 8 Dec 2013 03:56:49 -0800 (PST)
Subject: [Gmsh] Transfinite volume
Hello everyone... I need your help please

I want to create a 3d mesh with hex only in a wind blade geometry (please
see the attachment). I get the geometry to an .stp file, so I can not
change it.

I use a scrip file (please see the attachment) to transfinite and recombine
the lines surfaces and volumes.

When I create the mesh I get an error like

Error : Cannot tetrahedralize volume with quadrangles on boundary

or

Error : Transfinite algorithm only available for 5- and 6-face volumes

There is any solution for my problem?

thank you in advance
ΓΙΩΡΓΟΣ ΜΑΖΑΝΑΚΗΣ
2013-12-09 07:26:43 UTC
Permalink
Mr Trevor Strickler thank you very much for your response.

I have used the TransfQuadTri command but I did not see any difference.

The main problem is that I need a 3d mesh and cause of the complexity of
the volume I can not use the Transfinite and Recombine commands.

There is any way to create 3d mesh with gmsh when the volume has more than
6 faces? and the surfaces more than 4 corners?
ΓΙΩΡΓΟΣ ΜΑΖΑΝΑΚΗΣ
2013-12-09 07:26:43 UTC
Permalink
Mr Trevor Strickler thank you very much for your response.

I have used the TransfQuadTri command but I did not see any difference.

The main problem is that I need a 3d mesh and cause of the complexity of
the volume I can not use the Transfinite and Recombine commands.

There is any way to create 3d mesh with gmsh when the volume has more than
6 faces? and the surfaces more than 4 corners?
ΓΙΩΡΓΟΣ ΜΑΖΑΝΑΚΗΣ
2013-12-09 13:04:59 UTC
Permalink
I have just create another model, a simple octahedron (1 volume, 10
surfaces, two of them has 8 corners) and everything works fine. Here is the
geo file.
So the problem it is not the number of the faces.

Does anyone knows why in the blade case it does not work the transfinite
algorithm (I attach the stp and script file of the blades)?

Thanks you again for your help.

cl__1 = 1;
Point(1) = {3, 0, 0, 1};
Point(2) = {5.121, 0.879, 0, 1};
Point(3) = {6, 3, 0, 1};
Point(4) = {5.121, 5.121, 0, 1};
Point(5) = {3, 6, 0, 1};
Point(6) = {0.879, 5.121, 0, 1};
Point(7) = {0, 3, 0, 1};
Point(8) = {0.879, 0.879, 0, 1};
Point(9) = {3, 0, 3, 1};
Point(10) = {5.121, 0.879, 3, 1};
Point(11) = {6, 3, 3, 1};
Point(12) = {5.121, 5.121, 3, 1};
Point(13) = {3, 6, 3, 1};
Point(14) = {0.879, 5.121, 3, 1};
Point(15) = {0, 3, 3, 1};
Point(16) = {0.879, 0.8793, 3, 1};
Line(1) = {1, 2};
Transfinite Line {1} = 5Using Progression 1;
Line(2) = {2, 3};
Transfinite Line {2} = 5Using Progression 1;
Line(3) = {3, 4};
Transfinite Line {3} = 5Using Progression 1;
Line(4) = {4, 5};
Transfinite Line {4} = 5Using Progression 1;
Line(5) = {5, 6};
Transfinite Line {5} = 5Using Progression 1;
Line(6) = {6, 7};
Transfinite Line {6} = 5Using Progression 1;
Line(7) = {7, 8};
Transfinite Line {7} = 5Using Progression 1;
Line(8) = {8, 1};
Transfinite Line {8} = 5Using Progression 1;
Line(9) = {9, 10};
Transfinite Line {9} = 5Using Progression 1;
Line(10) = {10, 11};
Transfinite Line {10} = 5Using Progression 1;
Line(11) = {11, 12};
Transfinite Line {11} = 5Using Progression 1;
Line(12) = {12, 13};
Transfinite Line {12} = 5Using Progression 1;
Line(13) = {13, 14};
Transfinite Line {13} = 5Using Progression 1;
Line(14) = {14, 15};
Transfinite Line {14} = 5Using Progression 1;
Line(15) = {15, 16};
Transfinite Line {15} = 5Using Progression 1;
Line(16) = {16, 8};
Transfinite Line {16} = 5Using Progression 1;
Line(17) = {1, 9};
Transfinite Line {17} = 10Using Progression 1;
Line(18) = {2, 10};
Transfinite Line {18} = 10Using Progression 1;
Line(19) = {3, 11};
Transfinite Line {19} = 10Using Progression 1;
Line(20) = {4, 12};
Transfinite Line {20} = 10Using Progression 1;
Line(21) = {5, 13};
Transfinite Line {21} = 10Using Progression 1;
Line(22) = {6, 14};
Transfinite Line {22} = 10Using Progression 1;
Line(23) = {7, 15};
Transfinite Line {23} = 10Using Progression 1;
Line(24) = {9, 16};
Transfinite Line {24} = 10Using Progression 1;
Line Loop(26) = {10, -19, -2, 18};
Ruled Surface(26) = {26};
Line Loop(28) = {11, -20, -3, 19};
Ruled Surface(28) = {28};
Line Loop(30) = {12, -21, -4, 20};
Ruled Surface(30) = {30};
Line Loop(32) = {13, -22, -5, 21};
Ruled Surface(32) = {32};
Line Loop(34) = {14, -23, -6, 22};
Ruled Surface(34) = {34};
Line Loop(36) = {15, 16, -7, 23};
Ruled Surface(36) = {36};
Line Loop(38) = {24, 16, 8, 17};
Ruled Surface(38) = {38};
Line Loop(40) = {9, -18, -1, 17};
Ruled Surface(40) = {40};
Line Loop(44) = {10, 11, 12, 13, 14, 15, -24, 9};
Plane Surface(44) = {44};
Line Loop(45) = {1, 2, 3, 4, 5, 6, 7, 8};
Plane Surface(45) = {45};
Surface Loop(47) = {44, 26, 28, 30, 32, 34, 36, 38, 45, 40};
Volume(47) = {47};

Transfinite Volume(1);
Recombine Volume(1);

Physical Volume(4) = {2, 3};
Mesh.ElementOrder=2;
Mesh.SecondOrderIncomplete=1;
Mesh.Optimize = 1;
Mesh.Algorithm=6;
Mesh.Algorithm3D=4;
Mesh.RecombinationAlgorithm = 0;
Mesh.SubdivisionAlgorithm = 2;
Mesh.RemeshAlgorithm = 1;
ΓΙΩΡΓΟΣ ΜΑΖΑΝΑΚΗΣ
2013-12-09 13:04:59 UTC
Permalink
I have just create another model, a simple octahedron (1 volume, 10
surfaces, two of them has 8 corners) and everything works fine. Here is the
geo file.
So the problem it is not the number of the faces.

Does anyone knows why in the blade case it does not work the transfinite
algorithm (I attach the stp and script file of the blades)?

Thanks you again for your help.

cl__1 = 1;
Point(1) = {3, 0, 0, 1};
Point(2) = {5.121, 0.879, 0, 1};
Point(3) = {6, 3, 0, 1};
Point(4) = {5.121, 5.121, 0, 1};
Point(5) = {3, 6, 0, 1};
Point(6) = {0.879, 5.121, 0, 1};
Point(7) = {0, 3, 0, 1};
Point(8) = {0.879, 0.879, 0, 1};
Point(9) = {3, 0, 3, 1};
Point(10) = {5.121, 0.879, 3, 1};
Point(11) = {6, 3, 3, 1};
Point(12) = {5.121, 5.121, 3, 1};
Point(13) = {3, 6, 3, 1};
Point(14) = {0.879, 5.121, 3, 1};
Point(15) = {0, 3, 3, 1};
Point(16) = {0.879, 0.8793, 3, 1};
Line(1) = {1, 2};
Transfinite Line {1} = 5Using Progression 1;
Line(2) = {2, 3};
Transfinite Line {2} = 5Using Progression 1;
Line(3) = {3, 4};
Transfinite Line {3} = 5Using Progression 1;
Line(4) = {4, 5};
Transfinite Line {4} = 5Using Progression 1;
Line(5) = {5, 6};
Transfinite Line {5} = 5Using Progression 1;
Line(6) = {6, 7};
Transfinite Line {6} = 5Using Progression 1;
Line(7) = {7, 8};
Transfinite Line {7} = 5Using Progression 1;
Line(8) = {8, 1};
Transfinite Line {8} = 5Using Progression 1;
Line(9) = {9, 10};
Transfinite Line {9} = 5Using Progression 1;
Line(10) = {10, 11};
Transfinite Line {10} = 5Using Progression 1;
Line(11) = {11, 12};
Transfinite Line {11} = 5Using Progression 1;
Line(12) = {12, 13};
Transfinite Line {12} = 5Using Progression 1;
Line(13) = {13, 14};
Transfinite Line {13} = 5Using Progression 1;
Line(14) = {14, 15};
Transfinite Line {14} = 5Using Progression 1;
Line(15) = {15, 16};
Transfinite Line {15} = 5Using Progression 1;
Line(16) = {16, 8};
Transfinite Line {16} = 5Using Progression 1;
Line(17) = {1, 9};
Transfinite Line {17} = 10Using Progression 1;
Line(18) = {2, 10};
Transfinite Line {18} = 10Using Progression 1;
Line(19) = {3, 11};
Transfinite Line {19} = 10Using Progression 1;
Line(20) = {4, 12};
Transfinite Line {20} = 10Using Progression 1;
Line(21) = {5, 13};
Transfinite Line {21} = 10Using Progression 1;
Line(22) = {6, 14};
Transfinite Line {22} = 10Using Progression 1;
Line(23) = {7, 15};
Transfinite Line {23} = 10Using Progression 1;
Line(24) = {9, 16};
Transfinite Line {24} = 10Using Progression 1;
Line Loop(26) = {10, -19, -2, 18};
Ruled Surface(26) = {26};
Line Loop(28) = {11, -20, -3, 19};
Ruled Surface(28) = {28};
Line Loop(30) = {12, -21, -4, 20};
Ruled Surface(30) = {30};
Line Loop(32) = {13, -22, -5, 21};
Ruled Surface(32) = {32};
Line Loop(34) = {14, -23, -6, 22};
Ruled Surface(34) = {34};
Line Loop(36) = {15, 16, -7, 23};
Ruled Surface(36) = {36};
Line Loop(38) = {24, 16, 8, 17};
Ruled Surface(38) = {38};
Line Loop(40) = {9, -18, -1, 17};
Ruled Surface(40) = {40};
Line Loop(44) = {10, 11, 12, 13, 14, 15, -24, 9};
Plane Surface(44) = {44};
Line Loop(45) = {1, 2, 3, 4, 5, 6, 7, 8};
Plane Surface(45) = {45};
Surface Loop(47) = {44, 26, 28, 30, 32, 34, 36, 38, 45, 40};
Volume(47) = {47};

Transfinite Volume(1);
Recombine Volume(1);

Physical Volume(4) = {2, 3};
Mesh.ElementOrder=2;
Mesh.SecondOrderIncomplete=1;
Mesh.Optimize = 1;
Mesh.Algorithm=6;
Mesh.Algorithm3D=4;
Mesh.RecombinationAlgorithm = 0;
Mesh.SubdivisionAlgorithm = 2;
Mesh.RemeshAlgorithm = 1;

Loading...