Hi everyone.
I have created a mesh with gmsh, but when I try to use it in FEniCSx, it does not come out correctly. When I save a function in that mesh, I only get values in the boundary.
import dolfinx
import gmsh
from dolfinx.io import gmshio
import meshio
gdim = 2
mesh_comm = MPI.COMM_WORLD
model_rank = 0
gmsh.initialize()
#Points
c = 1e-1;
gmsh.model.geo.add_point(0, 0.025, 0, c,1)
gmsh.model.geo.add_point(0.225, 0.025, 0, c,2)
gmsh.model.geo.add_point(0.2924, 0.0125, 0, c,3)
gmsh.model.geo.add_point(0.3174, 0.0125, 0, c, 4)
gmsh.model.geo.add_point(0.5218, 0.025, 0, c, 5)
gmsh.model.geo.add_point(0.9450, 0.025, 0, c, 6)
gmsh.model.geo.add_point(0.9450, -0.025, 0, c, 7)
gmsh.model.geo.add_point(0.5218, -0.025, 0, c,8)
gmsh.model.geo.add_point(0.3174, -0.0125, 0, c, 9)
gmsh.model.geo.add_point(0.2924, -0.0125, 0, c, 10)
gmsh.model.geo.add_point(0.225, -0.025, 0, c, 11)
gmsh.model.geo.add_point(0, -0.025, 0, c, 12)
gmsh.model.occ.synchronize()
#Lines
gmsh.model.geo.addLine(1, 2 ,1)
gmsh.model.geo.addLine(2, 3, 2)
gmsh.model.geo.addLine(3, 4,3)
gmsh.model.geo.addLine(4, 5,4)
gmsh.model.geo.addLine(5, 6,5)
gmsh.model.geo.addLine(6, 7,6)
gmsh.model.geo.addLine(7, 8,7)
gmsh.model.geo.addLine(8, 9,8)
gmsh.model.geo.addLine(9, 10,9)
gmsh.model.geo.addLine(10, 11,10)
gmsh.model.geo.addLine(11, 12,11)
gmsh.model.geo.addLine(12, 1,12)
gmsh.model.occ.synchronize()
gmsh.model.geo.add_curve_loop([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],1)
gmsh.model.geo.add_plane_surface([1],1)
gmsh.model.geo.synchronize()
volumes = gmsh.model.getEntities(dim=gdim)
gmsh.model.addPhysicalGroup(1, [12], 1)
gmsh.model.addPhysicalGroup(1, [6], name = 'inlet')
gmsh.model.addPhysicalGroup(1, [1,2,3,4,5,7,8,9,10,11], name= 'walls')
gmsh.model.occ.synchronize()
gmsh.model.geo.mesh.setTransfiniteCurve(6, 40, "Bump", 0.05)
gmsh.model.geo.mesh.setTransfiniteCurve(12, 40, "Bump", 0.05)
gmsh.model.geo.mesh.setTransfiniteCurve(1, 15)
gmsh.model.geo.mesh.setTransfiniteCurve(2, 15)
gmsh.model.geo.mesh.setTransfiniteCurve(3, 15)
gmsh.model.geo.mesh.setTransfiniteCurve(4, 25)
gmsh.model.geo.mesh.setTransfiniteCurve(5, 25)
gmsh.model.geo.mesh.setTransfiniteCurve(7, 25)
gmsh.model.geo.mesh.setTransfiniteCurve(8, 25)
gmsh.model.geo.mesh.setTransfiniteCurve(9, 15)
gmsh.model.geo.mesh.setTransfiniteCurve(10, 15)
gmsh.model.geo.mesh.setTransfiniteCurve(11, 15)
gmsh.model.geo.mesh.setTransfiniteSurface(1, "Left", [1,6,7,12])
gmsh.model.geo.mesh.setRecombine(2, 1)
gmsh.model.geo.synchronize()
gmsh.model.mesh.generate(2)
gmsh.write("venturi.msh")
domain, _, ft = gmshio.model_to_mesh(gmsh.model, mesh_comm, model_rank, gdim=2)
ft.name = "Facet markers"
gmsh.finalize()
I have opened the mesh.msh in Gmsh and it appears fine.
Any suggestions?
Thank you so much!