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

Luke Zoltan Kelley lkelley at cfa.harvard.edu
Thu Jul 10 10:49:32 EDT 2014


It turns out the problem was boundary conditions in the theta ('y') direction.  I confused the theta and phi axes, and was using 'periodic' boundary conditions for theta --- which caused my errors.

A warning/error message that periodic boundary conditions are not allowed/supported for the y-axis, in spherical coordinates might be extremely helpful for anyone who runs into the same problems.

Cheers,
Luke



On Jul 6, 2014, at 12:06 PM, Luke Zoltan Kelley <lkelley at cfa.harvard.edu> wrote:

> 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