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