# Order of boundary condition inside DSolve matters?

Bug introduced in 11.1.1 or earlier.

Consider the following example:

heqn = {Laplacian[u[x, y], {x, y}] + 5 u[x, y] == 0};
bc = {u[x, 0] == UnitTriangle[x - 2], u[0, y] == 0, u[x, 2] == 0, u[4, y] == 0};
DSolve[{heqn, bc}, u[x, y], {x, y}]
(* DSolve returns unevaluated. *)


OK, not that surprising, DSolve is still weak, but this is actually almost an working example in the document of DSolve, you can find it under Scope -> Elliptic Partial Differential Equations. I have only exchange the order of u[x, 2] == 0 and u[0, y] == 0 i.e. the following code will work!:

heqn = {Laplacian[u[x, y], {x, y}] + 5 u[x, y] == 0};
bc = {u[x, 0] == UnitTriangle[x - 2], u[x, 2] == 0, u[0, y] == 0, u[4, y] == 0}
DSolve[{heqn, bc}, u[x, y], {x, y}]
(* Works as expected. *)


So my question is, is this a bug, or a intentional design i.e. I need to make the boundary condition for the same dimension attached etc.?

• This is a known bug, see mathematica.stackexchange.com/questions/143726/… – user58955 Aug 20 '17 at 0:36
• @user58955 They do look similar, but I think the essence of problem may be different, because the workaround given by Michael E2 doesn't work for my problem. – xzczd Aug 20 '17 at 2:41