[petsc-users] Solving singular systems with petsc

Nidish nb25 at rice.edu
Sun Aug 16 19:46:18 CDT 2020


Thank you for the suggestions.

I'm getting a zero pivot error for the LU in slepc while calculating the 
rest of the modes.

Would conducting an SVD for just the stiffness matrix and then using the 
singular vectors as bases for the nullspace work? I haven't tried this 
out just yet, but I'm wondering if you could provide me insights into 
whether this will.

Thanks,
Nidish

On 8/16/20 2:50 PM, Barry Smith wrote:
>
>   If you know part of your null space explicitly (for example the 
> rigid body modes) I would recommend you always use that information 
> explicitly since it is extremely expensive numerically to obtain. Thus 
> rather than numerically computing the entire null space compute the 
> part orthogonal to the part you already know. Presumably SLEPc has 
> tools to help do this, naively I would just orthogonalized against the 
> know subspace during the computational process but there are probably 
> better ways.
>
>    Barry
>
>
>
>
>> On Aug 16, 2020, at 11:26 AM, Nidish <nb25 at rice.edu 
>> <mailto: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?
>>
>> Nidish
>> On Aug 16, 2020, at 00:17, Jed Brown <jed at jedbrown.org 
>> <mailto: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  <mailto: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 <mailto: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
>>                 <mailto: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 
>>
>
-- 
Nidish
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200816/f5fcd6bb/attachment-0001.html>


More information about the petsc-users mailing list