[petsc-users] Solving upper triangular system with pc fieldsplit

Barry Smith bsmith at mcs.anl.gov
Mon Aug 20 08:19:50 CDT 2012


   I think you are asking if you have 

       A00      A01 
          0        A11
  
  Can you use field split trivially to solve this upper block triangular system by doing "backward/reverse" block Gauss-Seidel?

   The very short answer is no

 1) you can use   -pc_fieldsplit_type symmetric_multiplicative but then it does the A00 solve twice unnecessarily

 2)  what Matt is saying you can define you 00 index set to be associated with the second block A11 then that flips the block rows and columns of the matrix and 
    the regular multiplicative field split  will work like the backward block GS on the original matrix.

   Barry


Yes, we could add something like -pc_fieldsplit_type backward_multiplicative but as Matt points out that is not strictly needed.






On Aug 20, 2012, at 7:18 AM, Thomas Witkowski <thomas.witkowski at tu-dresden.de> wrote:

> Am 20.08.2012 13:39, schrieb Matthew Knepley:
>> On Mon, Aug 20, 2012 at 3:09 AM, Thomas Witkowski <thomas.witkowski at tu-dresden.de> wrote:
>> Is it possible to change the PCFIELDSPLIT / block Gauss-Seidel preconditioner to use A_01 instead of A_10 to solve an upper triangular system?
>> 
>> It always uses A_01. What exactly do you want to do?
> In this case the documentation should be changed (see p. 86)
> 
> Thomas
> 
>> 
>>    Matt
>>  
>> 
>> Thomas
>> 
>> 
>> 
>> -- 
>> 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
> 



More information about the petsc-users mailing list