U.S. flag An official website of the United States government
  1. Home
  2. Medical Devices
  3. Science and Research | Medical Devices
  4. Method of manufactured solutions (MMS) code verification source term generation tool
  1. Science and Research | Medical Devices

Method of manufactured solutions (MMS) code verification source term generation tool

Catalog of Regulatory Science Tools to Help Assess New Medical Devices

Technical Description

This tool provides a Jupyter/Python notebook template for generating source terms required for rigorous method of manufactured solutions (MMS) code verification. The tool uses Python and the open-source computer algebra library SymPy for symbolic mathematics.

  • User inputs:
    • governing equations in a closed-form representation
    • a prescribed solution for the field variable(s) of interest
  • Tool outputs:
    • analytical source term functions for MMS code verification

The template includes example governing equations and source terms for verifying elastostatic solid mechanics analyses involving linear-elastic, hyperelastic (neo-Hookean), and quasi-hyperelastic (Hencky) constitutive models in a commercial finite element code.

Intended Purpose

This tool is intended to facilitate MMS code verification of physics-based computational models. Code verification is the first step in demonstrating the credibility of computational models and is an important consideration for any model intended to influence decision making during medical device development or regulatory review.

The tool is applicable to any medical device development or performance assessment activities that may benefit from physics-based computational modeling, especially solid mechanics analyses of implantable devices. Intended users include simulation code developers and simulation analysts.


This tool has been developed following practices for numerical code verification recommended in ASME V&V10-2019 Section and ASME V&V20-2009(R2021) Section 2-3.3.

Use of the tool has been demonstrated for a commercial code in the following peer-reviewed publication:


This tool requires user-provided governing equations for a computational model of interest in a closed form representation. In some circumstances, the precise form of the governing equations for a given computational model may be unknown, especially when using a closed-source simulation software that lacks comprehensive documentation. Moreover, some computational models include terms that lack a closed-form representation, for example, use of an empirical submodel, or reliance on a rate-based formulation with history dependence. For such applications, alternative code verification approaches may be necessary.

Supporting Documentation

Documentation is provided as a Jupyter notebook in Supplemental Material to Aycock et al. 2020, Comput Struct.

A static PDF version of the notebook is available in the following link for users unfamiliar with the Jupyter environment.

Tool users are encouraged to download the full package and extract the .ipynb notebook from the zip archive (https://doi.org/10.6084/m9.figshare.7726352.v2).

Use of the tool requires installation of free and open-source software including Python 3, NumPy, pandas, SymPy, Matplotlib, and Jupyter, which are available through installation of the Anaconda Distribution.

FDA guidance documents include:

FDA-recognized standards include:

Additional standards include:

Further recommended reading:

  • Oberkampf, W. L., & Roy, C. J. (2010). Verification and validation in scientific computing. Cambridge University Press. https://doi.org/10.1017/CBO9780511760396
    • Section 5: Code verification
    • Section 6.3: Method of manufactured solutions (MMS)
  • Roache, P. J. (2009). Fundamentals of verification and validation. Hermosa Publishing.
    • Chapter 3: Method of manufactured solutions: A methodology for verification of codes
  • Roache, P. J. (2002). Code verification by the method of manufactured solutions. J. Fluids Eng., 124(1), 4-10. https://doi.org/10.1115/1.1436090
  • Salari, K., & Knupp, P. (2000). Code verification by the method of manufactured solutions (No. SAND2000-1444). Sandia National Lab. (SNL-NM), Albuquerque, NM (United States); Sandia National Lab. (SNL-CA), Livermore, CA (United States). https://doi.org/10.2172/759450


Tool Reference

In addition to citing relevant publications, please reference the use of this tool using DOI: 10.5281/zenodo.6629099.

For more information

Back to Top