Skip to main content
`Ctrl`+`K`

# KSPMatSolve

Solves a linear system with multiple right-hand sides stored as a `MATDENSE`.

## Synopsis

    #include "petscksp.h"
    #include "petscmat.h"
    PetscErrorCode KSPMatSolve(KSP ksp, Mat B, Mat X)

## Input Parameters

- ksp - iterative solver

- B - block of right-hand sides

## Output Parameter

- X - block of solutions

## Notes

This is a stripped-down version of `KSPSolve()`, which only handles `-ksp_view`, `-ksp_converged_reason`, `-ksp_converged_rate`, and `-ksp_view_final_residual`.

Unlike with `KSPSolve()`, `B` and `X` must be different matrices.

## See Also

KSP: Linear System Solvers, `KSPSolve()`, `MatMatSolve()`, `KSPMatSolveTranspose()`, `MATDENSE`, `KSPHPDDM`, `PCBJACOBI`, `PCASM`, `KSPSetMatSolveBatchSize()`

## Level

intermediate

## Location

src/ksp/ksp/interface/itfunc.c

## Examples

src/ksp/ksp/tutorials/ex77.c
src/ksp/ksp/tutorials/ex79.c
src/ksp/ksp/tutorials/ex77f.F90
src/ksp/ksp/tutorials/ex76.c
src/ksp/ksp/tutorials/ex76f.F90

## Implementations

KSPMatSolve_HPDDM() in src/ksp/ksp/impls/hpddm/hpddm.cxx
KSPMatSolve_PREONLY() in src/ksp/ksp/impls/preonly/preonly.c

Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages