The action `M inverse' of the preconditioner M (an approximation of A-lambdaI) on an n-vector v can be defined in the Options
Options.Precond
Options.LPrecond (same as Options.Precond) Options.UPrecond Options.PPrecond |
and also in the argument list:
If no preconditioner has been specified (or is [ ]), then
Mv = v (M is the identity).
If Precond is an n by n matrix, say, K, then
Mv = Kv.
If Precond is an N by 2N matrix, say, K, then
Mv = ULv, where K = [L,U], and L and U are n by n matrices.
If Precond is a string, say, 'Mi', then
if Mi(v,'L') and Mi(v,'U') return n-vectors | |
Mv = Mi(Mi(v,'L'),'U') | |
otherwise | |
Mv = Mi(v) or Mv = Mi(v,'preconditioner'). |
Note that Precond and A can be the same string.
If LPrecond and UPrecond are strings, say, 'Li' and 'Ui', respectively, then
Mv = Ui(Li(v)).
If (Pprecond,) LPrecond, and Uprecond are n by n matrices, say, (P,) L, and U, respectively, then
Mv = UL(Pv) (i.e., PM = LU).
The way the preconditioner
is used can be specified in the Options.