Yes, with sinvert its working. And using -eps_target instead of
-st_shift didn't change anything.

I also just sent you the matrices for reproduction of the issue.

Michael

Am 27.09.19 um 13:32 schrieb Jose E. Roman:
> Try setting -eps_target -1 instead of -st_shift -1
> Does sinvert work with target -1?
> Can you send me the matrices so that I can reproduce the issue?
>
> Jose
>
>
>> El 27 sept 2019, a las 13:11, Michael Werner <[email protected]> 
>> escribió:
>>
>> Thank you for the link to the paper, it's quite interesting and pretty
>> close to what I'm doing. I'm currently also using the "inexact" approach
>> for my application, and in general it works, as long as the ksp
>> tolerance is low enough. However, I was hoping to speed up convergence
>> towards the "interesting" eigenvalues by using Cayley.
>>
>> Now as a test I tried to follow the approach from your paper, choosing
>> mu = -sigma, and mu in the order of magnitude of the imaginary part of
>> the most amplified eigenvalue. I know the most amplified eigenvalue for
>> my problem is -0.0398+0.724i, so I tried running SLEPc with the
>> following settings:
>> -st_type cayley
>> -st_shift -1
>> -st_cayley_antishift 1
>>
>> But I never get the correct eigenvalue, instead SLEPc returns only the
>> value of st_shift:
>> [0]      Number of iterations of the method: 1
>> [0]      Solution method: krylovschur
>> [0]      Number of requested eigenvalues: 1
>> [0]      Stopping condition: tol=1e-08, maxit=19382
>> [0]      Number of converged eigenpairs: 16
>> [0]     
>> [0]              k          ||Ax-kx||/||kx||
>> [0]      ----------------- ------------------
>> [0]          -1.000000          0.0281754
>> [0]          -1.000000          0.0286815
>> [0]          -1.000000          0.0109186
>> [0]          -1.000000           0.140883
>> [0]          -1.000000           0.203036
>> [0]          -1.000000         0.00801616
>> [0]          -1.000000          0.0526871
>> [0]          -1.000000           0.022244
>> [0]          -1.000000          0.0182197
>> [0]          -1.000000          0.0107924
>> [0]          -1.000000         0.00963378
>> [0]          -1.000000          0.0239422
>> [0]          -1.000000         0.00472435
>> [0]          -1.000000         0.00607732
>> [0]          -1.000000          0.0124056
>> [0]          -1.000000         0.00557715
>>
>> Also, it doesn't matter if I'm using exact or inexact solves. Changing
>> the values of shift and antishift also doesn't change the behaviour. Do
>> I need to make additional adjustments to get cayley to work?
>>
>> Best regards,
>> Michael
>>
>>
>>
>> Am 25.09.19 um 17:21 schrieb Jose E. Roman:
>>>> El 25 sept 2019, a las 16:18, Michael Werner via petsc-users 
>>>> <[email protected]> escribió:
>>>>
>>>> Hello,
>>>>
>>>> I'm looking for advice on how to set shift and antishift for the cayley
>>>> spectral transformation. So far I've been using sinvert to find the
>>>> eigenvalues with the smallest real part (but possibly large imaginary
>>>> part). For this, I use the following options:
>>>> -st_type sinvert
>>>> -eps_target -0.05
>>>> -eps_target_real
>>>>
>>>> With sinvert, it is easy to understand how to chose the target, but for
>>>> Cayley I'm not sure how to set shift and antishift. What is the
>>>> mathematical meaning of the antishift?
>>>>
>>>> Best regards,
>>>> Michael Werner
>>> In exact arithmetic, both shift-and-invert and Cayley build the same Krylov 
>>> subspace, so no difference. If the linear solves are computed "inexactly" 
>>> (iterative solver) then Cayley may have some advantage, but it depends on 
>>> the application. Also, iterative solvers usually are not robust enough in 
>>> this context. You can see the discussion here 
>>> https://doi.org/10.1108/09615530410544328
>>>
>>> Jose
>>>




Reply via email to