[dune-pdelab] Deflated CG

Carsten Gräser graeser at mi.fu-berlin.de
Tue Jul 11 12:08:33 CEST 2017


Hi,

Am 11.07.2017 um 11:42 schrieb Christian Engwer:
> Hi Marian, hi Anne,
> 
> depending on what you know about the kernel, you can modify your
> preconditioner to take care ...
> 
> In the case of Marian (pure Neumann BC) you can simply write a wrapper
> around the preconditioner to do the projection back onto the zero-mean
> sub-space.

you should be really carefull when doing this. If the
preconditioner mixes up contributions from the kernel
and the range of your matrix, then the new projected
preconditioner will not be symmetric.

First projecting the residual, then applying the
preconditioner, and finally projecting again should
preserve symmetry.

Best,
Carsten


> 
> What you are basically doing is, you extend your system with
> lagrange-multipliers to make it regular again:
> 
> / A B \ /u\ = /b\
> \ C 0 / \l/   \0/
> 
> Then you rewrite everything in a Schur-complement style and use this
> with an approximate inverse of A as a preconditioner.
> 
> Which are these 6 modes? Are you doing mechanics... i.e. roation and
> translation modes?
> 
> An other option for singular problems is to try the MinRES, which
> should be able to compe with these...
> 
> Ciao
> Christian
> 
> On Tue, Jul 11, 2017 at 11:11:46AM +0200, Marian Piatkowski wrote:
>> Hi Anne,
>>
>>
>> there is no deflated CG, neither in ISTL nor in PDELab. But maybe the
>> following comment might also help.
>>
>> Since you are solving problems with singular matrices, my question is:
>>
>> Do you observe that the norm of the residual gets more likely stuck in the
>> parallel case whereas in the sequential case the CG solver does converge.
>>
>> If so, you could orthogonalize the corrections in CG against the null space
>> of the matrix. But this requires of course a priori knowledge of the null
>> space of your matrix (in particular an orthogonal basis with respect to the
>> Euclidian scalar product). You can have a look at my code in order to see
>> what needs to be changed inside the CG solver. Unfortunately I have only
>> hard-coded this to the case of one-dimensional kernel spanned by the
>> constant vector.
>>
>>
>> I have attached the file with the modified CG solver. The relevant code
>> starts at line 74. Just search after 'if(singular)' inside this class.
>>
>>
>> Regards,
>>
>> Marian
>>
>>
>>
>> On 07/10/2017 09:59 PM, Anne Reinarz wrote:
>>>
>>> Hi everyone,
>>>
>>> I have a linear system I'm trying to solve with CG preconditioned with
>>> AMG, but the operator has a kernel of dimension 6, so the norm of the
>>> residual is very high and the stopping criterion doesn't seem to work. I
>>> was wondering if other people have had similar problems. Is there is a
>>> deflated preconditioned CG available, or something similar?
>>>
>>> Thanks for your help,
>>> Anne
>>>
>>>
>>>
>>> _______________________________________________
>>> dune-pdelab mailing list
>>> dune-pdelab at lists.dune-project.org
>>> http://lists.dune-project.org/mailman/listinfo/dune-pdelab
>>
> 
> 
>> _______________________________________________
>> dune-pdelab mailing list
>> dune-pdelab at lists.dune-project.org
>> http://lists.dune-project.org/mailman/listinfo/dune-pdelab
> 
> 
> _______________________________________________
> dune-pdelab mailing list
> dune-pdelab at lists.dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-pdelab
> 


-- 
Prof. Dr. Carsten Gräser
Freie Universität Berlin
Institut für Mathematik
Arnimallee 6
14195 Berlin, Germany
phone: +49 30 838 72637
fax  : +49 30 838 472637
email: graeser at mi.fu-berlin.de
URL  : http://page.mi.fu-berlin.de/graeser

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20170711/3d5e7182/attachment.sig>


More information about the dune-pdelab mailing list