BiCGSTAB.h file
Bi-conjugate gradient stabilized solver for non-symmetric systems.
This header provides the BiCGSTAB solver class, an iterative method for solving non-symmetric linear systems with better convergence properties than the standard Bi-Conjugate Gradient method.
Algorithm
BiCGSTAB solves:
for non-symmetric matrices . It combines BiCG with stabilization to avoid the irregular convergence patterns often seen in BiCG.
Applicability
- Non-symmetric sparse matrices
- Large systems where direct solvers are expensive
- Convection-dominated problems
- Advection-diffusion equations
Usage Example
Problem problem(u, v); problem = Integral(Grad(u), Grad(v)) + Integral(beta * Grad(u), v) - Integral(f, v); Solver::BiCGSTAB solver(problem); solver.setTolerance(1e-10).setMaxIterations(1000).solve();
Namespaces
- namespace Rodin
- The Rodin library for Shape and Topology Optimization.
- namespace Rodin::Solver
- Module for linear algebra systems.
Classes
-
template<class Scalar>class Rodin::Solver::BiCGSTAB<Math::LinearSystem<Math::SparseMatrix<Scalar>, Math::Vector<Scalar>>>
- Bi-conjugate gradient stabilized solver for non-symmetric sparse systems.