diff --git a/pystencils/kernelcreation.py b/pystencils/kernelcreation.py index 73b45b844d6a35823d806d966474048b9b676e8d..43b239ef592e0ebf77d759c5321d0e153562e546 100644 --- a/pystencils/kernelcreation.py +++ b/pystencils/kernelcreation.py @@ -130,6 +130,7 @@ def create_kernel(assignments, if use_auto_for_assignments: for a in ast.atoms(SympyAssignment): a.use_auto = True + ast.assignments = assignments return ast @@ -184,6 +185,7 @@ def create_indexed_kernel(assignments, assignments = [assignments] elif isinstance(assignments, AssignmentCollection): assignments = assignments.all_assignments + if target == 'cpu': from pystencils.cpu import create_indexed_kernel from pystencils.cpu import add_openmp @@ -191,7 +193,6 @@ def create_indexed_kernel(assignments, coordinate_names=coordinate_names) if cpu_openmp: add_openmp(ast, num_threads=cpu_openmp) - return ast elif target == 'llvm': raise NotImplementedError("Indexed kernels are not yet supported in LLVM backend") elif target == 'gpu' or target == 'opencl': @@ -209,10 +210,12 @@ def create_indexed_kernel(assignments, ast.compile = functools.partial(make_python_function, ast, opencl_queue, opencl_ctx) ast._target = 'opencl' ast._backend = 'opencl' - return ast else: raise ValueError("Unknown target %s. Has to be either 'cpu' or 'gpu'" % (target,)) + ast.assignments = assignments + return ast + def create_staggered_kernel(assignments, target='cpu', gpu_exclusive_conditions=False, **kwargs): """Kernel that updates a staggered field.