[FLASH-USERS] dt not positive in MHD simulations

Klaus Weide klaus at flash.uchicago.edu
Tue Jan 3 16:29:31 EST 2017


On Thu, 29 Dec 2016, Slavin, Jonathan wrote:

> Hi all,
> 
> I've been doing MHD simulations involving shocks in 2D (cylindrical
> symmetry) and have been occasionally running into cases where the runs
> aborts with:
>  dtCheck=  0.000000000000000E+000
>  DRIVER_ABORT: [Hydro]: Computed dt is not positive! Aborting!
> 
> I believe that this is occurring for cells where the plasma beta, i.e.
> Pthermal/Pmagnetic, is very small.  These cells are not near any
> boundaries, so that doesn't seem to be the problem.  I do see that the
> dt_hydro is dropping quickly just before, and drops below the dtmin that I
> set.  So it's likely that the proximate cause is the violation of the
> courant condition in the sense that the timestep is too long given the
> signal speed.  

Hello Jon,

Just a few ideas that may help you explore this further.

First - you likely already have thought about this or done this...
does the problem go away (reliably) if you set runtime parameter 'cfl' to 
a low enough value?  (Is there such a cfl value at all, even if it is 
unpracticably low?)

IF you can figure out such a lowCFL value AND some local conditions under 
which such a lowered CFL must be applied, and can implement a simple test 
for those local conditions, then you MIGHT be able to use the 'local CFL'
feature to avoid the problem without too much degeneration of performance:
Declare a CFL variable (CFL_VAR), and set its value in each evolution step
(maybe from within Simulation_adjustEvolution?) to a locally 'safe' value 
where needed.

The following underdocumented feature may also help you analyze your 
situation:

Set dr_dtMinContinue to a small value (but > 0). FLASH will exit when it 
computes a timestep (still positive) below this value. Set 
dr_dtMinBelowAction = 1 for "write checkpoint then abort", so
you automatically get a checkpoint file which you can then examine and
which might reveal details of what went wrong in some specific location.


> Note also that the simulations that I'm doing include cooling, which
> decreases the thermal pressure.  Some parameters that I've set, partially
> based on information in the Flash User's Guide are:
> killdivb = .true.
> flux_correct = .true.
> E_modification = .true.
> energyFix = .true.
> shockLowerCFL = .true.
> RiemannSolver = "HYBRID"
> prolMethod = "BALSARA_PROL"
> 
> I'm wondering if anyone else has run into problems like this with MHD runs
> and if anyone has suggestions for getting around this.  There are many
> possible parameter settings and it could be that I just need to find the
> best ones for my problem.

I hope others can come forward with some more advice regarding specific
runtime parameters to change.

Klaus



More information about the flash-users mailing list