Actual source code: bcgslimpl.h

  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