The most important changes with respect to
the December 2008 version are:
The preconditioner can be passed in decomposed form.
Matrix-vector multiplication and preconditioning operations
can be defined by functions.
Optional residual smoothing.
Optional residual replacements to achieve accuracy close to machine
precision.
test_idrs.tgz:
a test set of 11 examples (also includes
idrs.m).
This manual describes
idrs.m).
and the accompanying test set.
example_idrs.m:
(requires
idrs.m):
a Matlab script that generates a 3D, discretized
Convection-Diffusion-Reaction problem on the unit cube.
The parameters can be changed via a user interface in order to generate
different test problems.
The picture below shows the convergence behavior of
IDR(1),
IDR(2),
IDR(4),
IDR(8),
and the built-in Matlab routines
for (full) GMRES and Bi-CGSTAB when solving the test
problem with default parameters, which
yields a highly non-symmetric and indefinite system of
approximately 60,000 equations.
An Ocean Circulation Problem.
We use
this test problem
to illustrate the flexibility of the
IDR(\(s\))
function
idrs.m,
by combining subdomain deflation
(cf. J. Frank and C. Vuik. On the construction of deflation-based
preconditioners. SIAM Journal on Scientific Computing, 23:442-462,2001)
and IDR(\(s\)),
without modifying
idrs.m.
Python
idrs:
a direct translation of the Matlab version described above.
Provided by
Reinaldo
Astudillo (Delft University of Technology).
Fortran
mm_idrs.tar (November 10, 2020):
an F90/F95 package for testing
different variants of IDR(s) on problems in matrix-market
format and for comparing the performance of IDR(s) and BiCGSTAB.
Unrolling creates the directory MM-IDRS.
Enter
make
in this directory and then enter
idrs
for instructions.
idrs-f90.tar:
an advanced F90/F95 implementation of
IDR(\(s\))
for solving linear systems and linear matrix equations.
It comes with a test program that explains how to use the software.
Feedback is welcome!
idrs_Arash.tar:
a simple F90/F95 implementation of
IDR(\(s\)).
Provided by
Arash Ghasemi
(National Center for Computational Engineering, University of Tennessee).