preconditioner for matrix-free linear system
Satish Balay
balay at mcs.anl.gov
Tue Apr 14 13:27:55 CDT 2009
Any perticular reason for using your own matrix storage format? Does
this work in parallel?
All PETSc preconditioners are matrix based [different petsc
matrix storage formats support different set of preconditioners]. We
also have interface to external preconditioners [for eg: superlu_dist,
mumps etc] that have their own matrix format [so there is a matrix
convertion operation that happens when these types are choosen].
So you have 3 options:
1. Continue to use your matrix-format for 'AMat' via MATSHELL but
construct a 'PMat' [i,e preconditioner matrix] in the PETSc matrix
storage format. A preconditioner matrix can be an approximate matrix -
doesn't have to be a full matrix.
2. Create/convert the current matrix in the PETSc storage [perhaps
AIJ] format - and use this for both 'AMat' and 'PMat'.
3. Write your own application based preconditioner [by using PCSHELL]
Satish
On Tue, 14 Apr 2009, Yongcheng Zhou wrote:
> hi there,
>
> I want to link my own package with PETSc in order to make use of its
> various preconditioners. I am using
> matrix free method, so that I can directly refer the large matrix
> saved in my own format. The connection
> works OK without preconditioners, but runs into trouble when most of
> the preconditioners is called.
> For example, I got this message when using PCICC preconditionder:
>
> Matrix format shell does not have a built-in PETSc direct solver!
>
> So my question is how to utilize PETSc's powerful preconditioners for
> my matrix-free application.
>
> Thanks,
>
> Rocky
>
More information about the petsc-users
mailing list