gmsh.model.occ.remove() does not remove surface
Using gmsh 4.8.4
This model does not mesh because surfaces 5 and 12 are the same. So I thought let's use gmsh.model.occ.remove([(2,5)]) to remove surface 5 But when I do so surface 5 is still present in the model, which will not mesh then. With or without synchronize doesn't change the outcome. I would think I am following correctly the solution #1137 (closed)
import gmsh
lc = 2.
# Geometry
W_tim = 58.
L_tim = 97.
H_tim = 5.
# MAKE MESH
gmsh.initialize()
gmsh.option.setNumber("General.Terminal", 1)
gmsh.option.setString("Geometry.OCCTargetUnit", "MM")
gmsh.option.setNumber("Mesh.Optimize",1)
gmsh.option.setNumber("Mesh.CharacteristicLengthMin", lc)
gmsh.option.setNumber("Mesh.CharacteristicLengthMax", 3*lc)
model = gmsh.model.occ
gmsh.merge('HEATER.brep')
xy_tim_list = [(-W_tim/2,-L_tim/2,0),(-W_tim/2,L_tim/2,0),(W_tim/2,L_tim/2,0),(W_tim/2,-L_tim/2,0)]
# Points
tag_list_p_tim = []
for xy in xy_tim_list:
tag_list_p_tim = tag_list_p_tim + [model.addPoint(*xy, meshSize=lc)]
# Lines
tag_list_l_tim = []
tl = tag_list_p_tim + [tag_list_p_tim[0]]
for j in range(len(tag_list_p_tim)):
tag_list_l_tim = tag_list_l_tim + [model.addLine(tl[j], tl[j+1])]
# Loops
tag_cl_tim = model.addCurveLoop(tag_list_l_tim)
# Surfaces
tag_sf_tim = model.addPlaneSurface([tag_cl_tim])
# Extrusion
ov_tim = model.extrude([(2,tag_sf_tim)], 0, 0, H_tim, [4], [])
#model.synchronize()
model.remove([(2, 5)])#, recursive=True)
model.synchronize()
s = model.getEntities(2)
print("s = ", s)
v = model.getEntities(3)
v = [v[i][1] for i in range(len(v))]
p = gmsh.model.addPhysicalGroup(3, v)
gmsh.model.setPhysicalName(3, p, "block")
gmsh.write("block.geo_unrolled")
gmsh.model.mesh.generate(3)
gmsh.write("block.msh")
gmsh.finalize()