From eb1c83d6df066d35293920bda78b999df1b204a9 Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Wed, 5 Mar 2025 14:09:16 +0100 Subject: [PATCH] remove codegen.postprocessing --- src/walberla/codegen/__init__.py | 2 - src/walberla/codegen/postprocessing.py | 58 -------------------------- 2 files changed, 60 deletions(-) delete mode 100644 src/walberla/codegen/postprocessing.py diff --git a/src/walberla/codegen/__init__.py b/src/walberla/codegen/__init__.py index 50097ef..bf85090 100644 --- a/src/walberla/codegen/__init__.py +++ b/src/walberla/codegen/__init__.py @@ -1,5 +1,4 @@ from .api import real_t, Vector3, GhostLayerFieldPtr, glfield, IBlockPtr -from .postprocessing import CaptureToClass from .sweep import Sweep from .build_config import WalberlaBuildConfig @@ -9,7 +8,6 @@ __all__ = [ "GhostLayerFieldPtr", "glfield", "IBlockPtr", - "CaptureToClass", "Sweep", "WalberlaBuildConfig", ] diff --git a/src/walberla/codegen/postprocessing.py b/src/walberla/codegen/postprocessing.py deleted file mode 100644 index d4a911f..0000000 --- a/src/walberla/codegen/postprocessing.py +++ /dev/null @@ -1,58 +0,0 @@ -from typing import Iterable -import sympy as sp - -from pystencils.types import deconstify -from pystencilssfg.ir.postprocessing import SfgDeferredNode, PostProcessingContext -from pystencilssfg.ir import ( - SfgCallTreeNode, - SfgStatements, - SfgVisibility, - SfgVisibilityBlock, - SfgMemberVariable, - SfgSequence, - SfgConstructor, -) -from pystencilssfg.lang import AugExpr, SfgVar -from pystencilssfg.exceptions import SfgException - - -class CaptureToClass(SfgDeferredNode): - def __init__( - self, ignore: Iterable[str | SfgVar | AugExpr | sp.Symbol] = () - ) -> None: - self._ignore = set() - for ig in ignore: - if isinstance(ig, AugExpr): - self._ignore |= ig.depends - elif isinstance(ig, sp.Symbol): - self._ignore.add(ig.name) - else: - self._ignore.add(ig) - - def expand(self, ppc: PostProcessingContext) -> SfgCallTreeNode: - cls = ppc.enclosing_class - if cls is None: - raise SfgException("Cannot capture variables to class in a free function") - - statements: list[SfgStatements] = [] - captured: list[SfgVar] = [] - members_block = SfgVisibilityBlock(SfgVisibility.PRIVATE) - - for var in ppc.live_variables: - if not (var in self._ignore or var.name in self._ignore): - member = SfgMemberVariable(f"{var}_", deconstify(var.dtype)) - members_block.append_member(member) - captured.append(var) - statements.append( - SfgStatements(f"{var.dtype.c_string()} {var.name} {{ {member} }};", [var], []) - ) - - cls.append_visibility_block(members_block) - - constructor_block = SfgVisibilityBlock(SfgVisibility.PUBLIC) - constructor_block.append_member( - SfgConstructor(captured, [f"{var}_ {{ {var} }}" for var in captured]) - ) - cls.append_visibility_block(constructor_block) - - return SfgSequence(statements) -- GitLab