> On 27 Feb 2020, at 17:02, Francis Giraldeau <[email protected]> 
> wrote:
> 
> Le jeu. 27 févr. 2020 à 00:58, Christophe Geuzaine <[email protected]> a 
> écrit :
> > On 27 Feb 2020, at 00:02, Francis Giraldeau <[email protected]> 
> > wrote:
> > case = newreg;
> > BooleanDifference(case) = { Volume{box1}; Delete; }{ Volume{box2}; };
> > 
> > Physical Volume("case") = {case};
> > Physical Volume("box2") = {box2};
> > 
> > // The boundary return also the internal surface
> > case_boundary() = Boundary{ Volume{case}; };
> 
> Use CombinedBoundary to remove all internal faces.
> 
> Interesting. I tried that and it seems it doesn't work using 
> BooleanDifference. CombinedBoundary also return the internal surfaces in the 
> case above.
> 

Boolean operations create new entities. Since you don't delete box2, you end up 
with two (disjoint volumes): box2 and the result of the difference, "case". The 
boundary operator works as expected.

> However, replacing BooleanDifference by BooleanFragments causes 
> CombinedBoundary to return only the external faces:

Yes: the fragment operation results in two volumes that are "glued", i.e. they 
share the internal surfaces. Hence CombinedBoundary behaves as expected.

> 
> frag() = BooleanFragments { Volume{box1,box2}; Delete; }{ };
> cb() = CombinedBoundary{Volume{frag()};};
> Physical Surface("cb") = {cb()};
> 
> But when using BooleanFragments, box2 is deleted and cannot be used anymore 
> to create the corresponding physical volume.
> 
> Either way, it seems that BoundingBox is necessary to retrieve the volumes or 
> surfaces in order to create the physical groups.
> 

Gmsh tries to reuse the same tag for top level (highest dimensional) entities 
that are not modified. Here box2 will keep its tag, that you can use for the 
physical.

Note that the API returns additional information on the parent/child 
relationships: see 
https://gitlab.onelab.info/gmsh/gmsh/-/blob/master/tutorial/python/t16.py

Christophe

> Cheers!
> 
> Francis
> _______________________________________________
> gmsh mailing list
> [email protected]
> http://onelab.info/mailman/listinfo/gmsh

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




_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to