[petsc-users] BiCGSTAB for general use
Paul Anton Letnes
paul.anton.letnes at gmail.com
Fri Aug 12 12:26:08 CDT 2011
On 12. aug. 2011, at 16.42, Jed Brown wrote:
> On Fri, Aug 12, 2011 at 10:09, Paul Anton Letnes <paul.anton.letnes at gmail.com> wrote:
> The problem is a discretized integral equation. It does not quite fall into the boundary element category, but it's not too far off, in a sense. I did not do any sophisticated analysis of the singular values, but I do know that the condition number (largest over smallest singular value) is not too bad.
>
> Thanks for the problem description. Is this a second kind integral operator? Such systems have "compact + identity" structure, which means that they can be approximated by low-rank perturbations of the identity. It also means that Krylov methods converge quickly once they pick up the few eigenvalues that are not tightly clustered near 1. (The "compact" part implies that the number of such outliers should be independent of the spatial resolution in your discretization.)
I'm not 100% sure what you mean by "second kind integral operator", but it is a Fredholm equation of the first kind, as far as I understand (my background is physics rather than mathematics).
>
> If you have a fast way to apply the operator (and note that floating point units are currently 20x to 50x faster than memory bandwidth for matrix-vector products), even unpreconditioned Krylov methods may be able to solve your problem well. You can put your algorithm for applying the matrix inside a MatShell so that all the Krylov methods will work with it.
That's what I was thinking - so assuming I need to use only a few iterations of BiCGSTAB, it may pay off to skip storing the whole (huge!) matrix.
I'll look at the MatShell thing, maybe it's what I need.
> http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-dev/docs/manualpages/Mat/MatCreateShell.html#MatCreateShell
>
> If you have a hierarchical discretization, or possibly better, a hierarchical way to apply your operator, then you may be able to use the hierarchy to put together a multigrid method. Don't worry about this part until you have gotten your solver working with a Krylov method, and only then if (a) the number of iterations is sitll large and (b) you want to direct a fair amount of research effort to this topic. If you meet both criteria, write back and we can discuss further.
It looks like this is in the distant future. As I mentioned, similar (I think, more difficult) problems have been solved, in (if I recall correctly) about 5 iterations.
Cheers, and thanks for the help...
Paul
More information about the petsc-users
mailing list