diff --git a/pytential/symbolic/compiler.py b/pytential/symbolic/compiler.py index ee4b81f27f05b8b0cb151d6ed3ec7c550600e345..d24b0a09d09080dd739417e4f33099473998b1aa 100644 --- a/pytential/symbolic/compiler.py +++ b/pytential/symbolic/compiler.py @@ -578,12 +578,12 @@ class OperatorCompiler(IdentityMapper): group = self.group_to_operators[self.op_group_features(expr)] names = [self.get_var_name() for op in group] - kernel_to_index = {} - kernels = [] - for op in group: - if op.kernel not in kernel_to_index: - kernel_to_index[op.kernel] = len(kernels) - kernels.append(op.kernel) + kernels = sorted( + set(op.kernel for op in group), + key=lambda kernel: repr(kernel)) + + kernel_to_index = dict( + (kernel, i) for i, kernel in enumerate(kernels)) from pytools import single_valued from sumpy.kernel import AxisTargetDerivativeRemover