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

Reply via email to