Class xlifepp::GmresSolver#

class GmresSolver : public xlifepp::IterativeSolver#

Inheritence diagram for xlifepp::GmresSolver:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "1" [label="xlifepp::GmresSolver" tooltip="xlifepp::GmresSolver" fillcolor="#BFBFBF"] "2" [label="xlifepp::IterativeSolver" tooltip="xlifepp::IterativeSolver"] "1" -> "2" [dir=forward tooltip="public-inheritance"] }

Collaboration diagram for xlifepp::GmresSolver:

digraph { graph [bgcolor="#00000000"] node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2] edge [color="#1414CE"] "3" [label="xlifepp::Vector< real_t >" tooltip="xlifepp::Vector< real_t >"] "5" [label="std::vector< T >" tooltip="std::vector< T >"] "7" [label="std::vector< K >" tooltip="std::vector< K >"] "4" [label="std::vector< real_t >" tooltip="std::vector< real_t >"] "1" [label="xlifepp::GmresSolver" tooltip="xlifepp::GmresSolver" fillcolor="#BFBFBF"] "2" [label="xlifepp::IterativeSolver" tooltip="xlifepp::IterativeSolver"] "6" [label="xlifepp::Vector< K >" tooltip="xlifepp::Vector< K >"] "3" -> "4" [dir=forward tooltip="public-inheritance"] "3" -> "6" [dir=forward tooltip="template-instance"] "7" -> "5" [dir=forward tooltip="template-instance"] "4" -> "5" [dir=forward tooltip="template-instance"] "1" -> "2" [dir=forward tooltip="public-inheritance"] "2" -> "3" [dir=forward tooltip="usage"] "6" -> "7" [dir=forward tooltip="public-inheritance"] }

Implement Generalized Minimal Residual algorithm.

Public Functions

inline GmresSolver(const Parameter &p1)#

contructors with key-value system

inline GmresSolver(number_t kd, real_t eps, number_t maxOfIt = defaultMaxIterations, number_t vb = theVerboseLevel)#

Full constructor.

inline GmresSolver(number_t kd = defaultKrylovDimension)#

Constructor with Krylov dimension.

inline ~GmresSolver()#

destructor

inline number_t krylovDimension(const size_t nbRows)#

defines a default value for the Krylov dimension

inline number_t maximumOfIterations(const size_t nbRows)#

Return the maximum iteration as a function of linear system size.

Parameters:

nbRows – number of row of vector unknown X

Returns:

Maximum number of iteration

template<class Mat, class VecB, class VecX>
inline VecX operator()(Mat &matA, VecB &vecB, ValueType solType)#

Template Solvers without a preconditionner and X0 = vecB.

template<class Mat, class VecB, class VecX>
inline VecX operator()(Mat &matA, VecB &vecB, VecX &vecX0)#

Template Solvers without a precondition without argument “solType.

template<class Mat, class VecB, class VecX>
inline VecX operator()(Mat &matA, VecB &vecB, VecX &vecX0, ValueType solType)#

Template Solvers without a preconditioner.

template<class Mat, class VecB, class VecX, class VecPC>
inline VecX operator()(Mat &matA, VecB &vecB, VecX &vecX0, VecPC &pc)#

Template Solvers with a precondition without argument “solType.

template<class Mat, class VecB, class VecX, class VecPC>
inline VecX operator()(Mat &matA, VecB &vecB, VecX &vecX0, VecPC &pc, ValueType solType)#

Template Solvers with a preconditionner.

inline void print(std::ostream &out) const#

print utility