diff --git a/arraycontext/context.py b/arraycontext/context.py index d787471b1f05fd92b6196cbd236f06eddb6e4a57..08597876ce07d2857b86ef904282fc062afa14b1 100644 --- a/arraycontext/context.py +++ b/arraycontext/context.py @@ -103,7 +103,7 @@ THE SOFTWARE. """ from typing import Sequence, Union, Callable, Any -from abc import ABC, abstractmethod +from abc import ABC, abstractmethod, abstractproperty import numpy as np from pytools import memoize_method @@ -370,6 +370,11 @@ class ArrayContext(ABC): """ return f + # undocumented for now + @abstractproperty + def permits_inplace_modification(self): + pass + # }}} # vim: foldmethod=marker diff --git a/arraycontext/impl/pyopencl.py b/arraycontext/impl/pyopencl.py index 4de6d0dbaa947a54e4da62a15eec1b65b527cbf5..67374ca11ad66ca69cddcd2fc9b56447369a77e7 100644 --- a/arraycontext/impl/pyopencl.py +++ b/arraycontext/impl/pyopencl.py @@ -423,6 +423,9 @@ class PyOpenCLArrayContext(ArrayContext): def clone(self): return type(self)(self.queue, self.allocator, self._wait_event_queue_length) + def permits_inplace_modification(self): + return True + # }}} # vim: foldmethod=marker