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