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

Oliver Sander sander at mi.fu-berlin.de
Mon May 3 09:45:03 CEST 2010


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.

best,
Oliver

Am 03.05.2010 09:39, schrieb Bård Skaflestad:
> Dear Carsten,
>
>    
>> Am 02.05.2010 22:28, schrieb Bård Skaflestad:
>>      
>>>      krylov-method
>>>        preconditioner
>>>          foreach rhs
>>>        
>> with this approach you will compute one step size for all right hand
>> sides in the Krylov step. This might lead to suboptimal convergence
>> compared to the approach where you solve the systems independently with
>> optimal step size for each system.
>>      
> Right.  I didn't think of that.  Silly me.  In light of this
> information it is clearly better to structure our solver as
>
>      Assemble matrix and right hand side(s)
>      Form the MatrixAdapter operator
>      Form the AMG preconditioner
>      Construct linear solver object: linsolve
>
>      for each rhs
>          linsolve.apply(rhs)
>
> Thanks a lot for your patience, all of you.  I feel enlightened.  Not
> bad at all on a Monday morning in May ;-)
>
>
> Best regards,
>    


-- 
************************************************************************
* Oliver Sander                ** email: sander at mi.fu-berlin.de        *
* Freie Universität Berlin     ** phone: + 49 (30) 838 75348           *
* Institut für Mathematik      ** URL  : page.mi.fu-berlin.de/~sander  *
* Arnimallee 6                 ** -------------------------------------*
* 14195 Berlin, Germany        ** Member of MATHEON (www.matheon.de)   *
************************************************************************





More information about the Dune mailing list