<div dir="ltr"><span style="font-size:12.7272720336914px">Hello, Thank you very much for your reply.</span><div style="font-size:12.7272720336914px"> i installed PETSC in quad and complex mode without C++,(<i style="font-size:12.7272720336914px">./configure --download-mpich --with-fc-gfortran --with-cc=gcc --with-cxx=g++  --with-scalar-type=complex  --with-precision=__float128 --download-f2cblaslapack </i><span style="font-size:12.7272720336914px">)</span></div><div style="font-size:12.7272720336914px"> </div><div style="font-size:12.7272720336914px">It worked fine but problem is eigenvalues we get by PEPSolve() are correct and then as i use PEPGetPair(), i get absurd values. <div>I want to write eigenvalues and eigenpairs to a text file hence i need to use PEPGetEigenpair command</div></div><div style="font-size:12.7272720336914px"><div><img src="https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif"></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div>--Ajay<br><div><br></div></div></div></div></div>
<br><div class="gmail_quote">On Thu, Dec 25, 2014 at 3:12 PM, Jose E. Roman <span dir="ltr"><<a href="mailto:jroman@dsic.upv.es" target="_blank">jroman@dsic.upv.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
El 25/12/2014, a las 09:27, Ajay Manwani escribió:<br>
<div><div class="h5"><br>
> Hello,<br>
><br>
> 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.<br>
> Here, A0 and A2 are tridiagonal matrices while A1 has only single element at with imaginary value.<br>
> The complex eigenvalues are such that real part is around 1 while imaginary part is in the range of 1e-12 to 1e-15.<br>
><br>
>  PEP solver gives out 600 complex eigenvalues having 300 complex conjugate pairs.<br>
> 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)<br>
><br>
> The solver gives eigenvalues of the pair the same when the imaginary values are more than 1e-10.<br>
><br>
> 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.<br>
><br>
> other options -pep_smallest imaginary and changing the solver types also does not seem to work.<br>
><br>
> Is there some way one can improve answers I mean more precise value of very small imaginary part of eigenvalue?<br>
><br>
> 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.<br>
>  Kindly suggest any way to improve precision for imaginary values below (1e-10)<br>
><br>
> Regards,<br>
> Ajay Manwani<br>
><br>
<br>
</div></div>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).<br>
<br>
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).<br>
<span class="HOEnZb"><font color="#888888"><br>
Jose<br>
<br>
</font></span></blockquote></div><br></div></div>