[petsc-users] [PATCH 2/2] Call KSPSetFromOptions before setting fieldsplit-specific options

Umut Tabak u.tabak at tudelft.nl
Mon Sep 9 16:47:25 CDT 2013


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?


>   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?
>
> Note that the Schur complement can be completely different from what was
> in that block of the matrix before factorization.
ok which factorization again?
>
>> 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


>
>> 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.



More information about the petsc-users mailing list