[FLASH-USERS] courant factor

Riccardo Ciolfi riccardo.ciolfi at oapd.inaf.it
Tue May 2 11:26:16 EDT 2017


 Dear Robert and Klaus,

I am now able to run with cfl=0.8 also in 2D. I solved the problem following some of the suggestions: I used shockLowerCFL=.TRUE. and tstep_change_factor=1.4 (instead of 2). 
By looking at the location indicated in parenthesis in stdout (giving the point imposing the dt to be used), I realized that the problem is not along the axis (as I suspected since I am using cylindrical coordinates and axisymmetry) but rather on the spherical front of the expanding shell of matter.

Thank you very much! 

 Cheers, 
 Riccardo



----- Messaggio originale -----
Da: "Klaus Weide" <klaus at flash.uchicago.edu>
A: "Riccardo Ciolfi" <riccardo.ciolfi at oapd.inaf.it>
Cc: "Robert Fisher" <rfisher1 at umassd.edu>, flash-users at flash.uchicago.edu
Inviato: Venerdì, 28 aprile 2017 18:29:36
Oggetto: Re: [FLASH-USERS] courant factor

On Fri, 28 Apr 2017, Riccardo Ciolfi wrote:

>  Dear Robert and Klaus, 
> 
> thank you very much for you reply. 
> 
> First, I would like to ask a clarification: does "global" delta_t mean 
> that it is set the same in the entire block (but can still vary in 
> different blocks) or it is the same in the entire computational domain 
> of the simulation (i.e. in all the blocks)?

There is no subcycling within Hydro in FLASH, so all cells in all blocks 
are advance by the same time step.

> To answer your question, my setup is purely hydro (an initial ball of 
> matter in expansion, with a max expansion speed of 1e-4 c).
> In 1D it is a spherically simmetric expansion and cfl=0.8 is fine. In 2D 
> I use axisymmetry and cylindrical coordinates with reflective bounday 
> conditions on R_cyl=0 and outflow-type on R_cyl_max, z_min, and z_max.
> Could it be that the cfl is required very low close to the axis, thus 
> compromising the choice of delta_t for the entire domain?

Here are some ideas (some may have been mentioned by others already):

(I'll assume you are using HydroMain/unsplit/Hydro_Unsplit since that's 
the default in 4.4 and you haven't said otherwise.)

1. The standard output may have useful information that you have not 
considered. In particular, the numbers within parentheses give the 
coordinates of the (or a) cell that determines the time step.
This could give you a quick idea of where your problem lies, without even 
having to look at a plot file.

2. you may want to modify dtinit and tstep_change_factor (to let the time 
step grow more slowly at the beginning).

3. Maybe use shockLowerCFL = .TRUE.

4. Try using a location-dependent CFL value. To do that, just declare a 
VARIABLE named cfl in your Config, and initialize UNK(CFL_VAR,...) in 
Simulation_initBlock as desired. Your could, for example, set a low value 
of 0.1 close to the axis, and 0.8 elsewhere.
(Note: there will still be only one global time step - just the way it is 
computed can use a different factor in different cells.)

Klaus



More information about the flash-users mailing list