[Dune] Applying an ISTL InverseOperator to multiple right-hand sides

Bård Skaflestad Bard.Skaflestad at sintef.no
Tue May 4 11:18:49 CEST 2010


Hi Markus,

On Tue, 2010-05-04 at 10:45 +0200, Markus Blatt wrote:
> Hi,
> 
> On Mon, May 03, 2010 at 05:52:58PM +0200, Bård Skaflestad wrote:
> > 
> > > Hi Bård!
> > > 
> > > Assembling the matrix once and then solving for all rhs at once (e.g.
> > > with a BCRSMatrix<ScaledIdMatrix>) may(!) still be faster, because you
> > > get a better cache usage.
> > 
> > Hi Oliver,
> > 
> > The ScaledIdentityMatrix is indeed a possible solution.  I'll
> > investigate its performance characteristics in my case.  
> 
> While AMG compiles if SuperLU is deactivated, not using a direct solver
>  on the coarse level might present a problem concerning convergence.

Indeed.  When I started to use Dune I initially tried using the AMG
preconditioner without a direct solver on the coarse level.  Let's just
say that the overall convergence in some cases was...underwhelming ;-) 
Adding SuperLU to the mix was a real performance booster.

> Therefore one should consider the time to adapt SuperLU to the matrix
>  type.

I'll leave that endeavour in your capable hands, but I just wanted to
ask if there is a specific reason you don't support, e.g., UMFPACK as a
coarse-level solver.  I consider "no time" a valid reason, by the way.


Cheers,

Bård





More information about the Dune mailing list