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 <[email protected]> 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 > >
