diff --git a/hysop/backend/device/opencl/operator/spatial_filtering.py b/hysop/backend/device/opencl/operator/spatial_filtering.py index 2b191691719c2fceac5197fa2324216a9a172c97..b21e1cf15c174872176ec9e8d2a93c654c96f241 100644 --- a/hysop/backend/device/opencl/operator/spatial_filtering.py +++ b/hysop/backend/device/opencl/operator/spatial_filtering.py @@ -74,6 +74,7 @@ class OpenClSubgridLowpassFilter(SubgridLowpassFilterBase, OpenClSymbolic): @op_apply def apply(self, **kwds): evt = self.execute_kernels() + self.dFout.exchange_ghosts(queue=self.cl_env.default_queue) class OpenClSpectralLowpassFilter(SpectralLowpassFilterBase, OpenClOperator): diff --git a/hysop/operator/base/spatial_filtering.py b/hysop/operator/base/spatial_filtering.py index f2b25ee46e276c8bf8bf2f873191b4c5f398b9d7..51961f77d5e3d80bcfe419b8afa5ce49a075d33e 100644 --- a/hysop/operator/base/spatial_filtering.py +++ b/hysop/operator/base/spatial_filtering.py @@ -341,7 +341,7 @@ class SubgridLowpassFilterBase(LowpassFilterBase): super(SubgridLowpassFilterBase, self).discretize() dFin, dFout = self.dFin, self.dFout - iratio = dFin.compute_resolution / dFout.compute_resolution + iratio = self.dFin.topology_state.transposed(self.iratio) view = tuple(slice(None,None,r) for r in iratio) fin = dFin.compute_buffers[0][view]