CFL estimate currently incorrect.

Issue #198 new
David Dickinson created an issue

Currently in the nonlinear terms module we estimate the limiting timestep as follows.

  1. Find the maximum velocity in x and y = max_vel_x, max_vel_y
  2. Find the cfl limit in x and y, e.g. dt_cfl_x = dx / max_vel_x and dt_cfl_y = dy / max_vel_y
  3. Set the limiting timestep based on min(dt_cfl_x, dt_cfl_y)

This has treats the system as 1d but in a 2D system the CFL limit should consider the sum of the 1D parameters rather than simply taking the single most restrictive. In other words we should use dt_cfl = 1/ [max(v_x)/dx + max(v_y)/dy]. This is more restrictive than simply taking the most restrictive 1D limit.

The solution should be to track max(v_x) and max(v_y) separately and form the cfl limit from the sum of the 2d limits.

Comments (1)

  1. David Dickinson reporter
    • edited description

    Rewriting to correct initial mistakes in description of what is done.

  2. Log in to comment