[petsc-users] Precision Problem in computing Eigenvalue

Ajay Manwani ajaymanwani07 at gmail.com
Mon Jan 5 04:28:08 CST 2015


Hello, Thank you very much for your reply.
 i installed PETSC in quad and complex mode without C++,(*./configure
--download-mpich --with-fc-gfortran --with-cc=gcc --with-cxx=g++
--with-scalar-type=complex  --with-precision=__float128
--download-f2cblaslapack *)

It worked fine but problem is eigenvalues we get by PEPSolve() are correct
and then as i use PEPGetPair(), i get absurd values.
I want to write eigenvalues and eigenpairs to a text file hence i need to
use PEPGetEigenpair command

--Ajay


On Thu, Dec 25, 2014 at 3:12 PM, Jose E. Roman <jroman at dsic.upv.es> wrote:

>
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150105/8719dd09/attachment.html>


More information about the petsc-users mailing list