wiki:u/erica/2D_Godunov

Version 3 (modified by Erica Kaminski, 12 years ago) ( diff )

Introduction

The method I chose for practice writing a higher dimension code is the 1st order accurate, split scheme, Godunov + Exact Riemann Solver to solve the 2D Euler equations for a cylindrical explosion. Given the higher dimension of the problem, new types of waves are present in the solution, namely shears. Shears are passively advected with the flow, as can be shown by combining the continuity equation and the corresponding momenta equations.

Initialization

This method begins by initializing a 2D Cartesian grid, with a circle in the center. The primitive fluid variables (rho, x-velocity, y-velocity, pressure) are set inside and outside of this circle.

The essence of split schemes

It can be proven for linear systems of equations of higher dimension, that splitting the problem into x and y components yields an exact solution. For non-linear systems, the effort leads to a highly accurate (but not exact) solution. The concept is as follows.

We begin with a 2D mesh of initial condition

To solve the Euler equations for this given initial condition, we split the 2D Euler equations into 2, 1D initial value problems (IVPs). In the x-split direction, we have

and in the y-direction we have,

Upsides / Downsides

The good aspects of this choice of method (split, Godunov + Exact Riemann Solver) are: 1) accurate resolution of shear waves, 2) simple to construct.

The downside is: 1) not higher order (if wanted to add this - code could become quite complex to take into account the addition of shears into the TVD algorithms)

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.