How the boundary condition is calculated

Dear all,
I am wondering how FreeFem imposes the Dirichlet boundary condition when using tgv= -1?
I have tried both the direct solver LU and iterative solver hypre, why it’s not exactly zero at the wall boundary as shown below:

or this might be a visualisation issue in paraview?