[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