the compatibility conditions
When you set up an initial-boundary-value problem, two different stories about the system meet at the corners. The initial condition tells you the state everywhere at t = 0, including right at the endpoints; the boundary conditions tell you what happens at the endpoints for all t >= 0, including the very first instant. At the corner — say (x = 0, t = 0) — both stories speak at once, and they had better say the same thing. The compatibility conditions are the requirements that the initial data and the boundary data agree where they meet, so the problem is not quietly self-contradictory.
Concretely, take the heat IBVP with Dirichlet condition u(0, t) = 0 and initial condition u(x, 0) = f(x). At the corner the boundary says u(0, 0) = 0, while the initial data says u(0, 0) = f(0). These can only agree if f(0) = 0 — that is the zeroth-order compatibility condition. If you want a smoother solution you need more: differentiating the boundary condition and using the equation u_t = k u_xx at the corner forces f''(0) = 0 as well (the next-order condition), and each extra degree of smoothness you ask for in the solution imposes one more such matching condition on the data. If they fail, the solution still exists but develops a singularity at the corner — a kink or a blow-up of derivatives there — even though it is perfectly smooth in the interior.
Compatibility conditions are the fine print of well-posedness on a bounded domain. They explain a phenomenon that surprises beginners: you can solve the heat equation with a discontinuity between the initial profile and the boundary value, and the solution is genuinely smooth away from t = 0, but it is not smooth all the way up to the corner. Whether you need to enforce compatibility depends on how strong a solution you want: a classical (smooth) solution demands them, while a weak solution can tolerate the mismatch. They are also why separation-of-variables answers sometimes converge slowly near a corner — the series is honestly reporting a built-in incompatibility in the data.
Heat equation u_t = k u_xx on 0 < x < L with u(0,t)=u(L,t)=0 and u(x,0)=f(x). Zeroth-order compatibility needs f(0)=f(L)=0; the next order, using u_t = k u_xx at the corners, needs f''(0)=f''(L)=0. If f(0) is nonzero, the solution jumps at the corner and the Fourier sine series converges only slowly there, even though it is smooth for t > 0.
Compatibility = the initial and boundary data must agree (and their derivatives match) at the corners where they meet.
Failing the compatibility conditions does not make the problem unsolvable — a solution still exists and is smooth in the interior — it only costs smoothness at the corner. How many of the conditions you must impose is set by how regular a solution you insist on.