From f9c8037a89aef59bba011f5fd337652d1b3f258f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20H=C3=B6rl?=
 <maximilian.hoerl@mathematik.uni-stuttgart.de>
Date: Fri, 17 Jan 2020 19:36:36 +0100
Subject: [PATCH] add A, b, d, dof as member variables

---
 dune/mmdg/dg.hh | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/dune/mmdg/dg.hh b/dune/mmdg/dg.hh
index a410cc0..e576d2d 100644
--- a/dune/mmdg/dg.hh
+++ b/dune/mmdg/dg.hh
@@ -18,21 +18,23 @@ class DG
 public:
   using Scalar = typename GridView::ctype;
   static constexpr int dim = GridView::dimension;
+  using Matrix = Dune::DynamicMatrix<Scalar>;
+  using Vector = Dune::DynamicVector<Scalar>;
 
   //constructor
   DG (const GridView& gridView, const Mapper& mapper,
     const Problem& problem) :
-    gridView_(gridView), mapper_(mapper), problem_(problem) {}
+    gridView_(gridView), mapper_(mapper), problem_(problem),
+    dof((1 + dim) * gridView.size(0))
+    {
+      A = Matrix(dof, dof, 0.0); //initialize stiffness matrix
+      b = Vector(dof, 0.0); //initialize load vector
+      d = Vector(dof, 0.0); //initialize solution vector
+    }
 
-  const void operator() (const Scalar K, const Scalar mu) const
+  const void operator() (const Scalar K, const Scalar mu)
   {
     //NOTE: what is an appropriate sparse matrix type? -> BCRS
-    const int dof = (1 + dim)*gridView_.size(0); //degrees of freedom
-    using Matrix = Dune::DynamicMatrix<Scalar>;
-    using Vector = Dune::DynamicVector<Scalar>;
-    Matrix A(dof, dof, 0.0); //stiffness matrix
-    Vector b(dof, 0.0); //load vector
-    Vector d(dof, 0.0);
 
     //NOTE:
 //    const int order = 3; //order of the quadrature rule
@@ -122,7 +124,7 @@ public:
         {
           std::cout << "\t" << intersctGeo.corner(k);
         }
-        std::cout << "\n\n";
+        std::cout << "\tnormal: " << normal << "\n\n";
 
         //TODO: quadrature rule cannot be used for dim = 1!
 //        const Dune::QuadratureRule<double,dim-1>& secondOrderRule =
@@ -480,10 +482,16 @@ public:
   }
 
   const GridView& gridView_;
-
   const Mapper& mapper_; //element mapper for gridView_
-
   const Problem& problem_; //the DG problem to be solved
+
+  const int dof; //degrees of freedom
+
+private:
+  Matrix A; //stiffness matrix
+  Vector b; //load vector
+  Vector d; //solution vector
+
 };
 
 #endif
-- 
GitLab