[petsc-users] Solving singular systems with petsc

Nidish nb25 at rice.edu
Sun Aug 16 20:10:16 CDT 2020


Oh damn. Alright, I'll keep trying out the different options.

Thank you,
Nidish

On 8/16/20 8:05 PM, Barry Smith wrote:
>
>   SVD is enormously expensive, needs to be done on a full dense matrix 
> so completely impractical. You need the best tuned iterative method, 
> Jose is the by far the most knowledgeable about that.
>
>    Barry
>
>
>> On Aug 16, 2020, at 7:46 PM, Nidish <nb25 at rice.edu 
>> <mailto:nb25 at rice.edu>> wrote:
>>
>> 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
>
-- 
Nidish
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200816/f774d50e/attachment-0001.html>


More information about the petsc-users mailing list