From 9925ca0a0f3e294d22e3ff0f668b83cd78ab218b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de>
Date: Wed, 17 Aug 2016 13:31:39 +0200
Subject: [PATCH] [Cleanup] Remove unused code from matrixfree.hh

---
 dune/perftool/matrixfree.hh | 325 ------------------------------------
 1 file changed, 325 deletions(-)

diff --git a/dune/perftool/matrixfree.hh b/dune/perftool/matrixfree.hh
index 4ab94377..b5bf65ff 100644
--- a/dune/perftool/matrixfree.hh
+++ b/dune/perftool/matrixfree.hh
@@ -3,13 +3,6 @@
 
 #include <iostream>
 
-// #include <dune/common/timer.hh>
-// #include <dune/common/parametertree.hh>
-
-// #include <dune/pdelab/backend/interface.hh>
-// #include <dune/pdelab/constraints/common/constraints.hh>
-// #include <dune/pdelab/backend/solver.hh>
-
 #include <dune/pdelab/backend/istl/seqistlsolverbackend.hh>
 
 namespace Dune{
@@ -32,324 +25,6 @@ namespace Dune{
       solverb.apply(z,r,stat);
       x -= z;
     }
-
-    // template <template<class> class Solver, typename GO>
-    // class ISTLMatrixFreeSolverBackend_Base
-    //   : public SequentialNorm, public LinearResultStorage
-    // {
-    // public:
-    //   ISTLMatrixFreeSolverBackend_Base(GO go, unsigned maxiter_=5000, int verbose_=1)
-    //     : _go(go), maxiter(maxiter_), verbose(verbose_)
-    //   {}
-
-    //   template <typename V, typename W>
-    //   void apply(V z, W r, typename Dune::template FieldTraits<typename W::ElementType >::real_type reduction) {
-    //     using Backend::Native;
-    //     using Backend::native;
-    //     Dune::Richardson<V,V> prec(1.0);
-    //     OnTheFlyOperator<V,V,GO> opa(_go);
-    //     Solver<Native<V>> solver(opa, prec, reduction, maxiter, verbose);
-    //     Dune::InverseOperatorResult stat;
-    //     solver.apply(native(z), native(r), stat);
-    //   }
-
-    // private:
-    //   GO _go;
-    //   unsigned maxiter;
-    //   int verbose;
-    // };
-
-    // template <typename GO>
-    // class ISTLMatrixFreeBackend_SEQ_CG
-    //   : public ISTLMatrixFreeSolverBackend_Base<Dune::CGSolver,GO>
-    // {
-    // public:
-    //   ISTLMatrixFreeBackend_SEQ_CG (GO& go, unsigned maxiter_=5000, int verbose_=1)
-    //     : ISTLMatrixFreeSolverBackend_Base<Dune::CGSolver,GO>(go, maxiter_, verbose_)
-    //   {}
-    // };
-
-
-    // // Status information of linear problem solver
-    // template<class RFType>
-    // struct StationaryLinearMatrixFreeProblemSolverResult : LinearSolverResult<RFType>
-    // {
-    //   RFType first_defect;       // the first defect
-    //   RFType defect;             // the final defect
-    //   double assembler_time;     // Cumulative time for matrix assembly
-    //   double linear_solver_time; // Cumulative time for linear solver
-    //   int linear_solver_iterations; // Total number of linear iterations
-
-    //   StationaryLinearMatrixFreeProblemSolverResult()
-    //     : first_defect(0.0)
-    //     , defect(0.0)
-    //     , assembler_time(0.0)
-    //     , linear_solver_time(0.0)
-    //     , linear_solver_iterations(0)
-    //   {}
-
-    // };
-
-
-    // template<typename GO, typename LS, typename V>
-    // class StationaryLinearMatrixFreeProblemSolver
-    // {
-    //   typedef typename Dune::template FieldTraits<typename V::ElementType >::real_type Real;
-    //   typedef typename GO::Traits::Jacobian M;
-    //   typedef typename GO::Traits::TrialGridFunctionSpace TrialGridFunctionSpace;
-    //   using W = Dune::PDELab::Backend::Vector<TrialGridFunctionSpace,typename V::ElementType>;
-    //   typedef GO GridOperator;
-
-    // public:
-    //   typedef StationaryLinearMatrixFreeProblemSolverResult<double> Result;
-
-    //   StationaryLinearMatrixFreeProblemSolver(GO& go, LS& ls, V& x, Real reduction, Real min_defect = 1e-99, int verbose=1)
-    //     : _go(go)
-    //     , _ls(ls)
-    //     , _x(&x)
-    //     , _reduction(reduction)
-    //     , _min_defect(min_defect)
-    //     , _hanging_node_modifications(false)
-    //     , _keep_matrix(true)
-    //     , _verbose(verbose)
-    //   {}
-
-    //   StationaryLinearMatrixFreeProblemSolver (const GO& go, LS& ls, Real reduction, Real min_defect = 1e-99, int verbose=1)
-    //     : _go(go)
-    //     , _ls(ls)
-    //     , _x()
-    //     , _reduction(reduction)
-    //     , _min_defect(min_defect)
-    //     , _hanging_node_modifications(false)
-    //     , _keep_matrix(true)
-    //     , _verbose(verbose)
-    //   {}
-
-    //   //! Construct a StationaryLinearProblemSolver for the given objects and read parameters from a ParameterTree.
-    //   /**
-    //    * This constructor reads the parameter controlling its operation from a passed-in ParameterTree
-    //    * instead of requiring the user to specify all of them as individual constructor parameters.
-    //    * Currently the following parameters are read:
-    //    *
-    //    * Name                       | Default Value | Explanation
-    //    * -------------------------- | ------------- | -----------
-    //    * reduction                  |               | Required relative defect reduction
-    //    * min_defect                 | 1e-99         | minimum absolute defect at which to stop
-    //    * hanging_node_modifications | false         | perform required transformations for hanging nodes
-    //    * keep_matrix                | true          | keep matrix between calls to apply() (but reassemble values every time)
-    //    * verbosity                  | 1             | control amount of debug output
-    //    *
-    //    * Apart from reduction, all parameters have a default value and are optional.
-    //    * The actual reduction for a call to apply() is calculated as r = max(reduction,min_defect/start_defect),
-    //    * where start defect is the norm of the residual of x.
-    //    */
-    //   StationaryLinearMatrixFreeProblemSolver(const GO& go, LS& ls, V& x, const ParameterTree& params)
-    //     : _go(go)
-    //     , _ls(ls)
-    //     , _x(&x)
-    //     , _reduction(params.get<Real>("reduction"))
-    //     , _min_defect(params.get<Real>("min_defect",1e-99))
-    //     , _hanging_node_modifications(params.get<bool>("hanging_node_modifications",false))
-    //     , _keep_matrix(params.get<bool>("keep_matrix",true))
-    //     , _verbose(params.get<int>("verbosity",1))
-    //   {}
-
-    //   //! Construct a StationaryLinearProblemSolver for the given objects and read parameters from a ParameterTree.
-    //   /**
-    //    * This constructor reads the parameter controlling its operation from a passed-in ParameterTree
-    //    * instead of requiring the user to specify all of them as individual constructor parameters.
-    //    * Currently the following parameters are read:
-    //    *
-    //    * Name                       | Default Value | Explanation
-    //    * -------------------------- | ------------- | -----------
-    //    * reduction                  |               | Required relative defect reduction
-    //    * min_defect                 | 1e-99         | minimum absolute defect at which to stop
-    //    * hanging_node_modifications | false         | perform required transformations for hanging nodes
-    //    * keep_matrix                | true          | keep matrix between calls to apply() (but reassemble values every time)
-    //    * verbosity                  | 1             | control amount of debug output
-    //    *
-    //    * Apart from reduction, all parameters have a default value and are optional.
-    //    * The actual reduction for a call to apply() is calculated as r = max(reduction,min_defect/start_defect),
-    //    * where start defect is the norm of the residual of x.
-    //    */
-    //   StationaryLinearMatrixFreeProblemSolver(const GO& go, LS& ls, const ParameterTree& params)
-    //     : _go(go)
-    //     , _ls(ls)
-    //     , _x()
-    //     , _reduction(params.get<Real>("reduction"))
-    //     , _min_defect(params.get<Real>("min_defect",1e-99))
-    //     , _hanging_node_modifications(params.get<bool>("hanging_node_modifications",false))
-    //     , _keep_matrix(params.get<bool>("keep_matrix",true))
-    //     , _verbose(params.get<int>("verbosity",1))
-    //   {}
-
-    //   // //! Set whether the solver should apply the necessary transformations for calculations on hanging nodes.
-    //   // void setHangingNodeModifications(bool b)
-    //   // {
-    //   //   _hanging_node_modifications=b;
-    //   // }
-
-    //   // //! Return whether the solver performs the necessary transformations for calculations on hanging nodes.
-    //   // bool hangingNodeModifications() const
-    //   // {
-    //   //   return _hanging_node_modifications;
-    //   // }
-
-    //   // //! Set whether the jacobian matrix should be kept across calls to apply().
-    //   // void setKeepMatrix(bool b)
-    //   // {
-    //   //   _keep_matrix = b;
-    //   // }
-
-    //   // //! Return whether the jacobian matrix is kept across calls to apply().
-    //   // bool keepMatrix() const
-    //   // {
-    //   //   return _keep_matrix;
-    //   // }
-
-    //   const Result& result() const
-    //   {
-    //     return _res;
-    //   }
-
-    //   void apply(V& x, bool reuse_matrix = false) {
-    //     _x = &x;
-    //     apply(reuse_matrix);
-    //   }
-
-    //   void apply (bool reuse_matrix = false)
-    //   {
-    //     Dune::Timer watch;
-    //     double timing,assembler_time=0;
-
-    //     // // assemble matrix; optional: assemble only on demand!
-    //     // watch.reset();
-
-    //     // if (!_jacobian)
-    //     //   {
-    //     //     _jacobian = std::make_shared<M>(_go);
-    //     //     timing = watch.elapsed();
-    //     //     if (_go.trialGridFunctionSpace().gridView().comm().rank()==0 && _verbose>=1)
-    //     //       std::cout << "=== matrix setup (max) " << timing << " s" << std::endl;
-    //     //     watch.reset();
-    //     //     assembler_time += timing;
-    //     //   }
-    //     // else if (_go.trialGridFunctionSpace().gridView().comm().rank()==0 && _verbose>=1)
-    //     //   std::cout << "=== matrix setup skipped (matrix already allocated)" << std::endl;
-
-    //     // if (_hanging_node_modifications)
-    //     //   {
-    //     //     Dune::PDELab::set_shifted_dofs(_go.localAssembler().trialConstraints(),0.0,*_x); // set hanging node DOFs to zero
-    //     //     _go.localAssembler().backtransform(*_x); // interpolate hanging nodes adjacent to Dirichlet nodes
-    //     //   }
-
-    //     // if (!reuse_matrix)
-    //     //   {
-    //     //     (*_jacobian) = Real(0.0);
-    //     //     _go.jacobian(*_x,*_jacobian);
-    //     //   }
-
-    //     // timing = watch.elapsed();
-    //     // // timing = gos.trialGridFunctionSpace().gridView().comm().max(timing);
-    //     // if (_go.trialGridFunctionSpace().gridView().comm().rank()==0 && _verbose>=1)
-    //     //   {
-    //     //     if (reuse_matrix)
-    //     //       std::cout << "=== matrix assembly SKIPPED" << std::endl;
-    //     //     else
-    //     //       std::cout << "=== matrix assembly (max) " << timing << " s" << std::endl;
-    //     //   }
-
-    //     // assembler_time += timing;
-
-    //     // assemble residual
-    //     watch.reset();
-
-    //     W r(_go.testGridFunctionSpace(),0.0);
-    //     _go.residual(*_x,r);  // residual is additive
-
-    //     timing = watch.elapsed();
-    //     // timing = gos.trialGridFunctionSpace().gridView().comm().max(timing);
-    //     if (_go.trialGridFunctionSpace().gridView().comm().rank()==0 && _verbose>=1)
-    //       std::cout << "=== residual assembly (max) " << timing << " s" << std::endl;
-    //     assembler_time += timing;
-    //     _res.assembler_time = assembler_time;
-
-    //     auto defect = _ls.norm(r);
-
-    //     // compute correction
-    //     watch.reset();
-    //     V z(_go.trialGridFunctionSpace(),0.0);
-    //     auto red = std::max(_reduction,_min_defect/defect);
-    //     if (_go.trialGridFunctionSpace().gridView().comm().rank()==0)
-    //       std::cout << "=== solving (reduction: " << red << ") " << std::endl;
-
-    //     // NOTE: Different than in StationaryLinearProblemSolver!
-    //     _ls.apply(z, r, red); // solver makes right hand side consistent
-
-
-    //     _linear_solver_result = _ls.result();
-    //     timing = watch.elapsed();
-    //     // timing = gos.trialGridFunctionSpace().gridView().comm().max(timing);
-    //     if (_go.trialGridFunctionSpace().gridView().comm().rank()==0 && _verbose>=1)
-    //       std::cout << timing << " s" << std::endl;
-    //     _res.linear_solver_time = timing;
-
-    //     _res.converged = _linear_solver_result.converged;
-    //     _res.iterations = _linear_solver_result.iterations;
-    //     _res.elapsed = _linear_solver_result.elapsed;
-    //     _res.reduction = _linear_solver_result.reduction;
-    //     _res.conv_rate = _linear_solver_result.conv_rate;
-    //     _res.first_defect = static_cast<double>(defect);
-    //     _res.defect = static_cast<double>(defect)*_linear_solver_result.reduction;
-    //     _res.linear_solver_iterations = _linear_solver_result.iterations;
-
-    //     // // and update
-    //     // if (_hanging_node_modifications)
-    //     //   Dune::PDELab::set_shifted_dofs(_go.localAssembler().trialConstraints(),0.0,*_x); // set hanging node DOFs to zero
-    //     // *_x -= z;
-    //     // if (_hanging_node_modifications)
-    //     //   _go.localAssembler().backtransform(*_x); // interpolate hanging nodes adjacent to Dirichlet nodes
-
-    //     // if (!_keep_matrix)
-    //     //   _jacobian.reset();
-    //   }
-
-    //   // //! Discard the stored Jacobian matrix.
-    //   // void discardMatrix()
-    //   // {
-    //   //   if(_jacobian)
-    //   //     _jacobian.reset();
-    //   // }
-
-    //   const Dune::PDELab::LinearSolverResult<double>& ls_result() const{
-    //     return _linear_solver_result;
-    //   }
-
-    //   Real reduction() const
-    //   {
-    //     return _reduction;
-    //   }
-
-    //   void setReduction(Real reduction)
-    //   {
-    //     _reduction = reduction;
-    //   }
-
-
-    // private:
-    //   const GO& _go;
-    //   LS& _ls;
-    //   V* _x;
-    //   // shared_ptr<M> _jacobian;
-    //   Real _reduction;
-    //   Real _min_defect;
-    //   Dune::PDELab::LinearSolverResult<double> _linear_solver_result;
-    //   Result _res;
-    //   bool _hanging_node_modifications;
-    //   bool _keep_matrix;
-    //   int _verbose;
-    // };
-
   }
 }
 #endif
-- 
GitLab