12 #ifndef BOGUS_BLOCK_GAUSS_SEIDEL_BASE_HPP
13 #define BOGUS_BLOCK_GAUSS_SEIDEL_BASE_HPP
15 #include "ConstrainedSolverBase.hpp"
16 #include "Coloring.hpp"
24 template <
typename GaussSe
idelImpl,
typename BlockMatrixType >
31 typedef typename GlobalProblemTraits::Scalar Scalar ;
96 const BlockMatrixBase< BlockMatrixType >& explicitMatrix()
const
102 const IterableBlockObject< BlockMatrixType >& iterableMatrix()
const
110 void processLocalMatrices() ;
112 template <
typename NSLaw,
typename ResT >
113 Scalar evalAndKeepBest(
114 const NSLaw &law,
const ResT &x,
115 const typename GlobalProblemTraits::DynVector& y,
116 typename GlobalProblemTraits::DynVector& x_best, Scalar &err_best )
const ;
118 template <
typename NSLaw,
typename RhsT,
typename ResT >
120 const NSLaw &law,
const RhsT &b, ResT &x,
121 typename GlobalProblemTraits::DynVector& x_best, Scalar &err_best )
const ;
127 using Base::m_scaling ;
129 typedef typename Base::Index Index ;
130 typedef typename Base::BlockProblemTraits::Matrix DiagonalBlockType ;
131 typename ResizableSequenceContainer< DiagonalBlockType >::Type m_localMatrices ;
132 typename GlobalProblemTraits::DynVector m_regularization ;
Scalar m_tol
See setTol()
Definition: BlockSolverBase.hpp:70
Abstract Gauss-Seidel interface .
Definition: GaussSeidelBase.hpp:25
Scalar m_skipTol
See setSkipTol(). Defaults to 1.e-6.
Definition: GaussSeidelBase.hpp:140
unsigned m_skipIters
See setSkipIters() Defaults to 10.
Definition: GaussSeidelBase.hpp:142
const Derived & derived() const
Returns a const reference to the implementation.
Definition: BlockObjectBase.hpp:25
Definition: BlockSolvers.fwd.hpp:33
void setMaxThreads(unsigned maxThreads=0)
Sets the maximum number of threads that the solver can use.
Definition: GaussSeidelBase.hpp:42
void setEvalEvery(unsigned evalEvery)
Sets the number of iterations that should be performed between successive evaluations of the global e...
Definition: GaussSeidelBase.hpp:76
void setSkipIters(unsigned skipIters)
Sets the number of iterations for temporarily freezing local problems.
Definition: GaussSeidelBase.hpp:80
unsigned m_maxThreads
See setMaxThreads(). Defaults to 0 .
Definition: GaussSeidelBase.hpp:135
void setAutoRegularization(Scalar maxRegul)
Sets the auto-regularization (a.k.a. proximal point) coefficient.
Definition: GaussSeidelBase.hpp:70
const BlockObjectBase< BlockMatrixType > * m_matrix
Pointer to the matrix of the system.
Definition: BlockSolverBase.hpp:65
unsigned m_evalEvery
See setEvalEvery(). Defaults to 25.
Definition: GaussSeidelBase.hpp:138
unsigned m_maxIters
See setMaxIters()
Definition: BlockSolverBase.hpp:68
Definition: ConstrainedSolverBase.hpp:20
Scalar m_autoRegularization
Definition: GaussSeidelBase.hpp:145
void setSkipTol(Scalar skipTol)
Sets the minimum iteration step size under which local problems are temporarily frozen.
Definition: GaussSeidelBase.hpp:78