Hi all,

I have been trying to plot derived field of vorticity and the computation domain is set to be periodic. 
It always does not work though I tried to adjust different plotting domains. 
Meanwhile it can plot field figures of primitive quantities.

Here is part of error info:
---------ERROR INFO-----------------------------------------------------------------------------------------
P001 yt : [INFO     ] 2021-10-06 19:50:59,037 Parameters: current_time              = 3e-06
P001 yt : [INFO     ] 2021-10-06 19:50:59,037 Parameters: domain_dimensions         = [1024  128    1]
P001 yt : [INFO     ] 2021-10-06 19:50:59,037 Parameters: domain_left_edge          = [0. 0. 0.]
P001 yt : [INFO     ] 2021-10-06 19:50:59,038 Parameters: domain_right_edge         = [0.032 0.004 1.   ]
command in line argument
loading data
  File "vorfield.py", line 76, in <module>
    slc = yt.SlicePlot(ds, 'z', 'vort_z', width=((0.016,'cm'),(0.002,'cm')),center=([0.016,0.002,0.],'cm'))
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/visualization/plot_window.py", line 1986, in SlicePlot
    return AxisAlignedSlicePlot(ds, normal, fields, *args, **kwargs)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/visualization/plot_window.py", line 1282, in __init__
    slc.get_data(fields)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 1583, in get_data
    self._generate_fields(fields_to_generate)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 1603, in _generate_fields
    fd = self._generate_field(field)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 293, in _generate_field
    tr = self._generate_fluid_field(field)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 311, in _generate_fluid_field
    rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 341, in _generate_spatial_fluid
    gz[field][ngz:-ngz, ngz:-ngz, ngz:-ngz],
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 256, in __getitem__
    self.get_data(f)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/construction_data_containers.py", line 691, in get_data
    if len(fill) > 0: self._fill_fields(fill)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/construction_data_containers.py", line 1053, in _fill_fields
    for chunk in ls.data_source.chunks(fields, "io"):
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 1464, in chunks
    self.get_data() # Ensure we have built ourselves
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 1507, in get_data
    self.index._identify_base_chunk(self)
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/geometry/grid_geometry_handler.py", line 290, in _identify_base_chunk
    gi = dobj.selector.select_grids(self.grid_left_edge,
  File "/WORK/anaconde/envs/test/lib/python3.8/site-packages/yt/data_objects/data_containers.py", line 1459, in selector
    self._selector = sclass(self)
  File "yt/geometry/selection_routines.pyx", line 860, in yt.geometry.selection_routines.RegionSelector.__init__
RuntimeError: Error: yt attempted to read outside the boundaries of a non-periodic domain along dimension 2.
Region left edge = -1.25 code_length, Region right edge = 2.25 code_length
Dataset left edge = 0.0 code_length, Dataset right edge = 1.0 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.
---------ERROR INFO----------------------------------------------------------------------------------------

Here is part of python code
----------PYCODE---------------------------
### u,v means velocity(primitive quantities) in X,Y direction
### vort_z  means vorticity(derived quantity) in Z direnction

def vort_z_func(field, data):
     return (
         + data['boxlib', 'v_gradient_x']
         - data['boxlib', 'u_gradient_y']
                )

 u_gradient = ds.add_gradient_fields(("boxlib","u"))
 v_gradient = ds.add_gradient_fields(("boxlib","v"))
  
       derived_fields = [  # field name, units, displayname
                  ('vort_z',  '1 / cm', 'Vorticity in z direction'),
                           ]
       for name, unitstr, dispname in derived_fields:
            ds.add_field(
                    ('boxlib', name),
                    units = unitstr,
                    function = eval(name + '_func'),
                    sampling_type = 'cell',
                    display_name = dispname
                     )
  
        slc = yt.SlicePlot(ds, 'z', 'vort_z', width=((0.016,'cm'),(0.002,'cm')),center=([0.016,0.002,0.],'cm'))
----------PYCODE---------------------------

Thanks a lot!

Best Wishes,
He Yifeng
College of Engineering, Peking University