[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