int CVSpgmrSetDeltB(void *cvadj_mem, realtype deltB) { CVadjMem ca_mem; void *cvode_mem; int flag; if (cvadj_mem == NULL) return(CV_ADJMEM_NULL); ca_mem = (CVadjMem) cvadj_mem; cvode_mem = (void *) ca_mem->cvb_mem; flag = CVSpgmrSetDelt(cvode_mem,deltB); return(flag); }
void FCV_SPGMRREINIT(int *pretype, int *gstype, realtype *delt, int *ier) { /* pretype the preconditioner type gstype the Gram-Schmidt process type delt the linear convergence tolerance factor */ *ier = CVSpgmrSetPrecType(CV_cvodemem, *pretype); if (*ier != CVSPGMR_SUCCESS) return; *ier = CVSpgmrSetGSType(CV_cvodemem, *gstype); if (*ier != CVSPGMR_SUCCESS) return; *ier = CVSpgmrSetDelt(CV_cvodemem, *delt); if (*ier != CVSPGMR_SUCCESS) return; CV_ls = 4; }
void FCV_SPGMR(int *pretype, int *gstype, int *maxl, realtype *delt, int *ier) { /* pretype the preconditioner type maxl the maximum Krylov dimension gstype the Gram-Schmidt process type delt the linear convergence tolerance factor */ *ier = CVSpgmr(CV_cvodemem, *pretype, *maxl); if (*ier != CVSPGMR_SUCCESS) return; *ier = CVSpgmrSetGSType(CV_cvodemem, *gstype); if (*ier != CVSPGMR_SUCCESS) return; *ier = CVSpgmrSetDelt(CV_cvodemem, *delt); if (*ier != CVSPGMR_SUCCESS) return; CV_ls = 4; }
void FCV_BBDSPGMR(int *pretype, int *gstype, int *maxl, realtype *delt, int *ier) { /* Call CVBBDSpgmr to specify the SPGMR linear solver: pretype is the preconditioner type gstype is the Gram-Schmidt process type maxl is the maximum Krylov dimension delt is the linear convergence tolerance factor */ *ier = CVBBDSpgmr(CV_cvodemem, *pretype, *maxl, CVBBD_Data); if (*ier != CVSPGMR_SUCCESS) return; *ier = CVSpgmrSetGSType(CV_cvodemem, *gstype); if (*ier != CVSPGMR_SUCCESS) return; *ier = CVSpgmrSetDelt(CV_cvodemem, *delt); if (*ier != CVSPGMR_SUCCESS) return; CV_ls = 4; }