1: /*
2: Private data structure used by the BCGS method. This data structure
3: must be identical to the beginning of the KSP_FBCGS and KSP_QMRCGS data structure
4: so if you CHANGE anything here you must also change it there.
5: */
6: #pragma once
8: #include <petsc/private/kspimpl.h>
10: typedef struct {
11: Vec guess; /* if using right preconditioning with nonzero initial guess must keep that around to "fix" solution */
12: } KSP_BCGS;
14: PETSC_INTERN PetscErrorCode KSPSetFromOptions_BCGS(KSP, PetscOptionItems PetscOptionsObject);
15: PETSC_INTERN PetscErrorCode KSPSetUp_BCGS(KSP);
16: PETSC_INTERN PetscErrorCode KSPSolve_BCGS(KSP);
17: PETSC_INTERN PetscErrorCode KSPBuildSolution_BCGS(KSP, Vec, Vec *);
18: PETSC_INTERN PetscErrorCode KSPReset_BCGS(KSP);
19: PETSC_INTERN PetscErrorCode KSPDestroy_BCGS(KSP);