# Overview

• Method of Manufactured Solutions (MMS) is a useful tool for code verification (making sure that your mathematical model is being properly solved).
• MMS works by assuming a solution, substituting it into the PDE, and obtaining a "forcing term".
• The modified PDE (with forcing term added) is then solved numerically; the result can be compared to the assumed solution.
• By checking the norm of the error on successively finer grids you can verify your code obtains the theoretical convergence rate (i.e. that you don't have any code bugs).

MMS Example:

PDE: $$-\nabla \cdot \nabla u = 0$$$Assumed solution: $$u = \sin(\alpha\pi x)$$$

Forcing function: $$f = \alpha^2 \pi^2 \sin (\alpha \pi x)$$$Need to solve: $$-\nabla \cdot \nabla u - f = 0$$$

# Error Analysis

• To compare two solutions (or a solution and an analytical solution) $$f_1$$$and $$f_2$$$, the following expressions are frequently used: ||f_1-f_2||^2_{L_2(\Omega)} = \int_{\Omega} (f_1-f_2)^2 \;\text{d}\Omega \\ ||f_1-f_2||^2_{H_{1,\text{semi}}(\Omega)} = \int_{\Omega} \left|\nabla \left(f_1-f_2\right)\right|^2 \;\text{d}\Omega
• From finite element theory, we know the convergence rates of these quantities on successively refined grids.
• They can be computed in a MOOSE-based application by utilizing the ElementL2Error or ElementH1SemiError Postprocessors, respectively, and specifying the analytical solution with Functions.

Example 14