[Gmsh] Block structured hex-only-3D-mesh for sequence of conical frustums

Felix Salazar felix.a.salazar at gmail.com
Thu Apr 21 17:56:34 CEST 2016


Hello again,

I might be wrong, but unless there's an experimental Extrude feature that
allows tapered/extrusion, I don't think it is possible. You could write
directly to Christophe to check this, and maybe suggest the feature, if
it's not already under development.

What I did is this:
* avoid Extrude. Commented the lines in your .GEO.
* use a dilate on a duplicate of the original circle, setting the Geometry.
CopyMeshMethod=1, so it is also transfinite
* Added manually the lines, surfaces and volumes, setting them transfinite.

I only did it with one quadrant, on the GUI. But it is probably possible to
obtain the vertex and line numbers of the copied/dilated surface using a
combination of the array[ ] and probably the Boundary{ } function.

I won't be as elegant as your current script, though.

Good luck
On Apr 21, 2016 11:12 AM, felix.a.salazar at gmail.com wrote:

Dear Florian,

That's a very nice .GEO file. Very organized. The problem is the dilation.
When you Extrude the entities, you're assigning those entities mesh
information. Then, you modify the geometry, it no longer remains connected.
The lines, determined by the position of the vertex, looks correct. But if
you show the geometrical surfaces, they are still the ones created with the
extrusion, with the exception of the dilated one. Hence, when gmsh reach a
surface whose mesh coordinates are known from the geometry, i.e. the one
opposite to the extrusion, it finds discrepancies.

I look at the documentation, and to my knowledge, there's no option that
could easily help you. Even if you remove the Layers and create an
unstructured mesh, just as a test, would cause errors, at least in my gmsh
version.

I'm thinking of an alternative. Let me do some test and I'll get back to
you.

Sorry for the delay. Time zones I guess...
On Apr 21, 2016 4:48 AM, "Florian Hoffmann" <florian.hoffmann at inutech.de>
wrote:

Dear Felix,

thank you very much for your quick response.
Please find attached a simplified example highlighting my problem.
It is a simple cylinder with an internal block structure. The 3D geometry
is obtained by extruding several surfaces (=blocks for hexaeder meshing).
Extrusion is done in line 161 of the *.geo file.
With the variable 'withDilate' in line 186 one can switch on/off the dilate
command I was trying to obtain the frustum-like outline with.
I also attached two screenshot showing my problem when meshing: On the left
hand side there is the cylinder (Extrude only) and on the right hand side
one can see the conical frustum (Extrude+Dilate) but one can also see the
problem with the mesh.
If you could point me to the bits that I would have to change/add in order
to make this work, that would be really really making my day.

Thank you very much.

Best regards,

Florian





Am 21.04.2016 um 06:18 schrieb Felix Salazar:

Hello,

I did something similar not too long ago. My geometry had a basic
structure, and for different cases, the angles and lengths of the sections
varied. Just make sure that Extrude ReturnLateralEntities option is on, and
check the contents of the extruded array.  Start with the B->C extrusion
only, and make sure that you're using the Layers option in the extrusion,
to get your structured mesh. Depending on your options, you might need to
explicitly recombine your elements to get hexas. Could we see your .GEO
file? Just from the B-B surface to the extrusion? You can remove the
details of the A-A section, to protect IP
On Apr 20, 2016 5:47 PM, "Florian Hoffmann" <florian.hoffmann at inutech.de>
wrote:

> Dear all,
>
>
> I would like to generate a block structured hexaeder-only-3D-mesh for a
> geometry consisting of several conical frustums. Something like this:
>
>
>   __________
>   \                 /
>    |               |
>     \             /
>      |           |
> C_|           | _ C
>      \          /            ^  extrude B->C
> B _ \____/  _ B    _|_
> A _  |___|   _ A
>
>
> Section A-A has a non-circular cross-section, and section B-B and all
> others above have circular cross-section. I successfully created A-A and
> the circular cross-section B-B. Both consist of several surfaces/blocks
> (see attached picture). In my *.geo script I try to work with variables.
> There I collect the IDs of all surfaces forming the cross-section B-B (=
> the bottom of the first conical frustum) in an array
> (=cross_section_BB_surfaces[]). Nevertheless, when I try to Extrude+Dilate
> these surfaces in order to build the first conical frustum (=B-B -> C-C),
> during meshing I get several errors about „Could not find extruded vertex
> …“ . Extrusion-only of B-B to C-C (without Dilate) works fine, but this
> would just give me a cylinder outline and it is not what I want.
> Since I need a block structured mesh and also because A-A has a
> non-circular cross-section (see bottom plane of geometry in attached
> picture) I would really like to make use of the extrude command for
> creation of C-C and the other frustum above.
>
> (1) Is there a way to make this work (without having to create all
> frustums including their blocked structure by hand) ?
>
> (2) If not, can anybody think of a solution for how to script this in an
> efficient and handable way ?
>
>
> Thanks a lot.
>
> Cheers Flo
>
>
>
>
>
>
>
>
>
> Mit freundlichen Grüßen
> --
> * Dr.-Ing. Florian Hoffmann*
> inuTech GmbH                   Phone    : +49-(0)911-323843-22
> Fuerther Strasse 212         Fax        : +49-(0)911-323843-43
> 90429 Nuernberg               E-Mai l   : florian.hoffmann at inutech.de
> <sebastian.peetz at inutech.de>
> Germany                            Internet  : http://www.inutech.de
>
> inuTech GmbH
> Sitz / Registered Office: Nuernberg
> Handelsregister / Companies' Register: AG Nürnberg HRB Nr. 19026
> Geschäftsführer / Managing Director: Frank Vogel
>
> *****************************************************************
> DIFFPACK - THE NEW GENERATION OF SIMULATION-SOFTWARE!
>
> Go to http://www.diffpack.com to read the details
> *****************************************************************
>
>
> _______________________________________________
> gmsh mailing list
> gmsh at onelab.info
> http://onelab.info/mailman/listinfo/gmsh
>
>
-- 
Mit freundlichen Grüßen
--
Dr.-Ing. Florian Hoffmann
inuTech GmbH		Phone	 : +49-(0)911-323843-22

Fuerther Strasse 212	Fax	 : +49-(0)911-323843-43
90429 Nuernberg		E-Mai l	 : florian.hoffmann at inutech.de
Germany		        Internet : http://www.inutech.de

inuTech GmbH
Sitz / Registered Office: Nuernberg
Handelsregister / Companies' Register: AG Nürnberg HRB Nr. 19026
Geschäftsführer / Managing Director: Frank Vogel

*****************************************************************
DIFFPACK - THE NEW GENERATION OF SIMULATION-SOFTWARE!

Go to http://www.diffpack.com to read the details
*****************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20160421/5d1d3454/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 231880 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20160421/5d1d3454/attachment-0001.png>


More information about the gmsh mailing list