Hey Guys,

I have a problem with impelementing SSOR precondtioner using RCI and hope you can help me with that.

I have written a cg solver using RCI for a symmetric matrix that is stored in CSR format 3 array version. I have also implemented the jacobi preconditioner and it works fine. Now I want to implement SSOR but unfortunately I am lost somehow. There is an example of SSOR in MKL example directory, but in that example the SSOR is implemented in a loop which I don't know why!

Here is the SSOR that I am aware of.

Let's say M is the preconditioner which works as follows:

M rho = r (eq.1)

where r is the current residual ( stored in &tmp[2n] in RCI) and rho is the modified residual (shall be stored in &tmp[3n] in RCI)

M is defined as follow [SAAD 2002]

M = 1/(w(2-w)) (D+wL) D^-1 (D+wU)

where

w = relaxation parameter 0<w<2

U = is the upper part of the matrix A

L = the lower part of the matrix A

D = diagonal of the matrix A

so A = L+D+U and since A is symmetric L= U'

To solve the eq. 1 the following is suggested

Q = 1/(w(2-w)) (D+wL) D^-1

G = (D+wU)

1. Solve Q z = r

2. Solve G rho = z

To perform the above steps we need to triangular solvers. Now my question, what function from mkl should I use to this end? Is it necessary to build Q and G explicitly or the mkl functions can do so?

I would be happy if somebody can give me some hints here.

With best regards.

Meysam