A Comparison of Artificial Viscosity Sensors for the Discontinuous Galerkin Method
Type of Degreethesis
MetadataShow full item record
The following work focuses on the development of an explicit Runge-Kutta, discontinuous Galerkin finite element method for the nonlinear, hyperbolic Euler equations. The discontinuous Galerkin method is a control-volume formulation, such as in the finite-volume method, but achieves high-order accuracy through the use of high-order polynomial approximations to the computed solution in each discretized element. Contrary to the Navier-Stokes equations, in which viscosity is present, the Euler equations do not contain any natural dissipation terms. Numerical methods of second-order or higher are susceptible to oscillations when discontinuities, such as shocks or large gradient features form in the solution. The lack of a natural dissipation mechanism requires the use of a stabilizing method to ensure physical solutions can be obtained. In order to preserve real physical solutions, the addition of an artificial viscosity was applied in the elements where discontinuities or large/sharp gradients of the flow variables occurred. The addition of artificial viscosity was accomplished through the use of a sensor that detected where oscillations in the approximated solution occur due to the Gibbs-phenomenon. The present work incorporates two different artificial viscosity sensors. The first sensor is based on the work by Klockner, Warburton, and Hesthaven which looks at the modal decay rate of the higher-order solution modes. The second sensor was based on the work presented by Zingan, Guermond, and Popov which uses the entropy production residual to determine where artificial viscosity should be applied. In comparing the two artificial viscosity sensors, several benchmark problems were modeled: the 2-D isentropic vortex, the 2-D Kelvin-Helmholtz shear layer instability, the 1-D Sod's shock tube, the 1-D Planar Shu-Osher problem, and the 2-D shock-vortex interaction. The results include error analysis, computational cost, robustness, and user-parameters.