[Gmsh] Question on creating meshes with layered elements

Marco Antolovic marco_antolovic at yahoo.it
Tue Nov 10 17:33:49 CET 2020


 Just a quick update, I have noticed that in some cases translated and bottom curves require a boolean union operation.
I have updated the script and the txt file accordingly (see attachment).
Marco

    Il lunedì 9 novembre 2020, 09:31:58 CET, Marco Antolovic <marco_antolovic at yahoo.it> ha scritto:  
 
  Hello Christophe,
there appear to be problems with my email formatting.
To avoid that I re-send the previous message as a file (hopefully this should work)

Regards,
Marco

    Il mercoledì 4 novembre 2020, 09:14:51 CET, Christophe Geuzaine <cgeuzaine at uliege.be> ha scritto:  
 
 

> On 22 Oct 2020, at 12:56, Marco Antolovic <marco_antolovic at yahoo.it> wrote:
> 
> Hi all,
> 
> I'm trying to find the best way to approach the following problem:
> 
> I have a parallelepiped with the edge alone z much smaller than that along x and y (this is typical, for example, 
> for PCB traces) and I would like to guarantee, in the volume, a predefined number of layers (np_layers) along z
> edge.
> 
> If I build the structure in gmsh this is quite simple to obtain by saying:
> 
> SetFactory("OpenCASCADE");
> thickness = 140e-6;
> nr_layers = 4;
> surf=newreg;
> Rectangle(surf)={.001,0,0,.001,.001,0};
> Extruded_surf() = Extrude { 0,0, thickness } { Surface{surf}; Layers{nr_layers}; Recombine;};
> 
> But how can I apply this in case the parallelepiped is coming from a step file? The command above
> (Extrude{...}{... Layers{}}) can't be used.

Indeed, we would need to "reverse engineer" the fact that the volume has indeed been created by extrusion. See

https://gitlab.onelab.info/gmsh/gmsh/-/issues/929

for the issue tracking this feature request.

Christophe


> 
> I was thinking about slicing the Volume with some planes (see example below)
> 
> SetFactory("OpenCASCADE");
> thickness = 140e-6;
> nr_layers = 4;
> surf=newreg;
> Rectangle(surf)={.001,0,0,.001,.001,0};
> Extruded_surf() = Extrude { 0,0, thickness } { Surface{surf};};
> vol() = Extruded_surf(1);
> For i In {1:nr_layers-1}
> surf1(i-1)=newreg;
> Rectangle(surf1(i-1)) = {.001, 0, thickness/nr_layers*i, .001, .001};
> EndFor
> results() = BooleanFragments{Volume{vol()};Delete;}{Surface{surf1()}; Delete;};
> 
> but when trying to recombine the triangles in the layers I get the following error:
> 
> Error  : Pyramid top vertex already classified on volume 2 (!= 3) - non-manifold quad boundaries not supported
> yet
> 
> Any suggestion on how to address the issue is much appreciated.
> 
> Regards,
> 
> Marco
> 
> _______________________________________________
> gmsh mailing list
> gmsh at onelab.info
> http://onelab.info/mailman/listinfo/gmsh

— 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://people.montefiore.ulg.ac.be/geuzaine



    
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20201110/0bde7efa/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: structured_grids_with_step_files_test_V06.geo
Type: application/octet-stream
Size: 1491 bytes
Desc: not available
URL: <http://onelab.info/pipermail/gmsh/attachments/20201110/0bde7efa/attachment.geo>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: message_V02.txt
URL: <http://onelab.info/pipermail/gmsh/attachments/20201110/0bde7efa/attachment.txt>


More information about the gmsh mailing list