[petsc-users] Problem with Finding Eigenvalues using SLEPc

Paul Cruise paul.cruise.paul at gmail.com
Fri Sep 28 03:21:08 CDT 2012


Hello Jose,

Thanks for your reply. Unfortunately, I still get the same error if I do
what you suggested.

Please see the code below;
*
 call MatCreate(PETSC_COMM_WORLD,A,ierr)
      call MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,3*natoms,3*natoms,ierr)
      call MatSetFromOptions(A,ierr)
      call MatSetUp(A,ierr)

      do n=1,number_of_elements
              call
MatSetValues(A,3*natoms,indices(n,1),3*natoms,indices(n,2),elements(n),INSERT_VALUES,ierr)
              call
MatSetValues(A,3*natoms,indices(n,2),3*natoms,indices(n,1),elements(n),ADD_VALUES,ierr)
      end do

      call MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY,ierr)
      call MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY,ierr)

      call MatGetVecs(A,v,w,ierr)
      call MatMult(A,v,w,ierr)
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
!     Create the eigensolver and display info
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

!     ** Create eigensolver context
      call EPSCreate(PETSC_COMM_WORLD,eps,ierr)

!     ** Set operators. In this case, it is a standard eigenvalue problem
      call EPSSetOperators(eps,A,PETSC_NULL_OBJECT,ierr)
      call EPSSetProblemType(eps,EPS_HEP,ierr)

!     ** Set solver parameters at runtime
      call EPSSetFromOptions(eps,ierr)

! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
!     Solve the eigensystem
! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

      call EPSSolve(eps,ierr)*

Could you suggest  a workaround?

Thanks,
Paul


On Thu, Sep 27, 2012 at 3:39 PM, Jose E. Roman <jroman at dsic.upv.es> wrote:

> Before using EPS, try something like this and see if you get the same
> error:
>
> call MatGetVecs(A,v,w,ierr)
> call MatMult(A,v,w,ierr)
>
> Jose
>
> El 27/09/2012, a las 14:55, Paul Cruise escribió:
>
> > The error messages that I have is,
> >
> > [0]PETSC ERROR: --------------------- Error Message
> ------------------------------------
> > [0]PETSC ERROR: Floating point exception!
> > [0]PETSC ERROR: Vec entry at local location 0 is not-a-number or
> infinite at beginning of function: Parameter number 2!
> > [0]PETSC ERROR:
> ------------------------------------------------------------------------
> > [0]PETSC ERROR: Petsc Release Version 3.3.0, Patch 2, Fri Jul 13
> 15:42:00 CDT 2012
> > [0]PETSC ERROR: See docs/changes/index.html for recent updates.
> > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
> > [0]PETSC ERROR: See docs/index.html for manual pages.
> > [0]PETSC ERROR:
> ------------------------------------------------------------------------
> > [0]PETSC ERROR:
> /gpfs/home/swayamjyoti_s/slepc-3.3/src/eps/examples/tutorials/Test/ex1f on
> a arch-linu named merlinc19 by swayamjyoti_s Thu Sep 27 14:20:49 2012
> > [0]PETSC ERROR: Libraries linked from
> /gpfs/home/swayamjyoti_s/petsc-3.3/arch-linux2-c-debug/lib
> > [0]PETSC ERROR: Configure run at Tue Aug 21 15:47:21 2012
> > [0]PETSC ERROR: Configure options --with-fc=ifort
> --download-f-blas-lapack --download-mpich
> > [0]PETSC ERROR:
> ------------------------------------------------------------------------
> > [0]PETSC ERROR: MatMult() line 2081 in
> /gpfs/home/swayamjyoti_s/petsc-3.3/src/mat/interface/matrix.c
> > [0]PETSC ERROR: STApply_Shift() line 41 in src/st/impls/shift/shift.c
> > [0]PETSC ERROR: STApply() line 67 in src/st/interface/stsolve.c
> > [0]PETSC ERROR: EPSFullLanczos() line 179 in
> src/eps/impls/krylov/krylov.c
> > [0]PETSC ERROR: EPSSolve_KrylovSchur_Symm() line 58 in
> src/eps/impls/krylov/krylovschur/ks-symm.c
> > [0]PETSC ERROR: EPSSolve() line 130 in src/eps/interface/solve.c
> >
> > Could someone please help how to fix these?
> >
> >
> > On Thu, Sep 27, 2012 at 2:12 PM, Paul Cruise <paul.cruise.paul at gmail.com>
> wrote:
> >
> > Hello,
> >
> > I input a hessian matrix of size (5148 X 5148 size) into SLEPc to find
> it's eigenvalues (using EPS) as follows:
> >
> > call MatCreate(PETSC_COMM_WORLD,A,ierr)
> >       call
> MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,3*natoms,3*natoms,ierr)
> >       call MatSetFromOptions(A,ierr)
> >       call MatSetUp(A,ierr)
> >
> >       do n=1,number_of_elements
> >               call
> MatSetValues(A,3*natoms,indices(n,1),3*natoms,indices(n,2),elements(n),INSERT_VALUES,ierr)
> >       end do
> >
> >       call MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY,ierr)
> >       call MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY,ierr)
> >
> > But somehow, the eigenvalues do not seem to converge as I find the
> following output:
> >
> >  Number of iterations of the method:   1
> >  Solution method: krylovschur
> >  Number of requested eigenvalues: 1
> >  Number of iterations of the method:   1
> >  Solution method: krylovschur
> >  Number of requested eigenvalues: 1
> >  Stopping condition: tol=1.0000E-08, maxit= 648
> >  Number of converged eigenpairs: 0
> >
> > Can someone please tell me what's the problem, because this matrix for
> sure has eigenvalues as I have obtained before without using SLEPc?
> >
> > Thanks & Regards,
> > Paul
> >
> >
> >
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120928/7e2e1f44/attachment.html>


More information about the petsc-users mailing list