From 1ca8a8f57f74104f781626690267b06bf4bdc2c7 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Tue, 19 Apr 2016 13:24:29 +0200
Subject: [PATCH] Add a print_matrix generator helpful for debugging

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

diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py
index 228e4f50..0dea6a07 100644
--- a/python/dune/perftool/pdelab/driver.py
+++ b/python/dune/perftool/pdelab/driver.py
@@ -619,6 +619,18 @@ def name_vtkfile():
     return "vtkfile"
 
 
+@preamble
+def print_matrix():
+    t_go = type_gridoperator()
+    n_go = name_gridoperator()
+    v = name_vector()
+    return ["typedef typename {}::Traits::Jacobian M;".format(t_go),
+            "M m({});".format(n_go),
+            "{}.jacobian({},m);".format(n_go, v),
+            "using Dune::PDELab::Backend::native;",
+            "Dune::printmatrix(std::cout, native(m),\"global stiffness matrix\",\"row\",9,1);"]
+
+
 @preamble
 def vtkoutput():
     include_file("dune/pdelab/gridfunctionspace/vtk.hh", filetag="driver")
@@ -627,5 +639,6 @@ def vtkoutput():
     vec = name_vector()
     vtkfile = name_vtkfile()
     dune_solve()
+    print_matrix()
     return ["Dune::PDELab::addSolutionToVTKWriter({}, {}, {});".format(vtkwriter, gfs, vec),
             "{}.write({}, Dune::VTK::appendedraw);".format(vtkwriter, vtkfile)]
-- 
GitLab