Hello Jeremy,

Is my understanding correct that there would only be one material volume per brep file? I would use freecad, but it seems painful to try to import one brep per material into gmsh, and then attempt to get gmsh to merge the interfaces. I thought Coherence might not work very well, and performing a boolean fragments operation on multiple brep volumes might not work either.

Regards,

Juan

On 4/6/18 9:44 AM, jeremy theler wrote:
apply the boolean operation in freecad (in the options you can choose "compsolid" mode) and then export to brep
alternatively use the gmsh command "Coherence"
I suggest you search online for further information on compsolids in freecad and thr coherence command in gmsh


On Fri, Apr 6, 2018, 03:05 Benedikt Oswald <[email protected]> wrote:

    Dear juan, thank you very much for your detailed answer!

    In fact, our workflow definitely requires geometry construction in

    Freecad and then meshing in gmsh; nevertheless, I

    will try to debug the problem along your suggested

    procedure.

    thanks again and greetings, Benedikt



    Am 05.04.18 um 17:22 schrieb Juan Sanchez:
     > Hello Benedikt,
     >
     > I am using the OpenCascade factory to do the Boolean Operations in
     > gmsh.  This is using the pygmsh python module to help automate the
     > process:
     >
     > https://github.com/nschloe/pygmsh/tree/master/pygmsh
     >
     > The boolean operations can then be performed using code like this:
     > https://github.com/nschloe/pygmsh/issues/164
     >
     > import pygmsh
     > geom = pygmsh.opencascade.Geometry(
     >   characteristic_length_min=0.1,
     >   characteristic_length_max=0.1,
     >   )
     >
     > def create_vol_volume(geom, h, w, l, x, z, cr, lcar=100):
     >   f = 0.5*w
     >   y = [-f,-f+cr, +f-cr, +f]
     >   z = [z, z + (h-cr), z + h]
     >   f = 0.5 * cr
     >   points = []
     >   points.append(geom.add_point((x, y[0], z[0]), lcar=lcar))
     >   points.append(geom.add_point((x, y[0], z[1]), lcar=lcar))
     >   points.append(geom.add_point((x, y[1], z[1]), lcar=lcar))
     >   points.append(geom.add_point((x, y[1], z[2]), lcar=lcar))
     >   points.append(geom.add_point((x, y[2], z[2]), lcar=lcar))
     >   points.append(geom.add_point((x, y[2], z[1]), lcar=lcar))
     >   points.append(geom.add_point((x, y[3], z[1]), lcar=lcar))
     >   points.append(geom.add_point((x, y[3], z[0]), lcar=lcar))
     >
     >   lines = []
     >   lines.append(geom.add_line(points[0], points[1]))
     >   lines.append(geom.add_circle_arc(points[1], points[2], points[3]))
     >
     >   lines.append(geom.add_line(points[3], points[4]))
     >   lines.append(geom.add_circle_arc(points[4], points[5], points[6]))
     >   lines.append(geom.add_line(points[6], points[7]))
     >   lines.append(geom.add_line(points[7], points[0]))
     >
     >   line_loop=geom.add_line_loop(lines)
     >   surface=geom.add_plane_surface(line_loop)
     >   vol = geom.extrude(surface, translation_axis=[l, 0, 0])[1]
     >   return vol
     >
     >
     > h_top=40
     > corner_radius=2.5
     >
     > z_vol=0
     > h_vol=25
     > w_vol=10
     > l_vol=100
     > x_vol=-0.5*l_vol
     > vol=create_vol_volume(geom, h=h_vol, w=w_vol, l=l_vol, x=x_vol,
     > z=z_vol, cr=corner_radius)
     >
     > z_vol2=0
     > l_vol2=50
     > t_vol2=1
     > w_vol2=w_vol+2*t_vol2
     > h_vol2=h_vol+t_vol2
     > x_vol2=x_vol + 0.5*(l_vol-l_vol2)
     > vol2=create_vol_volume(geom, h=h_vol2, w=w_vol2, l=l_vol2, x=x_vol2,
     > z=z_vol2, cr=corner_radius)
     > vol2=geom.boolean_difference([vol2], [vol], delete_first=True,
     > delete_other=False)
     > geom.boolean_fragments([vol2, vol], [], delete_first=True,
    delete_other=False)
     > print(geom.get_code())
     >
     >
     > And then you can label the volumes as physical volumes and mesh the
     > resulting geo file.
     >
     > Regards,
     >
     > Juan
     >
     > On Thu, Apr 5, 2018 at 5:53 AM, Benedikt Oswald
     > <[email protected]> wrote:
     >> Dear gmsh developers
     >>
     >> I recently tried to mesh a geometry (made in Freecad) which
    consists of
     >> two volumes where a smaller volume was
     >>
     >> subtracted in Freecad from the larger one. When I mesh the two
    volumes I
     >> would need tetrahedra
     >>
     >> and that are conformal between the two volumes. Would you have a
     >> suggestion on how
     >>
     >> to achieve this ? At the moment, gmsh does not really produce a
     >> conformal mesh.
     >>
     >> I attach the files in question.
     >>
     >> Thanks a lot in advance and greetings, Benedikt
     >>
     >>
     >>
     >>
    
----------------------------------------------------------------------------------------------------------------------
     >> Dr. sc. techn. Benedikt Oswald - first engineer - LSPR AG -
    phone +41 43 366 90 74
     >> Grubenstrasse 9, CH-8045 Zürich, [email protected]
     >>
    
----------------------------------------------------------------------------------------------------------------------
     >>
     >>
     >> _______________________________________________
     >> gmsh mailing list
     >> [email protected] <mailto:[email protected]>
     >> http://onelab.info/mailman/listinfo/gmsh
     >>
     > _______________________________________________
     > gmsh mailing list
     > [email protected] <mailto:[email protected]>
     > http://onelab.info/mailman/listinfo/gmsh

    --
    
----------------------------------------------------------------------------------------------------------------------
    Dr. sc. techn. Benedikt Oswald - first engineer - LSPR AG - phone
    +41 43 366 90 74
    Grubenstrasse 9, CH-8045 Zürich, [email protected]
    
----------------------------------------------------------------------------------------------------------------------


    _______________________________________________
    gmsh mailing list
    [email protected] <mailto:[email protected]>
    http://onelab.info/mailman/listinfo/gmsh

--
--
jeremy theler
www.seamplex.com <http://www.seamplex.com>


_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh



_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to