If I made a single layer of pyramids (via external script) on the quad boundary could I trick gmsh into using that as the boundary if I properly defined it in a *.msh file? I can figure out how to do it, I just want to make sure it's possible before I spend too much time on it.
Thanks, Aaron -----Original Message----- From: Christophe Geuzaine [mailto:[email protected]] Sent: Friday, October 12, 2018 1:16 AM To: Jensen, Aaron J. [US-US] Cc: [email protected] Subject: Re: EXTERNAL: Re: [Gmsh] Embedded Mesh > On 12 Oct 2018, at 00:56, Jensen, Aaron J. <[email protected]> wrote: > > Hopefully this will be the last question for a while... > > I am trying the same thing in 3D now. I am having a similar problem where I > am not generating 3D elements in this case. I have attached the files. The boundary meshes should be triangular. Gmsh does not (yet) support generating automatic 3D tetrahedral+pyramidal meshes with quads on boundaries. > > Thanks in advance, > Aaron > > -----Original Message----- > From: Jensen, Aaron J. [US-US] > Sent: Thursday, October 11, 2018 4:11 PM > To: 'Christophe Geuzaine' > Cc: [email protected] > Subject: RE: EXTERNAL: Re: [Gmsh] Embedded Mesh > > I can't tell you how much I appreciate the help! Thank you! > > -----Original Message----- > From: Christophe Geuzaine [mailto:[email protected]] > Sent: Thursday, October 11, 2018 3:29 PM > To: Jensen, Aaron J. [US-US] > Cc: [email protected] > Subject: Re: EXTERNAL: Re: [Gmsh] Embedded Mesh > > > Here we go: > > Merge "square"; > > Line Loop(1) = {1,2,3,4}; // fixed > > squareWidth = 1.5; > halfSquareWidth = squareWidth/2.0; > > lc = 0.3; > Point(1001) = {-halfSquareWidth,-halfSquareWidth,0.0,lc}; > Point(1002) = {-halfSquareWidth, halfSquareWidth,0.0,lc}; > Point(1003) = { halfSquareWidth, halfSquareWidth,0.0,lc}; > Point(1004) = { halfSquareWidth,-halfSquareWidth,0.0,lc}; > Line(1001) = {1004,1003}; > Line(1002) = {1003,1002}; > Line(1003) = {1002,1001}; > Line(1004) = {1001,1004}; > > Line Loop(1005) = {1002,1003,1004,1001}; > > Plane Surface(1006) = {1005, 1}; // fixed > > > >> On 11 Oct 2018, at 19:25, Jensen, Aaron J. <[email protected]> wrote: >> >> Christophe, >> >> Thank you for the fast response. The latest snapshot works great and fixes >> the crash. >> >> I am still setting up the problem incorrectly. Here is what I have now: >> >> >> Merge "square"; >> Line Loop(1) = {1}; >> >> squareWidth = 1.5; >> halfSquareWidth = squareWidth/2.0; >> >> lc = 0.3; >> Point(1001) = {-halfSquareWidth,-halfSquareWidth,0.0,lc}; >> Point(1002) = {-halfSquareWidth, halfSquareWidth,0.0,lc}; >> Point(1003) = { halfSquareWidth, halfSquareWidth,0.0,lc}; >> Point(1004) = { halfSquareWidth,-halfSquareWidth,0.0,lc}; >> Line(1001) = {1004,1003}; >> Line(1002) = {1003,1002}; >> Line(1003) = {1002,1001}; >> Line(1004) = {1001,1004}; >> >> Line Loop(1005) = {1002,1003,1004,1001}; >> >> Surface Loop(1006) = {1005, 1}; >> >> >> I think it is close to working but I get the warning message: "1D mesh not >> forming a closed loop". >> >> Any help would be greatly appreciated. >> >> Thanks, >> Aaron >> >> -----Original Message----- >> From: Christophe Geuzaine [mailto:[email protected]] >> Sent: Thursday, October 11, 2018 8:11 AM >> To: Jensen, Aaron J. [US-US] >> Cc: [email protected] >> Subject: EXTERNAL: Re: [Gmsh] Embedded Mesh >> >> >> >>> On 10 Oct 2018, at 21:12, Jensen, Aaron J. <[email protected]> >>> wrote: >>> >>> Hello, >>> >>> I would like to merge an existing mesh into a geometry and then mesh the >>> unmeshed region using gmsh (something like a boundary mesh around a >>> pre-existing mesh generated externally by another program). Ideally, this >>> would result in a mesh that was partially created in gmsh and partially >>> created externally to gmsh. Ultimately, I would like to do this in both 2D >>> and 3D but am starting with the following in 2D: >>> >>> >>> >>> Merge "square"; >>> >>> SetFactory("OpenCASCADE"); >>> >>> Surface Loop(1) = {1}; >>> //sExternal = news; >>> //Rectangle(sExternal) = {0, 0, 0.0, 0.5, 0.5}; >>> >>> s1 = news; >>> Rectangle(s1) = {-0.25, -0.25, 0.0, 1.0, 1.0}; >>> >>> //BooleanDifference (2000) = { Surface{s1}; Delete; }{ Surface{sExternal}; >>> }; >>> BooleanDifference (2000) = { Surface{s1}; Delete; }{ Surface{1}; }; >>> >> >> This cannot work: boolean operations can only be applied to CAD entities. It >> should not crash though - and it does not on my machine. Can you try with >> the latest snapshot? >> >> You can still produce a mesh like the one you want. With the built-in >> engine, simply >> >> - load the mesh, which should contain the bounding surface mesh >> >> - define the exterior "Surface Loop" where the interior surfaces are the >> bounding surfaces (discrete) >> >> Christophe >> >> >>> >>> >>> OpenCascade doesn’t recognize surface 1 and BooleanDifference causes gmsh >>> to crash. I assume I am doing something wrong? Can gmsh embed an existing >>> mesh into a gmsh geometry or CAD model? >>> >>> Thanks, >>> Aaron >>> <square>_______________________________________________ >>> 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 >> >> Free software: http://gmsh.info | http://getdp.info | http://onelab.info >> > > — > Prof. Christophe Geuzaine > University of Liege, Electrical Engineering and Computer Science > http://www.montefiore.ulg.ac.be/~geuzaine > > Free software: http://gmsh.info | http://getdp.info | http://onelab.info > > <Combined3D.GEO><cube> — Prof. Christophe Geuzaine University of Liege, Electrical Engineering and Computer Science http://www.montefiore.ulg.ac.be/~geuzaine Free software: http://gmsh.info | http://getdp.info | http://onelab.info _______________________________________________ gmsh mailing list [email protected] http://onelab.info/mailman/listinfo/gmsh
