Loading TODO +29 −5 Original line number Diff line number Diff line # Bugs # ToDo ## Bugs These issues are not real bugs, but unexpected behaviour that might lead to serious trouble if you're not aware of. * ProjectedBlockGSStep does nothing for a whole block if there are zero diagonal entries in the diagonal block. Loading @@ -9,7 +14,10 @@ # Performance issues ## Performance issues While a suboptimal implementation might be OK, if it is cleaner and more readable these issues may decrease the performance without any again. * BlockGSStep and the derived classes loop over each row twice. Once for computing the residual, once for finding the diagonal entry. Loading @@ -22,7 +30,9 @@ # Design issues ## Design issues Things that could be improved to make dune-solvers easier to use, understand, and maintain. * Implement (P)CG as IterationStep for the LoopSolver * Make all public member variables protected and introduce public methods for access. Loading @@ -38,19 +48,33 @@ version that is preconfigured with GS smoother and coarse grid solver. * Remove MultigridStep::setNumberOfLevels(), this number is already fixed by the size of the transfer operator vector. * MultigridStep hides member names from the base class by reusing them for different things * MultigridStep works differently on the finest and the other levels. On the finest, the smoother is used with the rhs of the linear system and the current iterate as initial value to compute the new iterate. On the coarse levels it is used to solve the defect system approximately, i.e., it computes a correction with the residual and zero initial value. This should be unified or at least documented. Computing corrections also on the finest level might allow to solve systems really up to machine accuracy sice you have more digits for the correction. # Naming of classes and members ## Naming of classes and members * ignoreNodes_ should be called ignore_/ignoreIndices_/ignoreComponents_ # Missing features ## Missing features A wish list for features that would be very welcome. * Transfer operator assembler for adaptively refined grids (without refinementtype=copy) This is already implemented in dune-fufem. It could be moved here if the dependency on P1NodalBasis is removed. * Nested iteration for ObstacleTNNMGStep. * An interface to add custom output and termination criteria to the LoopSolver. Loading
TODO +29 −5 Original line number Diff line number Diff line # Bugs # ToDo ## Bugs These issues are not real bugs, but unexpected behaviour that might lead to serious trouble if you're not aware of. * ProjectedBlockGSStep does nothing for a whole block if there are zero diagonal entries in the diagonal block. Loading @@ -9,7 +14,10 @@ # Performance issues ## Performance issues While a suboptimal implementation might be OK, if it is cleaner and more readable these issues may decrease the performance without any again. * BlockGSStep and the derived classes loop over each row twice. Once for computing the residual, once for finding the diagonal entry. Loading @@ -22,7 +30,9 @@ # Design issues ## Design issues Things that could be improved to make dune-solvers easier to use, understand, and maintain. * Implement (P)CG as IterationStep for the LoopSolver * Make all public member variables protected and introduce public methods for access. Loading @@ -38,19 +48,33 @@ version that is preconfigured with GS smoother and coarse grid solver. * Remove MultigridStep::setNumberOfLevels(), this number is already fixed by the size of the transfer operator vector. * MultigridStep hides member names from the base class by reusing them for different things * MultigridStep works differently on the finest and the other levels. On the finest, the smoother is used with the rhs of the linear system and the current iterate as initial value to compute the new iterate. On the coarse levels it is used to solve the defect system approximately, i.e., it computes a correction with the residual and zero initial value. This should be unified or at least documented. Computing corrections also on the finest level might allow to solve systems really up to machine accuracy sice you have more digits for the correction. # Naming of classes and members ## Naming of classes and members * ignoreNodes_ should be called ignore_/ignoreIndices_/ignoreComponents_ # Missing features ## Missing features A wish list for features that would be very welcome. * Transfer operator assembler for adaptively refined grids (without refinementtype=copy) This is already implemented in dune-fufem. It could be moved here if the dependency on P1NodalBasis is removed. * Nested iteration for ObstacleTNNMGStep. * An interface to add custom output and termination criteria to the LoopSolver.