.. include:: /images.rst ====================================== Method of Manufactured Solutions (MMS) ====================================== Order of accuracy testing (or ‘order testing’) is considered a rigorous method for performing code verification. During order testing, the formal order of accuracy of a numerical scheme is compared to the observed order of accuracy. The observed order is the order at which the discretization error (which is the difference between the numerical solution to the discrete equations and the exact solution to the PDEs) decreases with systematic mesh refinement. However, the exact solution to a PDE is unknown for most practical problems. In this scenario, the Method of Manufactured Solutions (MMS) :cite:`Roache1984` can be used where a selected analytical function (called a ‘manufactured solution’) is forced to be the exact solution by modifying the PDE through additional source terms. The MMS test cases presented in this chapter are summarized in :numref:`table1`. These test cases offer an increasing level of computational complexity to isolate any potential problems in the source code. Three explanatory test cases that employ various simplifying assumptions are provided to assist the reader in understanding the MMS. Additional test cases were selected based upon their ability to invoke various parts of the MFIX code, and present physically acceptable data. All cases are executed in serial mode unless explicitly noted. .. _table1: .. csv-table:: Summary of MMS tests by feature. :header: " ", "EX01", "EX02", "EX03", "01", "02", "03", "04", "05", "06" :widths: auto "Frequency\ †", "X", "X", "X", "M", "M", "M", "M", "M", "M" "Dimension", "1D", "1D", "1D", "2D", "3D", "3D", "3D", "3D", "3D" "Multiphase", " ", " ", " ", " ", ":math:`{\checkmark}`", ":math:`{\checkmark}`", " ", " ", " " "Continuity", " ", " ", " ", ":math:`{\checkmark}`", ":math:`{\checkmark}`", " ", " ", " ", ":math:`{\checkmark}`" "Momentum", ":math:`{\checkmark}`", " ", " ", ":math:`{\checkmark}`", ":math:`{\checkmark}`", ":math:`{\checkmark}`", ":math:`{\checkmark}`", ":math:`{\checkmark}`", ":math:`{\checkmark}`" "Thermal Energy", " ", ":math:`{\checkmark}`", ":math:`{\checkmark}`", " ", ":math:`{\checkmark}`", ":math:`{\checkmark}`", " ", " ", " " "Species Mass", " ", " ", " ", " ", " ", " ", " ", " ", " " "Granular Energy", " ", " ", " ", " ", ":math:`{\checkmark}`", ":math:`{\checkmark}`", " ", " ", " " "Turbulence", " ", " ", " ", " ", " ", " ", " ", " ", " " "No-slip Wall BC", " ", " ", " ", " ", " ", " ", ":math:`{\checkmark}`", " ", " " "Free-slip Wall BC", " ", " ", " ", " ", " ", " ", " ", ":math:`{\checkmark}`", " " "Pressure Outflow", " ", " ", " ", " ", " ", " ", " ", " ", ":math:`{\checkmark}`" "Distributed Memory", " ", " ", " ", " ", " ", " ", " ", " ", " " "Shared Memory", " ", " ", " ", " ", " ", " ", " ", " ", " " † C-Incorporated into the continuous integration server; M-Monthly; Q-Quarterly; D-Disabled; X-Manual .. toctree:: :caption: MMS Procedure and Examples :maxdepth: 2 overview mms-ex-01 mms-ex-02 mms-ex-03 mms-01 mms-02 mms-03 mms-04 mms-05 mms-06