From f3b1969e1391991c6834986805f5598148c8005a Mon Sep 17 00:00:00 2001
From: Uli Sack <usack@math.fu-berlin.de>
Date: Fri, 25 May 2012 14:41:07 +0000
Subject: [PATCH] document the code changes introduced by the lowrank branch

[[Imported from SVN: r6277]]
---
 doc/LOWRANKBRANCH-BACKPORT-CHANGES | 106 +++++++++++++++++++++++++++++
 1 file changed, 106 insertions(+)
 create mode 100644 doc/LOWRANKBRANCH-BACKPORT-CHANGES

diff --git a/doc/LOWRANKBRANCH-BACKPORT-CHANGES b/doc/LOWRANKBRANCH-BACKPORT-CHANGES
new file mode 100644
index 0000000..6f00242
--- /dev/null
+++ b/doc/LOWRANKBRANCH-BACKPORT-CHANGES
@@ -0,0 +1,106 @@
+CHANGES REQUIRING CODE ADAPTATION
+---------------------------------
+---------------------------------
+
+* file dune/solvers/norms/diagnorm.hh : class DiagNorm
+    ° introduced template parameters in order to use it with arbitrary matrix blocks
+        \tparam Diagonal some container type having the random access operator[]; used to store the diagonal entries of the matrix
+        \tparam VectorType the vector type the norm may be applied to
+    ° old implementation remains as template specialization
+---------------------------------------------------------------------------------------
+!   ° REQUIRED CODE CHANGES: where "DiagNorm" was used, now "DiagNorm<>" is required  !
+---------------------------------------------------------------------------------------
+
+* file dune/solvers/norms/fullnorm.hh : class FullNorm
+    ° introduced template parameters in order to use it with arbitrary matrix blocks
+        \tparam LowRankFactor the type of the factor used to represent the low rank operator
+        \tparam VectorType the vector type the norm may be applied to
+    ° old implementation remains as template specialization
+---------------------------------------------------------------------------------------
+!   ° REQUIRED CODE CHANGES: where "FullNorm" was used, now "FullNorm<>" is required  !
+---------------------------------------------------------------------------------------
+
+
+CHANGES POSSIBLY AFFECTING PERFOMANCE (INCLUDING BUGFIXES)
+----------------------------------------------------------
+----------------------------------------------------------
+
+* file dune/solvers/common/staticmatrixtools.hh
+    ° bugfix for addToDiagonal concerning template specialization
+
+* file dune/solvers/norms/energynorm.hh
+    ° catch slightly negative values of normSquared and return zero instead
+    ° "negativity tolerance" may be set in constructor; default is 1e-10
+
+EXTENSION OF FUNCTIONALITY
+--------------------------
+--------------------------
+
+* file dune/solvers/transferoperators/compressedmultigridtransfer.hh : class CompressedMultigridTransfer
+    ° introduced template specialization for matrices of SumOperator<SparseMatrixType, LowRankMatrixType>-type
+
+* file dune/solvers/common/staticmatrixtools.hh
+    ° added some type promotions
+    (° bugfix for addToDiagonal concerning template specialization)
+
+* file dune/solvers/common/genericvectortools.hh : 
+    ° added template specialization of method static void resize for VectorTypeB=SumOperator<...>
+
+* file dune/solvers/iterationsteps/truncatedblockgsstep.hh :
+    ° introduced template specialization for matrices of SumOperator<SparseMatrixType, LowRankMatrixType>-type
+
+* file dune/solvers/operators/nulloperator.hh :
+    ° introduced method umtv
+    ° introduced method usmtv
+    ° export field_type and size_type
+    ° introduced methods M(), N()
+    ° introduced operator*=
+    ° introduced operator[]
+    ° introduced operator[] in RowDummy
+
+* file dune/solvers/operators/lowrankoperator.hh :
+    ° lowRankFactor_ now stored as a pointer
+    ° introduced default constructor
+    ° introduced method mmv
+    (° renamed method getLowRankFactor->lowrankFactor)
+    ° added nonconst getter lowrankFactor
+
+* file dune/solvers/operators/sumoperator.hh :
+    ° summands now stored as pointers
+    ° introduced default constructor
+    ° introduced destructor
+    ° introduced method mmv
+    ° introduced methods M(), N()
+    (° renamed method getSOMETHINGMatrix->SOMETHINGMatrix)
+    ° added nonconst getters
+
+FURTHER CHANGES
+-------------------------------------
+-------------------------------------
+
+* copied file dune/solvers/common/arithmetic.hh from dune-fufem
+
+* file dune/solvers/transferoperators/truncatedcompressedmgtransfer.cc
+    ° harmonized template parameter names with base class
+
+* file dune/solvers/test/sumoperatortest.cc
+    ° extended test, now also testing
+        default construction
+        getter methods
+        consistency of N()
+
+* file dune/solvers/test/lowrankoperatortest.cc
+    ° extended test, now also testing
+        method mmv
+        for fixed block sizes 1...4
+
+* use size_t instead of int in order to avoid signed/unsigned mismatch warnings
+    ° file dune/solvers/iterationsteps/truncatedblockgsstep.hh
+    ° file dune/solvers/iterationsteps/multigridstep.hh
+    ° file dune/solvers/norms/fullnorm.hh
+    ° file dune/solvers/norms/diagnorm.hh
+    ° file dune/solvers/common/staticmatrixtools.hh
+
+* file dune/solvers/solvers/loopsolver.cc: initialize value in order to avoid warning
+
+* fixed some typos/white space issues
-- 
GitLab