One issue is surely the fact that dx
is not aware of the subdomains. Try having a look at Transitioning from mesh.xml to mesh.xdmf, from dolfin-convert to meshio - #186 by gangadhara or similar messages in that same post and trying some of the solutions posted there. Note how the code in that post ends with
ds = Measure("ds", domain=mesh, subdomain_data=mf)
dx=Measure("dx", domain=mesh, subdomain_data=cf)
which is the way to define measures which are aware of markers. That might also simplify the part about Defining boundary conditions
, and allow you to use markers defined in the geo file rather than defining them again in the python file.