[FLASH-USERS] Ionization simulation error

Klaus Weide klaus at flash.uchicago.edu
Fri Apr 28 13:03:18 EDT 2017


On Thu, 27 Apr 2017, Michiel Bustraan wrote:

> Dear all,
> 
> 
> I've been trying to integrate ionization into my simulation, but am running into an error early in the run.
> 
> 
> I looked at the NeiTest problem, which works fine, and added what I thought was necessary to the various setup files in my simulation.

The NeiTest problem uses a special version of hy_ppm_updateSoln.F90 (yes, 
this is split PPM hydro) which actually suppresses the updating of 
momenta and energy. (This appears to enforce a stationary flow.)
Our regular code testing of the Ionize unit is limited to this setup.

The NeiTest problem may not actually work without this "cheating".

Maybe there are people using the Ionize unit for real, hopefully they can 
help you further.

> I added the following to the Config:
> 
> 
> REQUIRES physics/Eos/EosMain/Multigamma
> REQUIRES Simulation/SimulationComposition/Ionize
> REQUIRES physics/sourceTerms/Ionize
> 
> SPECIES he TO 2
> SPECIES c TO 6
> SPECIES n TO 7
> #SPECIES o TO 8
> #SPECIES ne TO 10
> #SPECIES mg TO 12
> #SPECIES si TO 14
> #SPECIES s TO 16
> #SPECIES ar TO 18
> #SPECIES ca TO 20
> #SPECIES fe TO 26
> #SPECIES ni TO 28
> 
> 
> Some species were commented out

It's not clear to me that the result is still a valid configuration.

> because I received an error regarding 
> file size and memory, and that seemed to be fixed by removing some 
> species and reducing the checkpoint file size.?

Yes, the full configuration requires A LOT of storage for (mass fraction) 
variables.

Maybe you need some other approach for dealing with ionization that does 
not require representing each ionization level of each element as a 
mass fraction.

> The setup was as follows, and is fairly standard:
> 
> setup.py MySimulation -2d -auto +spherical -objdir balaramasim +parallelio -maxblocks=10000 +pm4dev
> 
> 
> The logfile is attached, and the error there is:
> 
>  [ 04-26-2017  17:16:36.447 ] step: n=198 t=6.445519E+03 dt=2.535561E+01
>  [ 04-26-2017  17:16:41.217 ] [DRIVER_ABORT]: Driver_abort() called by PE           0
>  [ 04-26-2017  17:16:41.230 ] abort_message: error in routine neimn: wrong sum of pop. fraction
> 
> In the actual simulation, there was mention of elsum:
> Element I.D.:            1  elsum =  0.60024578323989231
>  error in routine neimn: wrong sum of population fraction
> 
> In the initBlock, there was an existing section that deals with fractions, and it divided fractions evenly.
> Meaning the various ionization variables (elec,h,he,he2, and so on) were all equal to 0.05 at the start of the simulation.

Make sure that all mass fractions add up to 1, in each cell.
This has to be true not just after Simulation_initBlock, but after each 
time step.

Hoe this helps somewhat.

Klaus



More information about the flash-users mailing list