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

Bård Skaflestad Bard.Skaflestad at sintef.no
Sun May 2 15:48:36 CEST 2010


Dear Dune,

In one of our projects we need to solve sparse systems of linear equations of the form

    Sx = r  (*)

with 'x' and 'r' being ordinary one-dimensional vectors of scalars.  The operator 'S' is symmetric and positive definite, so we've been using the CGSolver template from ISTL (with the Dune::Amg::AMG template as a preconditioner).  Now a need has arisen where we  would like to extend the system above to the form

    SX = R

where the number of right-hand sides (and solutions) is variable--though fixed (typically at three) during any one run.  So far we've assembled the system matrix once for each right hand side.  I'm probably missing something simple, but is there way in ISTL to have the solvers (e.g., the CGSolver or others) accept multiple right-hand sides (and solutions)?

For reference, these are the types/classes we're currently using to represent the system (*)

    BCRSMatrix< FieldMatrix<double, 1, 1> > S
    BlockVector< FieldVector<double, 1> > x, r

whence we implement the linear solver as a suitable MatrixAdapter of 'S'.

Any and all information and comments is greatly appreciated.


Best regards,
-- 
Bård Skaflestad <Bard.Skaflestad at sintef.no>
SINTEF ICT, Applied Mathematics



More information about the Dune mailing list