[FLASH-USERS] 3D Spherical errors (guard-cell variables zero)

Luke Zoltan Kelley lkelley at cfa.harvard.edu
Sun Jul 6 12:06:54 EDT 2014


Hello flash-users!

I'm new to FLASH and trying to convert a simulation from cartesian to (3D) spherical, but I'm running into some errors.  If anyone has had recent success using 3D spherical, I would be very appreciative of any tips they had, or issues they overcame.  In particular, I'm getting a warning from source/Grid/GridMain/paramesh/paramesh4/gr_sanitizeDataAfterInterp.F90 that my guard-cells aren't being set correctly:


WARNING after gc filling: min. unk(DENS_VAR)=0.000000000000000000000          PE=0     block=1                         type=2                               
16   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
15   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
14   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
13   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
12  0.10E-18 0.63E-01 0.63E-01 0.62E-01 0.62E-01 0.63E-01 0.63E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
11  0.10E-18 0.63E-01 0.62E-01 0.63E-01 0.63E-01 0.62E-01 0.63E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
10  0.10E-18 0.62E-01 0.62E-01 0.63E-01 0.63E-01 0.62E-01 0.62E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
 9  0.10E-18 0.63E-01 0.63E-01 0.62E-01 0.62E-01 0.63E-01 0.63E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
 8  0.10E-18 0.62E-01 0.63E-01 0.63E-01 0.63E-01 0.63E-01 0.62E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
 7  0.10E-18 0.63E-01 0.62E-01 0.62E-01 0.62E-01 0.62E-01 0.63E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
 6  0.10E-18 0.62E-01 0.63E-01 0.62E-01 0.62E-01 0.63E-01 0.62E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
 5  0.10E-18 0.62E-01 0.63E-01 0.63E-01 0.63E-01 0.63E-01 0.62E-01 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18 0.10E-18
 4   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
 3   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
 2   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    
 1   0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0      0.0   0.0      0.0      0.0    


These warnings are given for DENS_VAR, ENER_VAR, EINT_VAR and all blocks.
(presumably) for this reason I'm getting arithmetic exceptions when source/physics/Eos/EosMain/Gamma/eos_idealGamma.F90 tries to divide by the (zero) densities, the backtrace I get is:


Program received signal EXC_ARITHMETIC, Arithmetic exception.
0x000000010024cf6e in eos_idealgamma_ (mode=103, veclen=8, eosdata=(), vecbegin=Cannot access memory at address 0x0
) at eos_idealGamma.F90:341
341	                                   eosData(dens+ilo:dens+ihi)
(gdb) bt
#0  0x000000010024cf6e in eos_idealgamma_ (mode=103, veclen=8, eosdata=(), vecbegin=Cannot access memory at address 0x0
) at eos_idealGamma.F90:341
#1  0x000000010001149b in eos_ (mode=103, veclen=8, eosdata=(), massfrac=(), mask=(.FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., .FALSE.), vecbegin=Cannot access memory at address 0x0
) at Eos.F90:265
#2  0x000000010001edea in eos_wrapped_ (mode=103, range=(( 5, 12) ( 1, 4) ( 1, 1) ), blockid=1, griddatastruct=Cannot access memory at address 0x0
) at Eos_wrapped.F90:220
#3  0x0000000100019b15 in complexskipping.1886 () at Eos_guardCells.F90:43
#4  0x000000010001afd8 in eos_guardcells_ (corners=.TRUE., layers=(4, 4, 4), skipsrl=.TRUE.) at Eos_guardCells.F90:120
#5  0x00000001000322d7 in grid_fillguardcells_ (griddatastruct=380, idir=-1, minlayers=Cannot access memory at address 0x0
) at Grid_fillGuardCells.F90:482
#6  0x000000010006340e in grid_markrefinederefine_ () at Grid_markRefineDerefine.F90:98
#7  0x000000010029eec2 in gr_expanddomain_ (particlesinitialized=.FALSE.) at gr_expandDomain.F90:212
#8  0x0000000100061385 in grid_initdomain_ (restart=.FALSE., particlesinitialized=.FALSE.) at Grid_initDomain.F90:98
#9  0x000000010000d405 in driver_initflash_ () at Driver_initFlash.F90:156
#10 0x000000010001f19c in flash () at Flash.F90:49
#11 0x000000010001f20e in main (argc=1, argv=0x7fff5fbff870 '/Users/lzkelley/Applications/flash/flash4.2.2/object_starwind/flash4\000') at Flash.F90:43


In my Simulation_initBlock.F90, I am looping over the guard-cells and setting all densities to non-zero values --- if I print out the densities during the initialization loop I get the appropriate densities from i,j,k = {1,1,1} up to {16,16,16} --- so it seems like the guard-cells are being overwritten to zero...
This does not occur in 3D cartesian, and also does *not* occur when I run SodSpherical (which seems to work properly, strangely enough).

I believe I've also found a bug in source/physics/Hydro/HydroMain/split/PPM/PPMKernel/avisco.F90:416, when sweeping along "y" (theta) in 3D spherical the denominator [ 'sin(xl(i))' ] is allowed to be zero and causes arithmetic exceptions.

Any help on this particular problem, or on getting spherical running in general would be greatly appreciated!
Thanks,
Luke


More information about the flash-users mailing list