[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