# NDSolveValue seems to ignore a boundary condition

I am trying to solve a system of PDEs over a cilyndrical region. The text goes as follows:

\[Beta] = Cylinder[{{0, 0, 20}, {0, 0, 25}}, 5]
J = 1;
w = 1;
Y = 10;
{Asol, Bsol, psol, lsol} =
NDSolveValue[{D[A[x, y, z], z] - D[p[x, y, z], x] == 0,
D[A[x, y, z], x] + D[B[x, y, z], y] + D[p[x, y, z], z] == 0,
D[B[x, y, z], x] - D[A[x, y, z], y] == 1/((y - 1)^2 + x^2 + 1),
l[x, y, z] == A[x, y, z]*x + B[x, y, z]*y,
DirichletCondition[l[x, y, z] == 0, x^2 + y^2 == 25],
DirichletCondition[p[x, y, z] == 0, z == 20],
DirichletCondition[p[x, y, z] == 0, z == 25]}, {A, B, p,
l}, {x, y, z} \[Element] \[Beta]]


I am than returned with a solution, however, this solution seems to disagree with the boundary condition estipulated for l[x,y,z]==0,x^2+y^2==25. The meaning of this boundary condition is to assert that the vector {A,B} does not have a component perpendicular to the side edges of the cylinder at the boundary. Plotting the vector field, however, we notice that the vector {A,B} does have components perpendicular to the edges at the boundaries, which means that the solution does not completely respect the imposed boundary condition. Shouldn't it warn me if it is impossible to obtain a solution that fits the conditions imposed ? How can I solve this ?

• Boundary conditions are not enough. It is possible that it is necessary to exclude l and just put A = 0, B = 0 on the border. – Alex Trounev Nov 11 '18 at 21:17