[petsc-users] Solving singular systems with petsc
Matthew Knepley
knepley at gmail.com
Sun Aug 16 11:27:08 CDT 2020
On Sun, Aug 16, 2020 at 12:26 PM Nidish <nb25 at rice.edu> wrote:
> Well some of the zero eigenvectors are rigid body modes, but there are
> some more which are introduced by lagrange-multiplier based constraint
> enforcement, which are non trivial.
>
> My final application is for a nonlinear simulation, so I don't mind the
> extra computational effort initially. Could you have me the suggested
> solver configurations to get this type of eigenvectors in slepc?
>
Follow the example that Jose linked to.
Thanks,
Matt
> Nidish
> On Aug 16, 2020, at 00:17, Jed Brown <jed at jedbrown.org> wrote:
>>
>> It's possible to use this or a similar algorithm in SLEPc, but keep in mind that it's more expensive to compute these eigenvectors than to solve a linear system. Do you have a sequence of systems with the same null space?
>>
>> You referred to the null space as "rigid body modes". Why can't those be written down? Note that PETSc has convenience routines for computing rigid body modes from coordinates.
>>
>> Nidish <nb25 at rice.edu> writes:
>>
>> I just use the standard eigs function (https://www.mathworks.com/help/matlab/ref/eigs.html) as a black box. I think it uses a lanczos type method under the hood.
>>>
>>> Nidish
>>>
>>> On Aug 15, 2020, 21:42, at 21:42, Barry Smith <bsmith at petsc.dev> wrote:
>>>
>>>>
>>>> Exactly what algorithm are you using in Matlab to get the 10 smallest
>>>> eigenvalues and their corresponding eigenvectors?
>>>>
>>>> Barry
>>>>
>>>>
>>>> On Aug 15, 2020, at 8:53 PM, Nidish <nb25 at rice.edu> wrote:
>>>>>
>>>>> The section on solving singular systems in the manual starts with
>>>>>
>>>> assuming that the singular eigenvectors are already known.
>>>>
>>>>>
>>>>> I have a large system where finding the singular eigenvectors is not
>>>>>
>>>> trivially written down. How would you recommend I proceed with making
>>>> initial estimates? In MATLAB (with MUCH smaller matrices), I conduct an
>>>> eigensolve for the first 10 smallest eigenvalues and take the
>>>> eigenvectors corresponding to the zero eigenvalues from this. This
>>>> approach doesn't work here since I'm unable to use SLEPc for solving
>>>>
>>>>>
>>>>> K.v = lam*M.v
>>>>>
>>>>> for cases where K is positive semi-definite (contains a few "rigid
>>>>>
>>>> body modes") and M is strictly positive definite.
>>>>
>>>>>
>>>>> I'd appreciate any assistance you may provide with this.
>>>>>
>>>>> Thank you,
>>>>> Nidish
>>>>>
>>>>
--
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
https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200816/f5e697a7/attachment-0001.html>
More information about the petsc-users
mailing list