Skip to main content
`Ctrl`+`K`

# KSPBuildSolution

Builds the approximate solution in a vector provided.

## Synopsis

    #include "petscksp.h"
    #include "petscmat.h"
    PetscErrorCode KSPBuildSolution(KSP ksp, Vec v, Vec *V)

Collective

## Input Parameter

- ksp - iterative solver obtained from `KSPCreate()`

## Output Parameter

Provide exactly one of

- v - location to stash solution, optional, otherwise pass `NULL`

- V - the solution is returned in this location. This vector is created internally. This vector should NOT be destroyed by the user with `VecDestroy()`.

## Notes

This routine can be used in one of two ways

          KSPBuildSolution(ksp,NULL,&V);
       or
          KSPBuildSolution(ksp,v,NULL); or KSPBuildSolution(ksp,v,&v);

In the first case an internal vector is allocated to store the solution (the user cannot destroy this vector). In the second case the solution is generated in the vector that the user provides. Note that for certain methods, such as `KSPCG`, the second case requires a copy of the solution, while in the first case the call is essentially free since it simply returns the vector where the solution already is stored. For some methods like `KSPGMRES` during the solve this is a reasonably expensive operation and should only be used if truly needed.

## See Also

KSP: Linear System Solvers, `KSPGetSolution()`, `KSPBuildResidual()`, `KSP`

## Level

developer

## Location

src/ksp/ksp/interface/itfunc.c

## Examples

src/ksp/ksp/tutorials/ex57f.F90
src/ksp/ksp/tutorials/ex2f.F90
src/ksp/ksp/tutorials/ex9.c
src/ts/tutorials/ex47.c

## Implementations

KSPBuildSolution_BCGS() in src/ksp/ksp/impls/bcgs/bcgs.c
KSPBuildSolution_FETIDP() in src/ksp/ksp/impls/fetidp/fetidp.c
KSPBuildSolution_GCR() in src/ksp/ksp/impls/gcr/gcr.c
KSPBuildSolution_AGMRES() in src/ksp/ksp/impls/gmres/agmres/agmres.c
KSPBuildSolution_DGMRES() in src/ksp/ksp/impls/gmres/dgmres/dgmres.c
KSPBuildSolution_FGMRES() in src/ksp/ksp/impls/gmres/fgmres/fgmres.c
KSPBuildSolution_GMRES() in src/ksp/ksp/impls/gmres/gmres.c
KSPBuildSolution_LGMRES() in src/ksp/ksp/impls/gmres/lgmres/lgmres.c
KSPBuildSolution_PGMRES() in src/ksp/ksp/impls/gmres/pgmres/pgmres.c
KSPBuildSolution_PIPEFGMRES() in src/ksp/ksp/impls/gmres/pipefgmres/pipefgmres.c

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