From 995c53d608f30a1d1565b756b61f5ace5329ef89 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Wed, 7 Mar 2018 11:57:22 +0100
Subject: [PATCH] Apply block preconditioner trafo

---
 python/dune/perftool/pdelab/localoperator.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 9f196a65..7fad25e6 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -819,6 +819,13 @@ def generate_jacobian_kernels(form, original_form):
     from dune.perftool.ufl.preprocess import preprocess_form
     jacform = preprocess_form(jacform).preprocessed_form
 
+    if get_form_option("block_preconditioner_diagonal"):
+        from dune.perftool.ufl.transformations.blockpreconditioner import diagonal_block_jacobian
+        jacform = diagonal_block_jacobian(jacform)
+    if get_form_option("block_preconditioner_offdiagonal"):
+        from dune.perftool.ufl.transformations.blockpreconditioner import offdiagonal_block_jacobian
+        jacform = offdiagonal_block_jacobian(jacform)
+
     operator_kernels = {}
     with global_context(form_type="jacobian"):
         if get_form_option("generate_jacobians"):
-- 
GitLab