Solved right, or the right equations
The method of manufactured solutions
If you already know the answer, you can check whether the code finds it — and manufactured solutions make that possible on any equation you like.

Inventing an exact answer and forcing the equations to produce it is how a code is checked without an experiment.
Inventing the answer first
Verification — the question of whether the mathematics was done correctly — requires a problem with a known exact solution. For most equations that matter in practice, no such solution exists. The method of manufactured solutions (MMS) sidesteps this by reversing the usual process: you choose a smooth, convenient function, substitute it into the governing equations, compute whatever residual falls out, and then add that residual to the right-hand side as a forcing term. The modified problem now has your invented function as its exact solution, by construction.
The procedure is mechanical. Take a scalar advection-diffusion equation; pick a trigonometric or polynomial field that satisfies whatever boundary conditions you intend to impose; differentiate it analytically to produce the source term your code must read; run the code; compare the numerical output to the manufactured field. Every discrepancy is solver or implementation error, not experimental uncertainty or modelling approximation. The power of the approach is precisely this isolation.
Patrick Roache, whose writing on verification and validation gave the method its modern name and systematic treatment, was not claiming a new mathematical insight — the idea of constructing exact solutions by adding forcing terms is at least as old as the method of particular solutions in differential equations. What MMS brought was a discipline: a structured, repeatable protocol that any code team could apply to any set of equations without waiting for an analytical benchmark to appear in the literature.

A code verification technique: it proves the implementation, not the physics.
Photo: Southwark-Emery Universal Testing Machine · Wikimedia CommonsWhat the convergence rate actually tells you
The check is not simply "did the code get close." The rigorous test is whether the observed order of convergence matches the theoretical order as the mesh is refined. For a second-order-accurate finite element or finite volume scheme, the L2 norm of the error should drop by a factor of four when the mesh spacing halves. Plotting log-error against log-mesh-spacing should give a straight line with the expected slope. A wrong slope is diagnostic: a first-order slope from a nominally second-order scheme points to a boundary condition implementation error; a slope that is correct but with an anomalously large constant suggests excessive numerical diffusion. A slope of zero means something is deeply broken.
The manufactured solution must be smooth for this to work — smooth enough that the full design order of the scheme is exercised. A solution with sharp gradients or discontinuities contaminates the convergence study by introducing features the mesh cannot resolve at coarse levels. Trigonometric functions are the practitioner's default; they are infinitely differentiable, their derivatives are easy to compute analytically, and their amplitude and frequency can be tuned to stress the code without becoming numerically extreme.
The modified problem now has your invented function as its exact solution, by construction.
For turbulence models the procedure becomes trickier. RANS equations carry nonlinear closure terms whose derivatives must be included in the manufactured forcing; omitting them produces a solution that still converges, but to the wrong equations. Several published MMS studies of the Spalart–Allmaras and k–ω models have demonstrated this explicitly, both as a verification tool and as a method for detecting transcription errors when porting a turbulence model between codes.
What MMS does not do
Manufactured solutions verify the discrete solver against the continuous equations. They say nothing about whether those equations model the physics correctly — that is validation, a separate question requiring measured data. A code can pass every MMS study in its test suite and still solve the wrong problem. The two activities are complementary, not interchangeable.
Equally, MMS does not replace unit testing of individual routines, profiling for floating-point pathologies, or examination of conservation properties at the discrete level. It occupies one specific role in a verification hierarchy: global, equation-level convergence testing, where every coupling between terms in the equations is exercised simultaneously and the evidence of correctness is quantitative and unambiguous.

A wrong convergence rate is a strong signal of a coding error — or of a mesh that never satisfied the assumptions the estimate was derived under.