Hi Isabela, You may use BooleanFragments instead of BooleanDifference. That seems to work: Try the following at the end of your file:
/* voxcyl() = BooleanDifference{Volume{v};}{Volume{union19()}; Delete;}; //Physical Volume(0) = {voxcyl()}; */ // ------- Definition of Final Volume -------- voxcyl() += BooleanFragments{ Volume{v}; Delete;}{ Volume{union19()}; Delete; }; Physical Volume(0) = {voxcyl({#voxcyl()-1})}; // around the vessels Physical Volume(1) = {voxcyl({0:#voxcyl()-2})}; // the vessels Printf("",voxcyl()); // Just for checking #voxcyl() gives you the number of elements in the array. Best regards, Ruth — Prof. Ruth V. Sabariego KU Leuven Dept. Electrical Engineering ESAT/Electa, EnergyVille http://www.esat.kuleuven.be/electa http://www.energyville.be Free software: http://gmsh.info | http://getdp.info | http://onelab.info On 7 Feb 2018, at 11:50, ISABELA PAREDES CISNEROS <ipared...@uc.cl<mailto:ipared...@uc.cl>> wrote: Dear all, I am trying to mesh a cube with cylindrical holes in it. Some of the holes intersect. I am using a BooleanUnion of all the cylinders and then a BooleanDifference of the cube and the cylinders. In the meshing, I get no error but the mesh on the cylinders boundary is wrong. A lot of surfaces are missing. Do you have any idea of what am I doing wrong? Best regards, Isabela P.D: I have commented some lines (10 and 113) in the GEO file to visualize the mesh over the cylinders. <Vessels_xyz.geo><wrong_mesh.jpg>_______________________________________________ gmsh mailing list gmsh@onelab.info<mailto:gmsh@onelab.info> http://onelab.info/mailman/listinfo/gmsh
_______________________________________________ gmsh mailing list gmsh@onelab.info http://onelab.info/mailman/listinfo/gmsh