[petsc-users] Problem with Finding Eigenvalues using SLEPc
Matthew Knepley
knepley at gmail.com
Fri Sep 28 05:03:19 CDT 2012
On Fri, Sep 28, 2012 at 4:21 AM, Paul Cruise <paul.cruise.paul at gmail.com>wrote:
> 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?
>
Is it EXACTLY the same error, or an error in the MatMult you added? Please
send the entire error output each time or we are just guessing blindly.
Also, you can use the debugger to see exactly what the value is.
Matt
> 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
>> >
>> >
>> >
>> >
>> >
>>
>>
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120928/3d630f10/attachment-0001.html>
More information about the petsc-users
mailing list