On Thu, Oct 20, 2016 at 10:58 AM, Slavin, Jonathan <jslavin@cfa.harvard.edu> wrote:
Hi all,

I have a simulation on a 3D cartesian grid and when trying to get surfaces of various types I keep getting the error message:

RuntimeError: Error: yt attempted to read outside the boundaries of a non-periodic domain along dimension 0.
Region left edge = -1.157125e+19 code_length, Region right edge = 1.7356875e+19 code_length
Dataset left edge = 0.0 code_length, Dataset right edge = 9.257e+19 code_length

This commonly happens when trying to compute ghost cells up to the domain boundary. Two possible solutions are to load a smaller region that does not border the edge or override the periodicity for this dataset.

​​So, I don't think I should override the periodicity for the dataset, since it is decidedly not periodic.  I could load a smaller region, I suppose, but not without significant effort, since I really want to include the volume out to some radial distance from the lower left corner (0,0,0).  I would need to define some slightly smaller octant, I guess.  Anyway, shouldn't there be some way to specify to yt that it should calculate ghost zones via some given boundary condition?  That is, if it really even needs to use ghost zones (which I'm not sure why it does).

Yes, it should be possible to fill in ghost zones at domain boundaries assuming some non-periodic boundary conditions, but it has not yet been implemented. Adding support for filling in ghost zones at non-periodic domain boundaries would be an excellent improvement. Right now myself and a number of others are working on improving support for particle codes, so that means improvements like this that would mostly benefit grid codes are not prioritized at the moment. It's definitely on our long-term roadmap, though. If you would like to work on improving the situation here (either by making contributions yourself or funding someone to do so) that would be awesome, and I would be happy to discuss design approaches.

The isocontour machinery does need access to ghost zones, since the isocontours are generated using data interpolated to the cell faces, so we need to generate ghost zones beyond the domain boundaries if you want to access vertex centered data at the domain boundary.

In practice, "faking" periodic boundary conditions does work ok for most use cases. I admit that relying on this has been a crutch that has allowed us to avoid fixing this issue, despite its perniciousness.


Jonathan D. Slavin                 Harvard-Smithsonian CfA
jslavin@cfa.harvard.edu       60 Garden Street, MS 83
phone: (617) 496-7981       Cambridge, MA 02138-1516
cell: (781) 363-0035             USA

yt-users mailing list