<html><head></head><body><div>Hi everybody,</div><div><br></div><div>I have a problem with the mesh generation of a domain which incorporates several inclusions that are allowed to intersect the boundaries. The basic idea is to generate a periodic representative volume element by using Boolean operations in Gmsh. So far, the geometry generation seems to work quite well but when I try to mesh the resulting geometry with Gmsh, I always get the error that there are intersecting surfaces in the surface mesh. For this reason, the 3D mesh is not completed. What do I do wrong? Does anybody have any ideas?</div><div><br></div><div>My .geo-file looks as follows (here only a simplified version with a few inclusions):</div><div><br></div><div>// Activate OpenCASCADE geometry module</div><div>SetFactory("OpenCASCADE");</div><div><br></div><div>// Number of inclusions</div><div>nInc=14;</div><div><br></div><div>// Geometrical tolerance</div><div>tol=Geometry.Tolerance;</div><div><br></div><div>// Mesh options</div><div>h=0.5;</div><div>p=1;</div><div><br></div><div>// Cuboid</div><div>Box(1) = {0, 0, 0, 10, 10, 10};</div><div><br></div><div>// Inclusions</div><div>Sphere(2) = {7.9403,3.8106,4.0937,2.5};</div><div>Sphere(3) = {-2.0597,3.8106,4.0937,2.5};</div><div>Sphere(4) = {3.1291,8.6325,8.5502,2.5};</div><div>Sphere(5) = {3.1291,-1.3675,8.5502,2.5};</div><div>Sphere(6) = {3.1291,8.6325,-1.4498,2.5};</div><div>Sphere(7) = {3.1291,-1.3675,-1.4498,2.5};</div><div>Sphere(8) = {8.9159,8.8189,5.2511,2.5};</div><div>Sphere(9) = {-1.0841,8.8189,5.2511,2.5};</div><div>Sphere(10) = {8.9159,-1.1811,5.2511,2.5};</div><div>Sphere(11) = {-1.0841,-1.1811,5.2511,2.5};</div><div>Sphere(12) = {9.9252,4.1353,9.0195,2.5};</div><div>Sphere(13) = {-0.074811,4.1353,9.0195,2.5};</div><div>Sphere(14) = {9.9252,4.1353,-0.98047,2.5};</div><div>Sphere(15) = {-0.074811,4.1353,-0.98047,2.5};</div><div><br></div><div>// Boolean Operations</div><div>Inclusions[]=BooleanIntersection{ Volume{1}; }{ Volume{2:nInc+1}; Delete;};</div><div>Matrix[]=BooleanDifference{ Volume{1}; Delete; }{ Volume{Inclusions[]}; };</div><div><br></div><div><br></div><div>// General Meshing Options</div><div>AllSurfs[] = Unique(Abs(Boundary{ Volume{Matrix[]}; Volume{Inclusions[]}; }));</div><div>AllLines[] = Unique(Abs(Boundary{ Surface{AllSurfs[]}; }));</div><div>AllPoints[] = Unique(Abs(Boundary{ Line{AllLines[]}; }));</div><div>Characteristic Length { AllPoints[] } = h;</div><div>Mesh.ElementOrder = p;</div><div><br></div><div>Mesh 3;</div></body></html>