Actual source code: bcgslimpl.h
petsc-3.3-p5 2012-12-01
1: /*
2: Private data structure for BiCGStab(L) solver.
3: Allocation takes place before each solve.
4: */
7: #include <petscsys.h>
9: typedef struct {
10: PetscInt ell; /* Number of search directions. */
11: PetscReal delta; /* Threshold for recomputing exact residual norm */
12: PetscBool bConvex; /* Compute Enhanced BiCGstab polynomial when set to PETSC_TRUE */
13:
14: /* Workspace Vectors */
15: Vec vB;
16: Vec vRt;
17: Vec vXr;
18: Vec vTm;
19: Vec *vvR;
20: Vec *vvU;
22: /* Workspace Arrays */
23: PetscScalar *vY0c, *vYlc, *vYtc;
24: PetscScalar *mZa, *mZb;
25: } KSP_BCGSL;
27: /* predefined shorthands */
28: #define VX (ksp->vec_sol)
29: #define VB (bcgsl->vB)
30: #define VRT (bcgsl->vRt)
31: #define VXR (bcgsl->vXr)
32: #define VTM (bcgsl->vTm)
33: #define VVR (bcgsl->vvR)
34: #define VVU (bcgsl->vvU)
35: #define AY0c (bcgsl->vY0c)
36: #define AYtc (bcgsl->vYtc)
37: #define AYlc (bcgsl->vYlc)
38: #define MZa (bcgsl->mZa)
39: #define MZb (bcgsl->mZb)
41: #endif