BiConjugate Gradient Stabilized (BiCGSTAB) method. More...
Public Types | |
| using | backend_type = Backend |
| using | BackendType = Backend |
| typedef Backend::vector | vector |
| typedef Backend::value_type | value_type |
| typedef Backend::params | backend_params |
| typedef math::scalar_of< value_type >::type | scalar_type |
| typedef math::inner_product_impl< typenamemath::rhs_of< value_type >::type >::return_type | coef_type |
| using | params = BiCGStabSolverParams |
Public Member Functions | |
| BiCGStabSolver (size_t n, const params &prm=params(), const backend_params &backend_prm=backend_params(), const InnerProduct &inner_product=InnerProduct()) | |
Preallocates necessary data structures for the system of size n. | |
| template<class Matrix, class Precond, class Vec1, class Vec2> | |
| SolverResult | operator() (const Matrix &A, const Precond &P, const Vec1 &rhs, Vec2 &&x) const |
| template<class Precond, class Vec1, class Vec2> | |
| SolverResult | operator() (const Precond &P, const Vec1 &rhs, Vec2 &&x) const |
| size_t | bytes () const |
| Memory used in bytes. | |
Public Attributes | |
| params | prm |
Private Member Functions | |
| template<class Vec> | |
| scalar_type | norm (const Vec &x) const |
Private Attributes | |
| size_t | n |
| std::shared_ptr< vector > | r |
| std::shared_ptr< vector > | p |
| std::shared_ptr< vector > | v |
| std::shared_ptr< vector > | s |
| std::shared_ptr< vector > | t |
| std::shared_ptr< vector > | rh |
| std::shared_ptr< vector > | T |
| InnerProduct | inner_product |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const BiCGStabSolver &s) |
BiConjugate Gradient Stabilized (BiCGSTAB) method.
The BiConjugate Gradient Stabilized method (Bi-CGSTAB) was developed to solve nonsymmetric linear systems while avoiding the often irregular convergence patterns of the Conjugate Gradient [Barr94]_.
Definition at line 102 of file BiCGStabSolver.h.
| typedef Backend::params Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::backend_params |
Definition at line 112 of file BiCGStabSolver.h.
| using Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::backend_type = Backend |
Definition at line 107 of file BiCGStabSolver.h.
| using Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::BackendType = Backend |
Definition at line 108 of file BiCGStabSolver.h.
| typedef math::inner_product_impl<typenamemath::rhs_of<value_type>::type>::return_type Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::coef_type |
Definition at line 117 of file BiCGStabSolver.h.
| using Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::params = BiCGStabSolverParams |
Definition at line 119 of file BiCGStabSolver.h.
| typedef math::scalar_of<value_type>::type Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::scalar_type |
Definition at line 114 of file BiCGStabSolver.h.
| typedef Backend::value_type Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::value_type |
Definition at line 111 of file BiCGStabSolver.h.
| typedef Backend::vector Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::vector |
Definition at line 110 of file BiCGStabSolver.h.
|
inline |
Preallocates necessary data structures for the system of size n.
Definition at line 122 of file BiCGStabSolver.h.
|
inlinevirtual |
Memory used in bytes.
Implements Arcane::Alina::SolverBase.
Definition at line 255 of file BiCGStabSolver.h.
|
inlineprivate |
Definition at line 293 of file BiCGStabSolver.h.
|
inline |
Definition at line 151 of file BiCGStabSolver.h.
|
inline |
Definition at line 250 of file BiCGStabSolver.h.
|
friend |
Definition at line 266 of file BiCGStabSolver.h.
|
private |
Definition at line 290 of file BiCGStabSolver.h.
|
private |
Definition at line 280 of file BiCGStabSolver.h.
|
private |
Definition at line 283 of file BiCGStabSolver.h.
| params Arcane::Alina::BiCGStabSolver< Backend, InnerProduct >::prm |
Definition at line 276 of file BiCGStabSolver.h.
|
private |
Definition at line 282 of file BiCGStabSolver.h.
|
private |
Definition at line 287 of file BiCGStabSolver.h.
|
private |
Definition at line 285 of file BiCGStabSolver.h.
|
private |
Definition at line 288 of file BiCGStabSolver.h.
|
private |
Definition at line 286 of file BiCGStabSolver.h.
|
private |
Definition at line 284 of file BiCGStabSolver.h.