Loading...
Searching...
No Matches
<tt>mic</tt>

modified incomplete Cholesky factorization preconditionner

# Synopsis

        solver pa = mic(a);

# Description

`mic` is a function that returns the modified incomplete Cholesky factorization preconditioner as a `solver`. The method is described in

        C-J. Lin and J. J. More,
        Incomplete Cholesky factorizations with limited memory,
        SIAM J. Sci. Comput. 21(1), pp. 24-45, 1999

It performs the following incomplete factorization: `S P A P^T S` that approximates `L L^T` where `L` is a lower triangular factor, `S` is a diagonal scaling matrix, and `P` is a fill-in reducing permutation as computed by the `AMDcol` ordering method.

# Options

This preconditioner supports an option related to the shifting strategy: let `B = S P A P^T S` be the scaled matrix on which the factorization is carried out, and `beta` be the minimum value of the diagonal. If `beta > 0` then, the factorization is directly performed on the matrix `B`. Otherwise, the factorization is performed on the shifted matrix `B + (shift+|beta|I` where `shift` is the provided option. The default value is `shift = 0.001`. If the factorization fails, then the shift is doubled until it succeed or a maximum of ten is reached. If it still fails, it is better to use another preconditioning technique.

        Float shift = 1e-3;
        solver pa = mic (a,shift);

# Implementation

This documentation has been generated from file linalg/lib/mic.h