[petsc-users] Precision Problem in computing Eigenvalue

Jose E. Roman jroman at dsic.upv.es
Thu Dec 25 03:42:41 CST 2014


El 25/12/2014, a las 09:27, Ajay Manwani escribió:

> Hello,
> 
> I am trying to solve Schroginger equation with open boundary conditions. The problem boils down to a complex polynomial eigenvalue equation of order two with A0,A1,A2 matrices of the size 300 x 300.
> Here, A0 and A2 are tridiagonal matrices while A1 has only single element at with imaginary value.
> The complex eigenvalues are such that real part is around 1 while imaginary part is in the range of 1e-12 to 1e-15.
>  
>  PEP solver gives out 600 complex eigenvalues having 300 complex conjugate pairs.
> However problem is that the real part of two states is same while complex part of the eigenvalues differs by a order of one.( i mean ~e-14 and ~e-15)
> 
> The solver gives eigenvalues of the pair the same when the imaginary values are more than 1e-10.
> 
> I tried with -pep_tol 1e-18. -pep_max_it 10000. However, answer does not change for eigenvalues with imaginary part of the order of ~1e-15.
> 
> other options -pep_smallest imaginary and changing the solver types also does not seem to work.
> 
> Is there some way one can improve answers I mean more precise value of very small imaginary part of eigenvalue? 
>  
> We have tried  -st_type sinvert -st_transform  as well as -pep_target and -rg_type ellipse(region filtering) but there still the problem persists.
>  Kindly suggest any way to improve precision for imaginary values below (1e-10)   
> 
> Regards,
> Ajay Manwani
> 

You are close to the machine precision, so I would not be surprised of such small differences. You could try in quad precision to get higher relative accuracy (let me know if problems arise).

I would try sinvert on target=1 with different types of scaling, EPSSetScale(). We are also in the process of adjusting the convergence criteria, which may affect you, so if you want send us your matrices and we will give them a try (send them to slepc-maint).

Jose



More information about the petsc-users mailing list