Why the boundary condition is not taken in account?

Hi everyone ! I’m a beginner and I tried to write a simple code but the result is no good : my solution is uniform equals to zero… Can anyone explain me why ?

Here is my code

base = Rectangle(Point(-1.0, -1.0), Point(1.0, 1.0))
hole = Circle(Point(0.25, 0), 0.25)
mesh5 = generate_mesh(base - hole, 15)

plt.figure(1)
plot(mesh5, title="Maillage du rectangle troué")

Hh5 = FunctionSpace(mesh5, 'P', 1)
tol = 1E-14
class inneredge(SubDomain):
    def inside(self, x, on_boundary):
        return on_boundary and (abs(x[0]-0.25)<0.5+tol) and (abs(x[1])<0.5+tol) 
    
ie = inneredge()
ie = DirichletBC(Hh5, Constant(1.0), ie)

class outeredge(SubDomain):
    def inside(self, x, on_boundary):
        return on_boundary and (abs(x[0] - 0.25) > 0.5+tol) and (abs(x[1])>0.5+tol)
    
oe = inneredge()
oe = DirichletBC(Hh5, Constant(0.0), oe)

c=Expression(("(x[0]-0.5)*(x[0]-0.5)+x[1]*x[1]","0.0"),degree = 2)

u = TrialFunction(Hh5)
v = TestFunction(Hh5)

F = inner(grad(u), grad(v))*dx+inner(c,grad(u))*v*dx

a = lhs(F)
L = rhs(F)
uh = Function(Hh5)
solve(a==L, uh, [ie,oe])

plu=plot(uh)
plt.title('Solution numérique u5')
plt.xlabel('x')
plt.ylabel('y')
plt.colorbar(plu)

i’m sorry guys I’m tired I have found the answer

For reference, you used inneredge twice. I’ll close this post. Feel free to delete it as you have all the same code in your other post