1 /*-----------------------------------------------------------------
2  * Programmer(s): Daniel R. Reynolds @ SMU
3  * -----------------------------------------------------------------
4  * SUNDIALS Copyright Start
5  * Copyright (c) 2002-2021, Lawrence Livermore National Security
6  * and Southern Methodist University.
7  * All rights reserved.
8  *
9  * See the top-level LICENSE and NOTICE files for details.
10  *
11  * SPDX-License-Identifier: BSD-3-Clause
12  * SUNDIALS Copyright End
13  * -----------------------------------------------------------------
14  * Header file for the deprecated Scaled, Preconditioned Iterative
15  * Linear Solver interface in CVODES; these routines now just wrap
16  * the updated CVODES generic linear solver interface in cvodes_ls.h.
17  * -----------------------------------------------------------------*/
18 
19 #include <cvodes/cvodes_ls.h>
20 #include <cvodes/cvodes_spils.h>
21 
22 #ifdef __cplusplus  /* wrapper to enable C++ usage */
23 extern "C" {
24 #endif
25 
26 /*=================================================================
27   CVSSPILS Exported functions (wrappers for equivalent routines in
28   cvodes_ls.h)
29   =================================================================*/
30 
CVSpilsSetLinearSolver(void * cvode_mem,SUNLinearSolver LS)31 int CVSpilsSetLinearSolver(void *cvode_mem, SUNLinearSolver LS)
32 { return(CVodeSetLinearSolver(cvode_mem, LS, NULL)); }
33 
CVSpilsSetEpsLin(void * cvode_mem,realtype eplifac)34 int CVSpilsSetEpsLin(void *cvode_mem, realtype eplifac)
35 { return(CVodeSetEpsLin(cvode_mem, eplifac)); }
36 
CVSpilsSetPreconditioner(void * cvode_mem,CVSpilsPrecSetupFn pset,CVSpilsPrecSolveFn psolve)37 int CVSpilsSetPreconditioner(void *cvode_mem, CVSpilsPrecSetupFn pset,
38                              CVSpilsPrecSolveFn psolve)
39 { return(CVodeSetPreconditioner(cvode_mem, pset, psolve)); }
40 
CVSpilsSetJacTimes(void * cvode_mem,CVSpilsJacTimesSetupFn jtsetup,CVSpilsJacTimesVecFn jtimes)41 int CVSpilsSetJacTimes(void *cvode_mem, CVSpilsJacTimesSetupFn jtsetup,
42                        CVSpilsJacTimesVecFn jtimes)
43 { return(CVodeSetJacTimes(cvode_mem, jtsetup, jtimes)); }
44 
CVSpilsGetWorkSpace(void * cvode_mem,long int * lenrwLS,long int * leniwLS)45 int CVSpilsGetWorkSpace(void *cvode_mem, long int *lenrwLS,
46                         long int *leniwLS)
47 { return(CVodeGetLinWorkSpace(cvode_mem, lenrwLS, leniwLS)); }
48 
CVSpilsGetNumPrecEvals(void * cvode_mem,long int * npevals)49 int CVSpilsGetNumPrecEvals(void *cvode_mem, long int *npevals)
50 { return(CVodeGetNumPrecEvals(cvode_mem, npevals)); }
51 
CVSpilsGetNumPrecSolves(void * cvode_mem,long int * npsolves)52 int CVSpilsGetNumPrecSolves(void *cvode_mem, long int *npsolves)
53 { return(CVodeGetNumPrecSolves(cvode_mem, npsolves)); }
54 
CVSpilsGetNumLinIters(void * cvode_mem,long int * nliters)55 int CVSpilsGetNumLinIters(void *cvode_mem, long int *nliters)
56 { return(CVodeGetNumLinIters(cvode_mem, nliters)); }
57 
CVSpilsGetNumConvFails(void * cvode_mem,long int * nlcfails)58 int CVSpilsGetNumConvFails(void *cvode_mem, long int *nlcfails)
59 { return(CVodeGetNumLinConvFails(cvode_mem, nlcfails)); }
60 
CVSpilsGetNumJTSetupEvals(void * cvode_mem,long int * njtsetups)61 int CVSpilsGetNumJTSetupEvals(void *cvode_mem, long int *njtsetups)
62 { return(CVodeGetNumJTSetupEvals(cvode_mem, njtsetups)); }
63 
CVSpilsGetNumJtimesEvals(void * cvode_mem,long int * njvevals)64 int CVSpilsGetNumJtimesEvals(void *cvode_mem, long int *njvevals)
65 { return(CVodeGetNumJtimesEvals(cvode_mem, njvevals)); }
66 
CVSpilsGetNumRhsEvals(void * cvode_mem,long int * nfevalsLS)67 int CVSpilsGetNumRhsEvals(void *cvode_mem, long int *nfevalsLS)
68 { return(CVodeGetNumLinRhsEvals(cvode_mem, nfevalsLS)); }
69 
CVSpilsGetLastFlag(void * cvode_mem,long int * flag)70 int CVSpilsGetLastFlag(void *cvode_mem, long int *flag)
71 { return(CVodeGetLastLinFlag(cvode_mem, flag)); }
72 
CVSpilsGetReturnFlagName(long int flag)73 char *CVSpilsGetReturnFlagName(long int flag)
74 { return(CVodeGetLinReturnFlagName(flag)); }
75 
CVSpilsSetLinearSolverB(void * cvode_mem,int which,SUNLinearSolver LS)76 int CVSpilsSetLinearSolverB(void *cvode_mem, int which,
77                             SUNLinearSolver LS)
78 { return(CVodeSetLinearSolverB(cvode_mem, which, LS, NULL)); }
79 
CVSpilsSetEpsLinB(void * cvode_mem,int which,realtype eplifacB)80 int CVSpilsSetEpsLinB(void *cvode_mem, int which, realtype eplifacB)
81 { return(CVodeSetEpsLinB(cvode_mem, which, eplifacB)); }
82 
CVSpilsSetPreconditionerB(void * cvode_mem,int which,CVSpilsPrecSetupFnB psetB,CVSpilsPrecSolveFnB psolveB)83 int CVSpilsSetPreconditionerB(void *cvode_mem, int which,
84                               CVSpilsPrecSetupFnB psetB,
85                               CVSpilsPrecSolveFnB psolveB)
86 { return(CVodeSetPreconditionerB(cvode_mem, which, psetB, psolveB)); }
87 
CVSpilsSetPreconditionerBS(void * cvode_mem,int which,CVSpilsPrecSetupFnBS psetBS,CVSpilsPrecSolveFnBS psolveBS)88 int CVSpilsSetPreconditionerBS(void *cvode_mem, int which,
89                                CVSpilsPrecSetupFnBS psetBS,
90                                CVSpilsPrecSolveFnBS psolveBS)
91 { return(CVodeSetPreconditionerBS(cvode_mem, which, psetBS, psolveBS)); }
92 
CVSpilsSetJacTimesB(void * cvode_mem,int which,CVSpilsJacTimesSetupFnB jtsetupB,CVSpilsJacTimesVecFnB jtimesB)93 int CVSpilsSetJacTimesB(void *cvode_mem, int which,
94                         CVSpilsJacTimesSetupFnB jtsetupB,
95                         CVSpilsJacTimesVecFnB jtimesB)
96 { return(CVodeSetJacTimesB(cvode_mem, which, jtsetupB, jtimesB)); }
97 
CVSpilsSetJacTimesBS(void * cvode_mem,int which,CVSpilsJacTimesSetupFnBS jtsetupBS,CVSpilsJacTimesVecFnBS jtimesBS)98 int CVSpilsSetJacTimesBS(void *cvode_mem, int which,
99                          CVSpilsJacTimesSetupFnBS jtsetupBS,
100                          CVSpilsJacTimesVecFnBS jtimesBS)
101 { return(CVodeSetJacTimesBS(cvode_mem, which, jtsetupBS, jtimesBS)); }
102 
103 
104 #ifdef __cplusplus
105 }
106 #endif
107 
108