Your 2 volumes overlap. Either explicitly construct the 2 volumes so that they don't overlap, i.e. one on top of the other. Or use the OpenCASCADE factory and fragment the volumes at the end (e.g. using "Coherence" - see attached example) - although this is really overkill in this case.
Christophe
aa.geo
Description: Binary data
> On 29 Jan 2019, at 15:00, Dominic North <dj.no...@bristol.ac.uk> wrote: > > Dear Gmsh community, > > Please could you help? I’m trying to define a volume within a volume in gmsh, > but get an ‘overlapping facets’ error message (because I’m trying to extrude > a surface directly into an existing volume, I think). The aim is to model > heat travelling through a main volume: small regions defined within this > volume will generate heat. The ‘heat-generating sub-volumes’ are otherwise > unimportant to the system – they just need to define where the heat is > generated and be easily moveable around the main volume. > > Please see below for a representative model and the error message. 1D and 2D > meshing is fine; the overlapping facets message occurs on 3D meshing. > > Is there any way you can think of to achieve this? Many thanks for any help > you can offer. > > Best regards, > Dominic North > > ------------------------ > //Make the main volume: > p1 = newp; > Point(p1) = {0,0,0}; > p2 = newp; > Point(p2) = {2,0,0}; > p3 = newp; > Point(p3) = {2,2,0}; > p4 = newp; > Point(p4) = {0,2,0}; > > l1 = newl; > Line(l1) = {p1,p2}; > l2 = newl; > Line(l2) = {p2,p3}; > l3 = newl; > Line(l3) = {p3,p4}; > l4 = newl; > Line(l4) = {p4,p1}; > > ll1 = newll; > Line Loop(ll1) = {l1,l2,l3,l4}; > > s1 = news; > Plane Surface(s1) = {ll1}; > > mainExt[] = Extrude{0,0,2}{Surface{s1};}; > > //Make a sub volume > p5 = newp; > Point(p5) = {2,0,0}; > p6 = newp; > Point(p6) = {2,1,0}; > p7 = newp; > Point(p7) = {0,1,0}; > > l5 = newl; > Line(l5) = {p1,p5}; > l6 = newl; > Line(l6) = {p5,p6}; > l7 = newl; > Line(l7) = {p6,p7}; > l8 = newl; > Line(l8) = {p7,p1}; > > ll2 = newll; > Line Loop(ll2) = {l5,l6,l7,l8}; > > s2 = news; > Plane Surface(s2) = {ll2}; > > subExt[] = Extrude{0,0,2}{Surface{s2};}; > > > -------- > Info : Done meshing 2D (0.046875 s) > Info : Meshing 3D... > Info : 3D Meshing 2 volumes with 1 connected components > Info : Tetrahedrization of 447 points in 0 seconds > Info : Reconstructing mesh ... > Info : Creating surface mesh... > Info : Found two exactly self-intersecting facets. > Info : 1st: [15, 16, 124] #6 > Info : 2nd: [15, 16, 338] #34 > .Error : Invalid boundary mesh (overlapping facets) on surface 6 surface 34 > .Error : No tetrahedra in region 1 2 > Info : Done meshing 3D (0.03125 s) > Info : 439 vertices 1016 elements > .Error : ------------------------------ > .Error : Mesh generation error summary > .Error : 0 warnings > .Error : 2 errors > .Error : Check the full log for details > .Error : ------------------------------ > _______________________________________________ > gmsh mailing list > gmsh@onelab.info > 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 gmsh@onelab.info http://onelab.info/mailman/listinfo/gmsh