[petsc-users] [PATCH 2/2] Call KSPSetFromOptions before setting fieldsplit-specific options
Matthew Knepley
knepley at gmail.com
Mon Sep 9 17:23:10 CDT 2013
On Mon, Sep 9, 2013 at 4:47 PM, Umut Tabak <u.tabak at tudelft.nl> wrote:
> On 09/08/2013 06:45 PM, Jed Brown wrote:
>
>> Umut Tabak <u.tabak at tudelft.nl> writes:
>>
>> On 09/08/2013 06:17 PM, Jed Brown wrote:
>>>
>>>> block is indefinite, even worse.
>>>> A11 indefinite could lead to the Schur complement being singular. The
>>>> approach breaks down if that's the case. A11 singular or negative
>>>> semi-definite is the standard case.
>>>>
>>> Even not singular, an already ill-conditioned problem becomes worse with
>>> a Schur complement approach.
>>>
>> I don't know what you're trying to say,
>>
> Hi Jed,
>
> I thought a bit more on this problem, if there are some matrices
>
> (A-\sigmaB) C
> C^T (D-\sigmaE)
>
> in blocks.
>
> The Schur complement is
>
> S = (D-\sigmaE) - C^T(A-\sigmaB)^{-1}C
>
> Is there a way to approximate the condition number of S, cheaply, not that
> I know of but just asking?
>
Not without more information. Have you looked at any papers for your
problem?
> but using factorization makes
>> sense when you set the problem up so that the Schur complement is better
>> behaved than the original problem (either because it's better
>> conditioned or because you have a practical preconditioner for it). Of
>> course you can choose bad splittings so that the Schur complement is
>> worse (or singular).
>>
> Can you rephrase the above, I could not understand which factorization is
> mentioned above for instance?
>
This is only one factorization here, the Schur factorization.
>
>> Note that the Schur complement can be completely different from what was
>> in that block of the matrix before factorization.
>>
> ok which factorization again?
>
Above.
>
>> And it is almost impossible to define a SPD preconditioner that could
>>> work with S to result in decent iteration counts.
>>>
>>> This was a question I asked a couple of weeks ago but did not have the
>>> time to go into details.
>>>
>>> I guess these kinds of separation ideas and use of independent
>>> factorizations or combined preconditioners for different blocks will not
>>> work for this problem...
>>>
>> Possible, or you're doing it wrong.
>>
>> You need to read the literature for problems of your type. There are a
>>>> few possible approaches to approximating the Schur complement. The
>>>> splitting into blocks also might not be very good.
>>>>
>>> well I took a look at the literature but could not really find something
>>> useful up until now. The main difference was one of the blocks was
>>> either SPD or well-conditioned(for A00 or A11).
>>>
>>> More specifically, my problem is a kind of shifted problem for
>>> eigenvalue solutions without going into too much detail. The symmetric
>>> operator matrix is written as
>>>
>>> AA
>>> =
>>> (A-\sigmaB) C
>>> C^T (D-\sigmaE)
>>>
>>> and C is a rather sparse coupling matrix
>>>
>>> A00 = A-\sigmaB block is ill conditioned due to the shift
>>>
>>> and
>>>
>>> A11 = (D-\sigmaE)
>>>
>>> block is indefinite where D is a singular matrix with one zero
>>> eigenvalue with 1 vector in the null space. E is rather well conditioned
>>> but in combination it is not attackable by iterative methods. Moreover,
>>> Schur complements are defined on this problematic system, AA.
>>>
>> Take a small problem size and use SVD to compute the extreme singular
>> values of S = A11 - C^T A00^{-1} C. Also get an estimate of the
>> spectrum so you can tell whether it's indefinite.
>>
> Ok took a small problem and explicitly computed S
>
> MATLAB eigs returns
>
> s =
>
> -9.573038036040949e-04
> -1.030047395371149e-02
> 1.217726918930923e-02
> 1.532790465307093e-02
> -2.037544234417839e-02
> 2.038856908922073e-02
> -3.080232110141994e-02
> 3.217578262967955e-02
> -3.621899833039557e-02
> -4.812298722347947e-02
>
> as the smallest eigenvalues
>
> smallest singular values with svds in MATLAB again are
>
> 4.812298722126469e-02
> 3.621899832617895e-02
> 3.217578263194974e-02
> 3.080232110105591e-02
> 2.038856907069070e-02
> 2.037544233721312e-02
> 1.532790465411290e-02
> 1.217726916867209e-02
> 1.030047395359284e-02
> 9.573038068612779e-04
>
Its not that badly conditioned, so you need to understand your operators
better
to discover why your solver is not converging.
Matt
>
>> There is some literature on these shifted problems but I am not sure if
>>> I should dive into that field or not at this point.
>>>
>>> Trying the 'fieldsplit' approach was some kind of a 'what-if' for me...
>>>
>>> But thanks for the help and comments anyway.
>>>
>>
>
--
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130909/d8c803c3/attachment.html>
More information about the petsc-users
mailing list