[petsc-users] Eigensolution with matrices from mixed formulation problems

Jose E. Roman jroman at dsic.upv.es
Thu Dec 5 08:31:03 CST 2019



> El 5 dic 2019, a las 15:12, Manav Bhatia <bhatiamanav at gmail.com> escribió:
> 
> Thanks! 
> 
> Does the purify option only changes the eigenvector without influencing the eigenvalue? 

Yes.

> 
> -Manav
> 
>> On Dec 5, 2019, at 1:54 AM, Jose E. Roman <jroman at dsic.upv.es> wrote:
>> 
>> In symmetric problems (GHEP) you might have large residuals due to B being singular. The explanation is the following. By default, in SLEPc GHEPs are solved via a B-Lanczos recurrence, that is, using the inner product induced by B. If B is singular this is not a true inner product and numerical problems may arise, in particular, the computed eigenvectors may be corrupted with components in the null space of B. This is easily solved by a small computation called 'eigenvector purification' which is on by default in SLEPc, see EPSSetPurify(). This is described with a bit more detail in section 3.4.4 of the manual.
>> 
>> In non-symmetric problems (GNHEP) you should not see this problem. The only precaution is not to solve systems with matrix B, e.g., using shift-and-invert.
>> 
>> Jose
>> 
>> 
>>> El 5 dic 2019, a las 5:04, Manav Bhatia <bhatiamanav at gmail.com> escribió:
>>> 
>>> Hi, 
>>> 
>>> I am working on mixed form finite element discretization which leads to eigenvalues of the form
>>> 
>>> A x = lambda B x 
>>> 
>>> With the matrices defined in a block structure as
>>> 
>>> A =    [ K  D^T ] 
>>>         [ D  0     ] 
>>> 
>>> B =   [ M  0 ] 
>>>        [ 0   0 ]
>>> 
>>> The second row of equations come from Lagrange multipliers in our discretization scheme. A system with m Lagrange multiplier is expected to have m Inf eigenvalues. We are testing the standard eigensolvers in Matlab and as the system size increases the eigensolves are stopping with larger residuals, || r_i ||, of the eigensystem: 
>>> 
>>> r_i = A x_i - lambda_i B x_i 
>>> 
>>> I am working towards setting this up in SLEPc. In the meantime I am curious about the following: 
>>> 
>>> 1.  Is the eigensolution of such systems known to be problematic? 
>>> 2.  Are there standard tricks in SLEPc or elsewhere that are geared towards more robust solutions of such systems? 
>>> 
>>>  I would appreciate guidance on this. 
>>> 
>>> Regards,
>>> Manav 
>>> 
>>> 
>> 
> 



More information about the petsc-users mailing list