[petsc-users] error with slepc shift invert: New nonzero at (0, 0) caused a malloc!
John Travers
jtravs at gmail.com
Tue Aug 27 10:00:45 CDT 2013
On 27 Aug 2013, at 16:25, Jose E. Roman <jroman at dsic.upv.es> wrote:
>
> El 27/08/2013, a las 16:18, Jed Brown escribió:
>
>> John Travers <jtravs at gmail.com> writes:
>>
>>> Hi all,
>>>
>>> I'm trying to use shift and invert to find interior eigenvalues using slepc.
>>> I am using example 4 in slepc 3.41 which reads the matrix from a binary file ('A' saved from Matlab).
>>>
>>> If I run just:
>>> ./ex4 -file A -eps_nev 1
>>> the program runs fine, and correctly finds the largest eigenvalue (although much slower than Matlab's eigs).
>>
>> You can't compare performance when running in debug mode. If the
>> algorithm converges slower, we can figure out why.
>>
>>> However, if I run:
>>> ./ex4 -file A -eps_nev 1 -st_type sinvert -st_shift 0.0,0.5
>>> to try and find an eigenvalue near 0.0+0.5i, it outputs the error message below.
>>
>> Please just insert a value 0.0 along the diagonal of your matrix.
>> MatShift would be more expensive and could hide memory performance bugs
>> if it silently reallocated to add diagonal entries.
>
> Note that you should use -eps_target 0.0,0.5 instead of -st_shift.
OK, thanks for the heads up.
More information about the petsc-users
mailing list