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

Felix Salazar felix.a.salazar at gmail.com
Fri Apr 22 16:40:55 CEST 2016


Hello,

Attached is the file with the tests I ran on it. I attempted to create a
custom macro to connect the surfaces, but got issues with duplicates
entities. It might require separate For Loops instead of nested. Everything
is the comments of the .GEO file

Thanks to you Florian, for presenting an interesting challenge

-------------------------
*Félix Salazar*
felix.a.salazar at gmail.com
-------------------------

On Fri, Apr 22, 2016 at 3:15 AM, Florian Hoffmann <
florian.hoffmann at inutech.de> wrote:

> Dear Felix,
>
> thanks a lot for your efforts and detailed information.
> Its a pity, but what can one do if the feature is just not supported.
>
> Would you mind sending me the modified .geo file please ?
>
> Thank you.
>
> Best regards,
>
> Florian
>
>
> Am 21.04.2016 um 17:56 schrieb Felix Salazar:
>
> 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>
> 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>
>> florian.hoffmann at inutech.de
>> Germany                            Internet  :  <http://www.inutech.de>
>> 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>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
> *****************************************************************
>
>
> --
> 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/20160422/fa7fe471/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/20160422/fa7fe471/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cylindrical_frustum_mod.geo
Type: application/octet-stream
Size: 8576 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20160422/fa7fe471/attachment-0001.geo>


More information about the gmsh mailing list