<div dir="ltr">Ok I've sent a job with the -eps_mpd 50 option and I still get the same absurd eigenvalues !<div><br><div>You already have the driver .c file (called problem.c I also attach this file) I send you the makefile.</div><div><br></div><div>The subroutine unit_l1_ is a fortran subroutine which gives the number of nonzero elements in 22 rows at once. This subroutine can be compiled in the following way.</div><div><br></div><div>Firstly, it uses the IRPF90 library.</div><div>You can download the library from this github link: <a href="https://github.com/scemama/irpf90.git">https://github.com/scemama/irpf90.git</a><br></div><div>the binary needed "irpf90" should be in the bin directory, just update the relevant PATH environment variables.</div><div><br></div><div>Second, get the codes that generate the unit_l1_ subroutine from the following repository: <a href="https://github.com/v1j4y/slepc_version.git">https://github.com/v1j4y/slepc_version.git</a></div><div><b>please change to branch <i>slepc_testing</i> !</b></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">make<br>make irpf90.a</blockquote><div> </div><div>should give you the irpf90.a library nessessary to compile the problem.c file, I attach the makefile to compile the problem.c file with this mail.</div><div>To compile the final executable, please do "<b>make problem</b>"</div><div><br></div><div>and that should be enough !</div><div>sorry that it is not simpler.</div><div><br></div><div>Please write if you run into problems.</div><div><br></div><div>Thanks,</div><div> Vijay</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 14, 2015 at 5:34 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"><span class=""><br>
El 14/05/2015, a las 17:28, Vijay Gopal Chilkuri escribió:<br>
<br>
> I get the proper eigenvalues (and quite fast) when I ask for only 10-15 of the lowest eigenvalues.<br>
> The only problem is when I ask for m ~ 100-300 of the lowest eigenvalues.<br>
><br>
> Is it possible that asking for large number of eigenvalues would cause problems ?<br>
<br>
</span>It should not be a problem, but you could try running with -eps_mpd 50 to see if it helps.<br>
<span class=""><br>
><br>
> I've got the same problem with smaller matrices of size 540540. Again for this system, if I ask for<br>
> 10-15 eigenvalues I get the proper correct converged eigenvalues, but when I ask for more than 100 eigevalues<br>
> I get incorrect results !<br>
><br>
> If you would like to test I can send you the proper files.<br>
<br>
</span>Yes, send them to me.<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> Thanks,<br>
>  Vijay<br>
><br>
><br>
><br>
><br>
> On Thu, May 14, 2015 at 5:17 PM, Jose E. Roman <<a href="mailto:jroman@dsic.upv.es">jroman@dsic.upv.es</a>> wrote:<br>
><br>
> On 14/05/2015, Vijay Gopal Chilkuri wrote:<br>
><br>
> > Hi,<br>
> ><br>
> > I am using SLEPc to get the lowest m eigenvalues of a large sparse hermitian matrix using Krylov-Schur.<br>
> > The problem is that while asking for a large number of eigenvalues (e.g. 300) for a large problem<br>
> > consisting of a 91454220 X 91454220 system, the solver does not give the lowest 300 eigenvalues.<br>
> > Instead it gives the following arbitrary negative values followed by a few correct ones.<br>
> ><br>
> >    -4733.882429           0.999888<br>
> >    -4729.554413             1.0006<br>
> >    -4725.841715           0.999887<br>
> >    -4702.457861            1.00061<br>
> >    -4700.608105           0.999887<br>
> >    -4691.142733           0.999885<br>
> >       -6.361168            1.18973<br>
> >       -6.361102        6.05898e-09<br>
> >       -6.361099           6.71e-09<br>
> >       -6.361093        7.66471e-09<br>
> >       -6.361082            1.17659<br>
> ><br>
> ><br>
> > Although the solver says that it has successfully converged the 300 eigenvalues !<br>
> > Please find the relevant files attached.<br>
> ><br>
> > Could anyone tell me what I'm doing wrong ?<br>
> ><br>
> > thanks,<br>
> >  Vijay<br>
> ><br>
> > <problem.c><output><br>
><br>
> I do not see anything strange, apart from passing a pointer to long int in an argument of type PetscInt*. To guarantee portability, it would be better if all variables in your program are of type PetscInt, PetscMPIIInt, PetscReal, PetscScalar, etc.<br>
><br>
> I do not know what is going on. Do you get the same behaviour for smaller matrix sizes? Do you get the same problem when computing only a few eigenvalues?<br>
><br>
> Jose<br>
><br>
><br>
><br>
<br>
</div></div></blockquote></div><br></div>