[petsc-users] testing for and removing a null space using JFNK

Mark Adams mfadams at lbl.gov
Thu Apr 4 06:45:16 CDT 2019


On Thu, Apr 4, 2019 at 7:35 AM Dave Lee <davelee2804 at gmail.com> wrote:

> Thanks Mark,
>
> I already have the Navier Stokes solver. My issue is wrapping it in a JFNK
> solver to find the periodic solutions. I will keep reading up on SVD
> approaches, there may be some capability for something like this in SLEPc.
>

Yes, SLEPc will give you parallel eigen solvers, etc.


>
> Cheers, Dave.
>
> On Thu, Apr 4, 2019 at 10:32 PM Mark Adams <mfadams at lbl.gov> wrote:
>
>> [keep on list]
>>
>> On Thu, Apr 4, 2019 at 7:08 AM Dave Lee <davelee2804 at gmail.com> wrote:
>>
>>> Hi Mark,
>>>
>>> Thanks for responding. My brief scan of the literature suggested that
>>> there are some methods out there to approximate the null space using SVD
>>> methods, but I wasn't sure how mature these methods were, or if PETSc had
>>> some capability in this regard.
>>>
>>
>> SVDs will do it but they are expensive.
>>
>>
>>>
>>> My problem is to wrap a Newton solver around an existing incompressible
>>> Navier Stokes solver in order to iterate over the NS solution so as to
>>> determine periodic structures within a weakly nonlinear flow.
>>>
>>
>> Other team members have more experience with INS. We have a lot of
>> capabilities for this.
>>
>> You could start by looking at:
>>
>>
>> https://www.mcs.anl.gov/petsc/documentation/tutorials/HandsOnExercise.html#example4
>>
>>
>>
>>> I think there is a null space within my problem due to the
>>> incompressibility constraint (ie: the linear dependence of one velocity
>>> component on the others). I have some other ideas on how this may be
>>> removed before assembling the residual, so hopefully I can fix this at the
>>> level of the residual vector assembly before the problem manifests at the
>>> level of the Krylov vectors.
>>>
>>> Thanks again for clarifying.
>>>
>>> Cheers, Dave.
>>>
>>> On Thu, Apr 4, 2019 at 8:26 PM Mark Adams <mfadams at lbl.gov> wrote:
>>>
>>>> The Krylov space can not see the null space (by definition) and so
>>>> getting a useful near null space from it is not likely.
>>>>
>>>> Getting a null space is a hard problem and bootstrap AMG methods, for
>>>> instance, are developed to try to do that. This is an advanced research
>>>> topic.
>>>>
>>>> You really want to know your null space, what kind of equations do you
>>>> have?
>>>>
>>>> Mark
>>>>
>>>> On Thu, Apr 4, 2019 at 4:28 AM Dave Lee via petsc-users <
>>>> petsc-users at mcs.anl.gov> wrote:
>>>>
>>>>> Hello PETSc,
>>>>>
>>>>> I'm attempting to solve a JFNK problem for a system where I only have
>>>>> a function to compute the residual, but no matrix.
>>>>>
>>>>> I wanted to know if there exists functionality in PETSc to do the
>>>>> following:
>>>>>
>>>>> 1) approximate a null space from a set of Krylov vectors
>>>>>
>>>>> 2) remove such a null space if it exists
>>>>>
>>>>> I'm vaguely familiar with the MatNullSpaceCreate/Remove()
>>>>> functionality, however I don't know the precise form of a null space, so I
>>>>> don't have a set of vectors I can assemble and pass to this.
>>>>>
>>>>> Cheers, Dave.
>>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190404/c88d068c/attachment.html>


More information about the petsc-users mailing list