MPIBAIJ and sor

Barry Smith bsmith at
Tue Oct 27 16:03:46 CDT 2009

   As you will already know. Jed corrected me, I was wrong and there  
is a relax for BAIJ.


On Oct 27, 2009, at 4:00 PM, Stephan Kramer wrote:

> Barry Smith wrote:
>>    Stephan,
>>    There is no MatRelax_ for BAIJ matrices and it is only written  
>> for  SBAIJ (symmetric storage) for block size 1.
> Ah ok
>>    Most people end up using ILU(0) or ICC(0) for relaxing with  
>> block  matrices. It converges much better (generally) and takes the  
>> same  amount of time. The only drawback is that it requires another  
>> copy of  the matrix (uses more memory) for the "factored" version.  
>> Most people  are time constrained instead of memory constrained so  
>> this is not an  issue.
> Will give ILU a try then. I'm using this to solve an implicit dg  
> momentum
> equation in an ocean model: so basically advection and diffusion terms
> (tensor form) and some coupling between the momentum components due
> to coriolis. In serial I found a significant improvement in
> convergence using the block structure (corresponding to dg
> elements). We have used both SOR and ILU before for our momentum
> equation, their performance usually didn't differ
> much (depending on problem type), sor overall gave a more robust
> performance which is why it's our default now. Not sure what the best
> choice is in terms of parallel scalability to be honest. Memory  
> usage is a
> big concern, dg gives a lot of degrees of freedom (most people just  
> use it
> explicitly in fact), so we have a huge matrix.
>>    It would not be terribly difficult to add relaxation for BAIJ;  
>> it  has to be done one block size at a time. What block size do you  
>> need,  are you interested in writing it?
> Typically 3 (triangles in 2 dimensions) or 4 (tets in 3D).  Wouldn't
> mind having a look at implementing, will do some experiments with  
> ILU first though.
> Thanks
> Stephan
>>    Barry
>> On Oct 27, 2009, at 3:28 PM, Stephan Kramer wrote:
>>> Hi all,
>>> I'm slightly confused by the fact that if I use my BAIJ matrix in   
>>> parallel and select the sor preconditioner. it complains about mat-
>>>> ops->relax and mat->ops->pbrelax not being defined. Also I can't
>>> find a MatRelax_MPIBAIJ in src/mat/impls/baij/mpi/mpibaij.c as I   
>>> would have expected. Is there no sor type relaxation for parallel   
>>> block matrices at all?
>>> Cheers
>>> Stephan
> -- 
> Stephan Kramer  <s.kramer at>
> Applied Modelling and Computation Group,
> Department of Earth Science and Engineering,
> Imperial College London

More information about the petsc-users mailing list