[FLASH-USERS] inconsistent grid state, missing neighbor errors

Klaus Weide klaus at flash.uchicago.edu
Mon Mar 8 19:09:53 EST 2021


On Sun, 7 Mar 2021, Maksim Kozlov wrote:

> Dear Friends,
> I am experimenting with SodStep in cylindrical geometry. I run the
> following setup
> ./setup SodStep -auto -2d -geometry=cylindrical
> When I change initial conditions and domain to ones shown in without.pdf
> file
> (sim_rhoLeft = 0.125
> sim_rhoRight = 1.
> sim_pLeft = 0.1
> sim_pRight = 1.
> sim_uLeft = 0.
> sim_uRight = 0.)
> everything works just fine. However when I further change initial
> conditions adding following lines
>          if ((yy < 0.188).or.(yy > 0.812)) then
>               rhoZone = sim_rhoLeft
>               presZone = sim_pLeft
>             endif
> to  Simulation_initBlock.F90 (shown in with.pdf) simulation starts to work
> fine but after first mesh refinement I receive "inconsistent grid state"
> and "missing neighbor" errors after which code aborts (please see sod.log).

Hi Maksim,

You have provided an interesting report about problems with the SodStep 
setup, but unfortunately some information is missing that would be useful 
in understanding your problems.

The code should have produced some messages with additional details 
(about the "missing neighbors") before aborting, although not written to 
the log file; it would be useful to see those details.

It appears that you have modified the SodStep problem beyond changing the 
geometry to "cylindrical" (and changes necessary because of that, in 
particular of xl_boundary_type) and beyond the change in the initial 
condition that you have described.

You have changed runtime parameter NblockY (but not NblockY, and not the 
domain limits), so that you end up with non-square blocks and, since NXB 
and NYB are still equal, non-square cells. This is not recommended; it is 
certainly not a configuration that is well tested.

It also appears that have modified the Simulation_defineDomain 
implementation.

It would be interesting to see the appearance of the *last* ("forced") 
plot file - ideally with block boundaries shown - rather than just the 
initial condition.



The SodStep setup is a variant of the Sod problem that is intended to 
demonstrate the 'Simulation_defineDomain' mechanism for imposing internal 
boundaries. However, for most practical purposes that mechanism has been
superseded by the BDRY_VAR mechanism for internal boundaries, which is 
more flexible, and also better supported and tested.

In particular, the 'Simulation_defineDomain' has probably had little
testing with geometries other than Cartesian. Additionally, the SodStep
problem may require some tweaks in order to function properly for other
Grid configurations than the arrangements of 4 by 4 root blocks provided
by the default runtime parameters.



If at this point you still want to explore the Simulation_defineDomain 
mechanism with the SodStep problem, here are some suggestions:

* Does it work with sim_stepInDomain     = .FALSE. ?

* Does it work with NblockX == NblockY ?

* Does it work with Cartesian geometry (but otherwise
  your configuration and boundary conditions)?

* Does it work with the original 'Simulation_defineDomain.F90' ?

* Try setting the runtime parameter use_reduced_orrery to .FALSE.

* Try modifying the definition and runtime parameter (from SodStep/Config)

  PPDEFINE NBOUNDARIES 6
  D gr_pmrpNboundaries sets value for PARAMESH runtime parameter nboundaries
  PARAMETER gr_pmrpNboundaries INTEGER CONSTANT 6

  (Perhaps a larger number is needed if there is more than one "boundary blocks").)
   
Klaus



More information about the flash-users mailing list