Hi Matthew and Barry,
Thanks for the quick response.
I also tried superlu and mumps, both work but it is about four times
slower than ILU(dt) prec through hypre, with 24 processors I have
tested. When I look into the convergence information, the method using
ILU(dt) still takes 200 to 3000 linear iterations for each newton
iteration. One reason is this equation is hard to solve. As for the
general cases, the same method works awesome and get very good speedup.
I also doubt if I use hypre correctly for this case. Is there anyway to
check this problem, or is it possible to increase the factorization
level through hypre?
Thanks,
Danyang
On 17-05-24 04:59 AM, Matthew Knepley wrote:
On Wed, May 24, 2017 at 2:21 AM, Danyang Su <[email protected]
<mailto:[email protected]>> wrote:
Dear All,
I use PCFactorSetLevels for ILU and PCFactorSetFill for other
preconditioning in my code to help solve the problems that the
default option is hard to solve. However, I found the latter one,
PCFactorSetFill does not take effect for my problem. The matrices
and rhs as well as the solutions are attached from the link below.
I obtain the solution using hypre preconditioner and it takes 7
and 38 iterations for matrix 1 and matrix 2. However, if I use
other preconditioner, the solver just failed at the first matrix.
I have tested this matrix using the native sequential solver (not
PETSc) with ILU preconditioning. If I set the incomplete
factorization level to 0, this sequential solver will take more
than 100 iterations. If I increase the factorization level to 1 or
more, it just takes several iterations. This remind me that the PC
factor for this matrices should be increased. However, when I
tried it in PETSc, it just does not work.
Matrix and rhs can be obtained from the link below.
https://eilinator.eos.ubc.ca:8443/index.php/s/CalUcq9CMeblk4R
<https://eilinator.eos.ubc.ca:8443/index.php/s/CalUcq9CMeblk4R>
Would anyone help to check if you can make this work by increasing
the PC factor level or fill?
We have ILU(k) supported in serial. However ILU(dt) which takes a
tolerance only works through Hypre
http://www.mcs.anl.gov/petsc/documentation/linearsolvertable.html
I recommend you try SuperLU or MUMPS, which can both be downloaded
automatically by configure, and
do a full sparse LU.
Thanks,
Matt
Thanks and regards,
Danyang
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener
http://www.caam.rice.edu/~mk51/ <http://www.caam.rice.edu/%7Emk51/>