diff --git a/arraycontext/context.py b/arraycontext/context.py index 838f9692bd261cc4c7e5e593fc941f3346a18976..495dcff5b9907eda5216f67e00509a01483c0f3c 100644 --- a/arraycontext/context.py +++ b/arraycontext/context.py @@ -103,7 +103,7 @@ THE SOFTWARE. """ from typing import Sequence, Union -from abc import ABC, abstractmethod +from abc import ABC, abstractmethod, abstractproperty import numpy as np from pytools import memoize_method @@ -349,6 +349,11 @@ class ArrayContext(ABC): "setup-only" array context "leaks" into the application. """ + # 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 93610306f70ab10aa7e0ebf9a4a153e6850a5453..6d8cf758d2792fc9ef4e3baff19e6ce19584d02e 100644 --- a/arraycontext/impl/pyopencl.py +++ b/arraycontext/impl/pyopencl.py @@ -436,6 +436,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