Date of Award


Document Type


Degree Name

Doctor of Philosophy (PhD)

Legacy Department

Mechanical Engineering


Dr. Richard Figliola

Committee Member

Dr. Edward Alyanak

Committee Member

Dr. Richard Miller

Committee Member

Dr. Chenning Tong


When applying the method of manufactured solutions (MMS) on computational fluid dynamic (CFD) software, it is traditionally a requirement that all solutions be continuous on the computational domain. This stipulation is limiting for the verification and validation of CFD solutions where discontinuities are frequent. This work details the development of a discontinuous MMS method for finite volume codes. The CFD code used throughout this research is a cell centered, finite volume, 1st order, Eulerian scheme within the software AVUS (Air Vehicles Unstructured Solver) which is combined with uniform structured grids. This code is used as a representative testing platform with the convenience of accessible source code. A piecewise technique is used for defining manufactured solutions which simulate discontinuities. Since source terms which allow arbitrary solutions in continuous MMS do not exist within Riemann solvers, conditions at the shock boundary are physically constrained by the Rankine-Hugoniot jump conditions. Upwind manufactured solutions are first initialized and a regression technique is then used to solve for solutions downwind of the discontinuity. It is shown that a change in regression error of four order of magnitude has no significant effect on an order of convergence test. When applying MMS on finite volume CFD codes, determining the exact solutions and source terms when the stored value is the integrated average over the control volume is a non-trivial and frequently ignored problem. MMS with discontinuities further complicates the problem of determining these values. To obtain low error and high convergence rates, linearly and quadratically exact transformations are proposed for cells split by discontinuities. These transformations are combined with a nine point Gauss quadrature method to achieve 4th order accuracy for fully general solutions and shock shapes. To begin testing, continuous MMS is first performed to ensure a verified code. AVUS is verified for 1st order solutions but retains lower order boundary conditions when solving 2nd order. The error is verified using a second academic CFD solver but is left unchanged for shock solutions which are inherently 1st order. Constant primitive, oblique shock solutions are then used to demonstrate a solution's error dependence on grid alignment. Grid alignment is shown to play a vital role in the error surrounding a shock. Constant oblique solutions with a grid aligned shock result in no discretization error while a shock that passed through the interior of cells yields error upwards of 4% for the u-component velocity. A semi one-dimensional problem combined with a grid aligned shock is then used to demonstrate the error magnitude (< 1%) due to the cell averaging on both sides of the discontinuity. Fully generic primitives and discontinuities are then introduced and grid convergence studies yielding 1st order results typically associated with shocks are used to verify the correctness of the code. Despite high errors near the region of the shock, similar patterns and orders of convergence are shown for both physical and mathematical shock shapes. Sub-linear convergences near 0.9, especially in the u-component velocity, indicate the presence of linearly degenerate characteristics which are typical of shock capturing schemes. The fully general solutions are used to show that errors in the Riemann solver can be identified with discontinuous MMS. Three coding errors are introduced which are not identified by continuous MMS. In two cases the discontinuous procedure indicates a coding error in the convergence test and the final error is classified as a efficiency mistake and is missed by all methods. Lastly, the method is replicated on an academic CFD code for a final validation procedure. Identical behavior and near identical errors suggest the robustness of the developed method despite fundamental differences in the shock capturing schemes of the two codes.