Class xlifepp::BicgStabSolver#

class BicgStabSolver : public xlifepp::IterativeSolver#

Inheritence diagram for xlifepp::BicgStabSolver:

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

Collaboration diagram for xlifepp::BicgStabSolver:

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::BicgStabSolver" tooltip="xlifepp::BicgStabSolver" 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 BiConjugate Gradient Stabilized algorithm.

Public Functions

inline BicgStabSolver()#

Default Constructor.

inline BicgStabSolver(const Parameter &p1)#

contructors with key-value system

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

Full Constructor.

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 BiCGStab is not guaranteed to converge in nbRows iterations so the default value is set to 2*nbRows

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, class Prec>
inline VecX operator()(Mat &matA, VecB &vecB, VecX &vecX0, Prec &pc, ValueType solType)#

Template Solvers with a preconditioner.

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

Template Solvers without a precondition.

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 VecX>
inline VecX operator()(Mat &matA, VecX &vecB, ValueType solType)#

Template Solvers without a preconditionner and vecX0 = vecB.