diff --git a/sumpy/kernel.py b/sumpy/kernel.py index e1e8c6717269edb4d2ffb7e88a694b541ab76a18..becc99c015af6b99df5ecd9b1a223830d2761034 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -244,7 +244,8 @@ class ExpressionKernel(Kernel): self.is_complex_valued = is_complex_valued def __getinitargs__(self): - return (self._dim,) + return (self._dim, self.expression, self.scaling, + self.is_complex_valued) def __repr__(self): if self._dim is not None: @@ -282,6 +283,16 @@ class ExpressionKernel(Kernel): from sumpy.symbolic import PymbolicToSympyMapperWithSymbols return PymbolicToSympyMapperWithSymbols()(self.scaling) + def update_persistent_hash(self, key_hash, key_builder): + key_hash.update(type(self).__name__.encode("utf8")) + for name, value in zip(self.init_arg_names, self.__getinitargs__()): + if name in ["expression", "scaling"]: + from pymbolic.mapper.persistent_hash import ( + PersistentHashWalkMapper as PersistentHashWalkMapper) + PersistentHashWalkMapper(key_hash)(value) + else: + key_builder.rec(key_hash, value) + mapper_method = "map_expression_kernel" diff --git a/sumpy/version.py b/sumpy/version.py index 5cc1934ddcfbfd8b5e3925d887d5f6f321aa4447..a19f3ddac1540cf069923ed59355c57387c7a5a7 100644 --- a/sumpy/version.py +++ b/sumpy/version.py @@ -25,4 +25,4 @@ VERSION = (2016, 1) VERSION_STATUS = "beta1" VERSION_TEXT = ".".join(str(x) for x in VERSION) + VERSION_STATUS -KERNEL_VERSION = 7 +KERNEL_VERSION = 8