From 7a7bcc937b01bd67a100a37ac6c05bffcffeaf4c Mon Sep 17 00:00:00 2001
From: Elias Pipping <elias.pipping@fu-berlin.de>
Date: Wed, 14 Dec 2011 15:24:57 +0100
Subject: [PATCH] add Hessian indices

---
 dune/tectonic/globalnonlinearity.hh | 5 +++++
 dune/tectonic/myblockproblem.hh     | 3 +--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dune/tectonic/globalnonlinearity.hh b/dune/tectonic/globalnonlinearity.hh
index 9a284eaa..5bf0d30f 100644
--- a/dune/tectonic/globalnonlinearity.hh
+++ b/dune/tectonic/globalnonlinearity.hh
@@ -27,6 +27,11 @@ class GlobalNonlinearity {
     }
   }
 
+  void addHessianIndices(Dune::MatrixIndexSet &indices) const {
+    for (size_t i = 0; i < indices.rows(); ++i)
+      indices.add(i, i);
+  }
+
   void addGradient(VectorType const &v, VectorType &gradient) const {
     for (size_t i = 0; i < v.size(); ++i) {
       auto res = restriction(i);
diff --git a/dune/tectonic/myblockproblem.hh b/dune/tectonic/myblockproblem.hh
index 7f0bac45..83fbfbc2 100644
--- a/dune/tectonic/myblockproblem.hh
+++ b/dune/tectonic/myblockproblem.hh
@@ -91,8 +91,7 @@ template <class MyConvexProblemTypeTEMPLATE> class MyBlockProblem {
     // construct sparsity pattern for linearization
     Dune::MatrixIndexSet indices(problem.A.N(), problem.A.M());
     indices.import(problem.A);
-    // TODO: handle smooth domain
-    // problem.phi.addHessianIndices(indices);
+    problem.phi.addHessianIndices(indices);
 
     // construct matrix from pattern and initialize it
     indices.exportIdx(linearization.A);
-- 
GitLab