From c2d11102f27fb93bc97459a77fc460db6cee8415 Mon Sep 17 00:00:00 2001
From: Ponsuganth Ilangovan Ponkumar Ilango
 <pponkumar@geophysik.uni-muenchen.de>
Date: Mon, 15 Jul 2024 13:33:27 +0200
Subject: [PATCH] Update generate.py to current version of hog

---
 generate/generate.py      | 31 ++++++++++++++++---------------
 generate/requirements.txt |  2 +-
 2 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/generate/generate.py b/generate/generate.py
index 936ed227..e55020df 100644
--- a/generate/generate.py
+++ b/generate/generate.py
@@ -355,13 +355,13 @@ def generate_operator(
             components_equal = False
 
     kernel_types = [
-        operator_generation.kernel_types.Apply(
+        operator_generation.kernel_types.ApplyWrapper(
             trial_space,
             test_space,
             type_descriptor=type_descriptor,
             dims=dims,
         ),
-        operator_generation.kernel_types.Assemble(
+        operator_generation.kernel_types.AssembleWrapper(
             trial_space,
             test_space,
             type_descriptor=type_descriptor,
@@ -371,7 +371,7 @@ def generate_operator(
 
     if trial_space == test_space and components_equal:
         kernel_types.append(
-            operator_generation.kernel_types.AssembleDiagonal(
+            operator_generation.kernel_types.AssembleDiagonalWrapper(
                 trial_space,
                 type_descriptor=type_descriptor,
                 dims=dims,
@@ -383,7 +383,7 @@ def generate_operator(
             name,
             symbolizer,
             opts=optimizations,
-            kernel_types=kernel_types,
+            kernel_wrapper_types=kernel_types,
             type_descriptor=type_descriptor,
         )
 
@@ -400,32 +400,33 @@ def generate_operator(
                 blending=blending,  # type: ignore[call-arg] # kw-args are not supported by Callable
             )
 
-            operator.set_element_matrix(
+            operator.add_integral(
+                name="".join(name.split()),
                 dim=geometry.dimensions,
                 geometry=geometry,
                 integration_domain=operator_generation.operators.MacroIntegrationDomain.VOLUME,
                 quad=quad,
                 blending=blending,
                 form=form,
+                loop_strategy=loop_strategies[spec["loop-strategy"]],
             )
 
         dir_path = os.path.join(args.output, form_str)
         operator.generate_class_code(
             dir_path,
-            loop_strategies[spec["loop-strategy"]],
-            class_files=operators.CppClassFiles.HEADER_IMPL_AND_VARIANTS,
             clang_format_binary=args.clang_format_binary,
         )
 
         kernel_implementations = {}
-        for kernel in operator.kernels:
-            for platform, function in kernel.platform_dependent_funcs.items():
-                if not platform in kernel_implementations:
-                    kernel_implementations[platform] = []
-
-                kernel_implementations[platform].append(
-                    f"{operator.name}_{function.function_name}.cpp"
-                )
+        for kernels in operator.operator_methods:
+            for kernel in kernels.platform_dependent_funcs:
+                for platform, function in kernel.items():
+                    if not platform in kernel_implementations:
+                        kernel_implementations[platform] = []
+
+                    kernel_implementations[platform].append(
+                        f"{operator.name}_{function.function_name}.cpp"
+                    )
 
         return kernel_implementations
 
diff --git a/generate/requirements.txt b/generate/requirements.txt
index 0d9d4423..0afd3ab8 100644
--- a/generate/requirements.txt
+++ b/generate/requirements.txt
@@ -1,5 +1,5 @@
 --extra-index-url https://test.pypi.org/simple/
 
-hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog@94ff71ce05b3ee62fdd04c7b09c7ac3ee9a541c8
+hog @ git+ssh://git@i10git.cs.fau.de/hyteg/hog@26f110bc235ad20bff58416a4dba4e1730e74c4e
 tomli >= 1.1.0 ; python_version < "3.11"
 clang-format
-- 
GitLab