On 12/28/2014 07:12 PM, Jed Brown wrote:
Alp Kalpalp <[email protected]> writes:
Is the force moving or just increasing? The idea with this class of
methods is that you add a Galerkin coarse correction where the basis
functions approximate some low-frequency eigenvectors of the system.
The projection is relatively expensive in parallel, but could save
iterations. It's not "scalable" for many outlier eigenvalues because
the projection space would get too big as the problem size is increased,
but when combined with a decent-but-not-too-good preconditioner, could
improve performance.
Well, I am following the discussion since it is also interesting for me.
I am not sure if it will help for future, but let me give an overview
from my research experience:
As a poor engineer, my experience was with iterative methods on
ill-conditioned problems, all the FE stiffness matrices are ill
conditioned due to the multiplication of the gradient operators,
especially the ones for thin structures encountered in vibroacoustics,
or shell like structures for instance, and on these problems I could
never get successful results with my tries even with the projections
w.r.t. the previous vectors. Tim Davies has some kind of nice guidelines
when to use iterative methods, I do not remember the links now but you
should be able to find them easily, after reading them and trying more I
did not continue more on that...
Preconditioner side: my experience was that one should be really lucky
to get a good preconditioner which is really really rare, as mentioned,
especially for ill-conditioned problems, almost impossible. If my
condition number estimate is above, say, 1e4 1e5, I do not expect much
from iterative methods, for SPD problems of course, my 2 cents, without
theoretical details of Krylov subspace methods.
BR,
Umut
You can implement this in the general case using PCCOMPOSITE+PCGALERKIN
or with PCMG. You can also use KSPDGMRES or KSPAGMRES (man page missing
in the release -- I reactivated, but look at the code until it
regenerates), which attempt to automatically build a space.
http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/KSP/KSPDGMRES.html
You could implement a deflated CG in a similar way if you want to
automatically extract the deflation vectors from the CG iteration.