Skip to content

Commit 5770594

Browse files
committed
Fixing patches
1 parent 5f27d6e commit 5770594

2 files changed

Lines changed: 25 additions & 6 deletions

File tree

yt/data_objects/index_subobjects/grid_patch.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,14 @@ def smooth(self, *args, **kwargs):
356356
def particle_operation(self, *args, **kwargs):
357357
raise NotImplementedError
358358

359-
def deposit(self, positions, fields=None, method=None, kernel_name="cubic"):
359+
def deposit(
360+
self,
361+
positions,
362+
fields=None,
363+
method=None,
364+
kernel_name="cubic",
365+
vector_field=False,
366+
):
360367
# Here we perform our particle deposition.
361368
cls = getattr(particle_deposit, f"deposit_{method}", None)
362369
if cls is None:
@@ -365,10 +372,18 @@ def deposit(self, positions, fields=None, method=None, kernel_name="cubic"):
365372
# inside this is Fortran ordered because of the ordering in the
366373
# octree deposit routines, so we reverse it here to match the
367374
# convention there
368-
nvals = tuple(self.ActiveDimensions[::-1])
375+
369376
# append a dummy dimension because we are only depositing onto
370377
# one grid
371-
op = cls(nvals + (1,), kernel_name)
378+
nvals = tuple(self.ActiveDimensions[::-1]) + (1,)
379+
if vector_field:
380+
vec_size = fields[0].shape[-1] if fields else 1
381+
nvals = nvals + (vec_size,)
382+
else:
383+
vec_size = 1
384+
385+
op = cls(nvals, kernel_name)
386+
372387
op.initialize()
373388
if positions.size > 0:
374389
op.process_grid(self, positions, fields)
@@ -377,8 +392,12 @@ def deposit(self, positions, fields=None, method=None, kernel_name="cubic"):
377392
return
378393
# Fortran-ordered, so transpose.
379394
vals = vals.transpose()
380-
# squeeze dummy dimension we appended above
381-
return np.squeeze(vals, axis=0)
395+
# squeeze dummy dimension(s) we appended above
396+
if vector_field:
397+
new_shape = (vec_size, *self.ActiveDimensions)
398+
else:
399+
new_shape = self.ActiveDimensions
400+
return vals.reshape(new_shape)
382401

383402
def select_blocks(self, selector):
384403
mask = self._get_selector_mask(selector)

yt/data_objects/index_subobjects/octree_subset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def deposit(
182182
nz = self.nz
183183
nvals = (nz, nz, nz, (self.domain_ind >= 0).sum())
184184
if vector_field:
185-
vec_size = fields[0].shape[-1]
185+
vec_size = fields[0].shape[-1] if fields else 1
186186
nvals = nvals + (vec_size,)
187187

188188
if positions.shape[0] < 1:

0 commit comments

Comments
 (0)