[FLASH-USERS] Problem with Diffuse module
Klaus Weide
klaus at flash.uchicago.edu
Tue Nov 28 17:18:38 EST 2017
On Tue, 28 Nov 2017, ascenzi wrote:
> Nevertheless at a certain point the simulation stops after many warning
> messages like this
>
> [gr_hypreSolve]: Nonconv./failure ierr=0, component=0, converged=F, |initial
> RHS|^2=1.5905+100, num_iterations=500, final_res_norm=5.58312351294
>
> (similar to those of the older post Ernesto linked me)
You should make a plot at this point, to see what is going on.
>
> then I had the following error message
>
> DRIVER_ABORT: [Diffuse]: computed dt is not positive! Aborting!
>
> Driver_abort called. See log file for details.
> Error message is [Diffuse]: computed dt is not positive! Aborting!
> Calling MPI_Abort() for shutdown in 2 seconds!
>
> due to the fact that dt_diffuse dropped very fast (despite the fact that
> dt_diff_factor = 1.E30).
I would expect that you also see extremely small dt_hydro timesteps
at this point.
> Is it possibile that this is due to the fact that the temperature becomes too
> high (about 10^12 K)?
Yes, quite possible - is that a physically meaningful value?
It seems you are combining several tricky elements in your simulation:
1. user-defined boundary conditions (lots can go wrong here if not careful),
2. diffusion solve, with extreme values at a boundary,
3. user-defined conductivity,
4. spherical coordinates.
In your grid boundary condition, you should make sure that the guard cells
are filled in a thermodynamically consistent manner. Call Eos if
necessary.
How are you setting the boundary conditions for the diffusion solver?
Are they consistent with the grid boundary conditions used by Hydro etc.?
> Moreover a further question: is there a simple way to switch on the diffusion
> only after a user-defined time or switch it off in a specific region of the
> domain regardless to the value of the density in that region ?
As a function of time, yes. I assume you have already written a modified
"Conductivity.F90" (and maybe "Conductivity_fullState.F90"). You can
get the current simulation time (maybe by calling Driver_getSimTime),
and set the returned conductivity and/or diffusivity to 0 (or close)
to turn off conduction.
Klaus
More information about the flash-users
mailing list