how to inverse a sparse matrix in Petsc?

Yujie recrusader at gmail.com
Tue Feb 5 11:32:52 CST 2008


Hi, Lisandro

I have tried to use BoomerAMG for my problem. My problem is a set of
elliptic-type linear PDEs. They are strong
coupled. The convergence was bad. I tried to adjust some parameters, the
convergence had some improvements and was always bad.
I have little knowledge about your problem. I have discussed my
problem with Hypre developers,
they told me that if the PDEs are strong coupled, it is difficult to use
BoomerAMG.

Regards,
Yujie

On 2/5/08, Lisandro Dalcin <dalcinl at gmail.com> wrote:
>
> Ben, some time ago I was doing some testing with PETSc for solving
> incompressible NS eqs with fractional step method. I've found that in
> our software and hardware setup, the best way to solve the pressure
> problem was by using HYPRE BoomerAMG. This preconditioner usually have
> some heavy setup, but if your Poison matrix does not change, then the
> sucessive solves at each time step are really fast.
>
> If you still want to use a direct method, you should use the
> combination '-ksp_type preonly -pc_type lu' (by default, this will
> only work on sequential mode, unless you build PETSc with an external
> package like MUMPS). This way, PETSc computes the LU factorization
> only once, and at each time step, the call to KSPSolve end-up only
> doing the triangular solvers.
>
> The nice thing about PETSc is that, if you next realize the
> factorization take a long time (as it usually take in big problems),
> you can switch BoomerAMG by only passing in the command line
> '-ksp_type cg -pc_type hypre -pc_hypre_type boomeramg'. And that's
> all, you do not need to change your code. And more, depending on your
> problem you can choose the direct solvers or algebraic multigrid as
> you want, by simply pass the appropriate combination options in the
> command line (or a options file, using the -options_file option).
>
> Please, if you ever try HYPRE BoomerAMG preconditioners, I would like
> to know about your experience.
>
> Regards,
>
> On 2/5/08, Ben Tay <zonexo at gmail.com> wrote:
> > Hi everyone,
> >
> > I was reading about the topic abt inversing a sparse matrix. I have to
> > solve a poisson eqn for my CFD code. Usually, I form a system of linear
> > eqns and solve Ax=b. The "A" is always the same and only the "b" changes
> > every timestep. Does it mean that if I'm able to get the inverse matrix
> > A^(-1), in order to get x at every timestep, I only need to do a simple
> > matrix multiplication ie x=A^(-1)*b ?
> >
> > Hi Timothy, if the above is true, can you email me your Fortran code
> > template? I'm also programming in fortran 90. Thank you very much
> >
> > Regards.
> >
> > Timothy Stitt wrote:
> > > Yes Yujie, I was able to put together a parallel code to invert a
> > > large sparse matrix with the help of the PETSc developers. If you need
> > > any help or maybe a Fortran code template just let me know.
> > >
> > > Best,
> > >
> > > Tim.
> > >
> > > Waad Subber wrote:
> > >> Hi
> > >> There was a discussion between Tim Stitt and petsc developers about
> > >> matrix inversion, and it was really helpful. That was in last Nov.
> > >> You can check the emails archive
> > >>
> > >>
> http://www-unix.mcs.anl.gov/web-mail-archive/lists/petsc-users/2007/11/threads.html
> > >>
> > >>
> > >> Waad
> > >>
> > >> */Yujie <recrusader at gmail.com>/* wrote:
> > >>
> > >>     what is the difference between sequantial and parallel AIJ
> matrix?
> > >>     Assuming there is a matrix A, if
> > >>     I partitaion this matrix into A1, A2, Ai... An.
> > >>     A is a parallel AIJ matrix at the whole view, Ai
> > >>     is a sequential AIJ matrix? I want to operate Ai at each node.
> > >>     In addition, whether is it possible to get general inverse using
> > >>     MatMatSolve() if the matrix is not square? Thanks a lot.
> > >>
> > >>     Regards,
> > >>     Yujie
> > >>
> > >>
> > >>     On 2/4/08, *Barry Smith* <bsmith at mcs.anl.gov
> > >>     <mailto:bsmith at mcs.anl.gov>> wrote:
> > >>
> > >>
> > >>             For sequential AIJ matrices you can fill the B matrix
> > >> with the
> > >>         identity and then use
> > >>         MatMatSolve().
> > >>
> > >>             Note since the inverse of a sparse matrix is dense the B
> > >>         matrix is
> > >>         a SeqDense matrix.
> > >>
> > >>             Barry
> > >>
> > >>         On Feb 4, 2008, at 12:37 AM, Yujie wrote:
> > >>
> > >>         > Hi,
> > >>         > Now, I want to inverse a sparse matrix. I have browsed the
> > >>         manual,
> > >>         > however, I can't find some information. could you give me
> > >>         some advice?
> > >>         >
> > >>         > thanks a lot.
> > >>         >
> > >>         > Regards,
> > >>         > Yujie
> > >>         >
> > >>
> > >>
> > >>
> > >>
> ------------------------------------------------------------------------
> > >> Looking for last minute shopping deals? Find them fast with Yahoo!
> > >> Search.
> > >> <
> http://us.rd.yahoo.com/evt=51734/*http://tools.search.yahoo.com/newsearch/category.php?category=shopping
> >
> > >
> > >
> > >
> > >
> >
> >
>
>
> --
> Lisandro Dalcín
> ---------------
> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
> Tel/Fax: +54-(0)342-451.1594
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20080205/d54f4472/attachment.htm>


More information about the petsc-users mailing list