[FLASH-USERS] Negative/zero densities and internal energies after filling gc

Klaus Weide klaus at flash.uchicago.edu
Wed Apr 8 15:24:22 EDT 2009


On Wed, 8 Apr 2009, Seyit Hocuk wrote:

> Hi community,
>
> I've switched to Flash3.1.1a (from version 2.5),

Congratulations!

> but when I try to run my 
> setup, comparable to the Jeans setup, I encounter problems. If I am running 
> without cooling and with a uniform grid (lref_max=lref_min), then everything 
> seems ok. However, if I add the cooling module OR I have adaptive refinement, 
> zero or negative densities/internal energies appear (or lower than the 
> "small" values). These cause the refinement to be messed up and of course 
> leads to crashes. The error outpusts are shown below. From there, I notice 
> that the error might come from guard cell filling.
>
> I test the standard Jeans setup and the same problems occur.
> Just changing and adding in flash.par:
> lrefine_max = 5
> refine_cutoff_1 = 1.0

I have run the Jeans problem from FLASH 3.1.1 with your runtime parameter 
modifications, but could not reproduce any failures.

Perhaps you have made some other changes to the code?

I was also using an Intel compiler on CentOS.


> On several occasions I have checked the Eos_wrapped.F90 file and found the 
> location where it might go wrong;
> just before reading solnData eint/dens was ok, but after this the values are 
> crazy. Btw., I don't use massFractions ad haven't implemented Multispecies 
> and no species are initiated.
>
>       eosData(pres+1:pres+vecLen) = &
>            solnData(PRES_VAR,range(LOW,IAXIS):range(HIGH,IAXIS),j,k)
>       eosData(dens+1:dens+vecLen) = &
>            solnData(DENS_VAR,range(LOW,IAXIS):range(HIGH,IAXIS),j,k)
>       eosData(temp+1:temp+vecLen) = &
>            solnData(TEMP_VAR,range(LOW,IAXIS):range(HIGH,IAXIS),j,k)
>       eosData(gamc+1:gamc+vecLen) = &
>            solnData(GAMC_VAR,range(LOW,IAXIS):range(HIGH,IAXIS),j,k)
>       eosData(eint+1:eint+vecLen) = energyInternal(1:vecLen)
>
>
>       call 
> Eos(mode,vecLen,eosData)!,massFraction)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Make sure your code has

     use Eos_interface, ONLY: Eos

in any functions and subroutines that call Eos. This is 
particularly necessary for the Eos subroutine because 
Eos has optional arguments.



Klaus



More information about the flash-users mailing list