Diagonalized Upwind Navier Stokes Code

Tutorial Page


8. WHAT TO DO WHEN THE CODE DOESN'T WORK

Here are some things that I've found useful when confronted with a case that will not run as I think. They should help to isolate the problem so we can find it quickly.

  1. What gas model are you using (that is, to what is igas set?) If the flowfield incompressible, can you get the case to run for low Mach number compressible single-species? If the case is multi-species, can you set it to the same properties as a single-species case and run that? If it does not run with variable properties, multi-species will it run constant properties? This will help isolate whether the problem originates because of a particular gas model or whether it is something else.
  2. What are the Reynolds number and the Mach numbers of the flowfield? Is it reasonable to expect a steady solution for the Reynolds numbers that you're running? This is important when you have objects where shedding is prone to occur. An example of this is the cylinder case. If the case is run with a Reynolds number above 40, it will try to shed. Depending on the strength of the vorticies and their proximity to the outflow boundary conditions, the vorticies can eventually cause problems at the outflow boundaries and eventually destroy the solution.
  3. What CFL's did you try? If you have highly stretched regions, did you try a max-CFL (itime=1) definition instead of a min-CFL condition? The diagonalized scheme is sensitive in highly stretched regions, so this might cause problems. Generally for max-CFL, you can run a CFL from one to three, but your convergence will probably be poor because of the extremely small time steps in the stretched regions.
  4. What type of preconditioning are you using? Do you have stagnation regions in the flow? If so, is the vel variable in input.dat set to a 'free stream' value. This is important for airfoils and cylinders. Usually you can set inviscid and viscous preconditioning on and forget about them.
  5. What order accuracy are you running? Are you running with TVD or not. TVD can cause problems if you are trying to converge to machine accuracy.
  6. How are you initializing your flowfield? For simple cases, like airfoils and cylinders, the flow can usually be initialized with a u-velocity set to the inflow velocity. However, for cases with large area changes between the inlet and the exit (such as a backstep), it works better to set the initial velocity at a small value and let the flow push through from the inlet. Of course, if you know an approximate solution to the flowfield, then you can write out this solution to a duns.qinit file (in plot3d format) and initialize the flow this way.
  7. I don't know what to tell people about reactions. If you find something that works, let me know :-)


Next Previous Contents