diff --git a/cmake/codegen-requirements.txt b/cmake/codegen-requirements.txt index 74c8bc093037545fc5c7b97cf4d58419594a0c2b..15fffb4ef00e73c7effbc4b7a1eb0ebbf1482905 100644 --- a/cmake/codegen-requirements.txt +++ b/cmake/codegen-requirements.txt @@ -4,5 +4,5 @@ git+https://i10git.cs.fau.de/pycodegen/pystencils.git@v2.0-dev # lbmpy: feature branch for pystencils-2.0 compatibility git+https://i10git.cs.fau.de/pycodegen/lbmpy.git@fhennig/pystencils2.0-compat -# pystencils-sfg -git+https://i10git.cs.fau.de/pycodegen/pystencils-sfg.git@fhennig/fix-base-classes-printing +# pystencils-sfg: (development branch with updated CMake modules and cpptypes) +git+https://i10git.cs.fau.de/pycodegen/pystencils-sfg.git@master diff --git a/src/sfg_walberla/reflection.py b/src/sfg_walberla/reflection.py index 1b8d2021d8381bf8d5cf8a8430f8e2d33d177779..13e422d94cf2329d339a23077a51a13553928652 100644 --- a/src/sfg_walberla/reflection.py +++ b/src/sfg_walberla/reflection.py @@ -5,9 +5,14 @@ from pystencilssfg.ir import SfgClass class GeneratedClassWrapperBase(CppClass): _class: SfgClass + _namespace: str | None def __init_subclass__(cls) -> None: - typename = cls._class.fqname + typename = ( + f"{cls._namespace}::{cls._class.class_name}" + if cls._namespace is not None + else cls._class.class_name + ) cls.template = cpptype(typename) def ctor(self, **kwargs) -> AugExpr: @@ -17,7 +22,7 @@ class GeneratedClassWrapperBase(CppClass): break else: raise Exception( - f"No constructor of class {self._class.fqname} matches the argument names {kwargs.keys()}" + f"No constructor of class {self._class.class_name} matches the argument names {kwargs.keys()}" ) ctor_args = [kwargs[name] for name in ctor_argnames] diff --git a/src/sfg_walberla/sweep.py b/src/sfg_walberla/sweep.py index 6da15adddbdb5f62884ceca7925e7608bfaa4fe5..a79d133f4381deea94d06e96ff57c33531e73e26 100644 --- a/src/sfg_walberla/sweep.py +++ b/src/sfg_walberla/sweep.py @@ -618,13 +618,12 @@ class Sweep(CustomGenerator): *shadows_cache.render(sfg), ) - from pystencilssfg.ir import SfgClass - gen_class = sfg._cursor.get_entity(self._name) - assert isinstance(gen_class, SfgClass) + gen_class = sfg.context.get_class(self._name) assert gen_class is not None class GenClassWrapper(GeneratedClassWrapperBase): _class = gen_class + _namespace = sfg.context.fully_qualified_namespace self._generated_class = GenClassWrapper