00001 /* 00002 * ----------------------------------------------------------------- 00003 * $Revision: 1.3 $ 00004 * $Date: 2006/11/29 00:05:06 $ 00005 * ----------------------------------------------------------------- 00006 * Programmer: Radu Serban @ LLNL 00007 * ----------------------------------------------------------------- 00008 * Copyright (c) 2006, The Regents of the University of California. 00009 * Produced at the Lawrence Livermore National Laboratory. 00010 * All rights reserved. 00011 * For details, see the LICENSE file. 00012 * ----------------------------------------------------------------- 00013 * Header file for the CVODES dense linear solver CVSLAPACK. 00014 * ----------------------------------------------------------------- 00015 */ 00016 00017 #ifndef _CVSLAPACK_H 00018 #define _CVSLAPACK_H 00019 00020 #ifdef __cplusplus /* wrapper to enable C++ usage */ 00021 extern "C" { 00022 #endif 00023 00024 #include <cvodes/cvodes_direct.h> 00025 #include <sundials/sundials_lapack.h> 00026 00027 /* 00028 * ----------------------------------------------------------------- 00029 * Function: CVLapackDense 00030 * ----------------------------------------------------------------- 00031 * A call to the CVLapackDense function links the main integrator 00032 * with the CVSLAPACK linear solver using dense Jacobians. 00033 * 00034 * cvode_mem is the pointer to the integrator memory returned by 00035 * CVodeCreate. 00036 * 00037 * N is the size of the ODE system. 00038 * 00039 * The return value of CVLapackDense is one of: 00040 * CVDIRECT_SUCCESS if successful 00041 * CVDIRECT_MEM_NULL if the CVODES memory was NULL 00042 * CVDIRECT_MEM_FAIL if there was a memory allocation failure 00043 * CVDIRECT_ILL_INPUT if a required vector operation is missing 00044 * ----------------------------------------------------------------- 00045 */ 00046 00047 SUNDIALS_EXPORT int CVLapackDense(void *cvode_mem, int N); 00048 00049 /* 00050 * ----------------------------------------------------------------- 00051 * Function: CVLapackBand 00052 * ----------------------------------------------------------------- 00053 * A call to the CVLapackBand function links the main integrator 00054 * with the CVSLAPACK linear solver using banded Jacobians. 00055 * 00056 * cvode_mem is the pointer to the integrator memory returned by 00057 * CVodeCreate. 00058 * 00059 * N is the size of the ODE system. 00060 * 00061 * mupper is the upper bandwidth of the band Jacobian approximation. 00062 * 00063 * mlower is the lower bandwidth of the band Jacobian approximation. 00064 * 00065 * The return value of CVLapackBand is one of: 00066 * CVDIRECT_SUCCESS if successful 00067 * CVDIRECT_MEM_NULL if the CVODES memory was NULL 00068 * CVDIRECT_MEM_FAIL if there was a memory allocation failure 00069 * CVDIRECT_ILL_INPUT if a required vector operation is missing or 00070 * if a bandwidth has an illegal value. 00071 * ----------------------------------------------------------------- 00072 */ 00073 00074 SUNDIALS_EXPORT int CVLapackBand(void *cvode_mem, int N, int mupper, int mlower); 00075 00076 /* 00077 * ----------------------------------------------------------------- 00078 * Function: CVLapackDenseB 00079 * ----------------------------------------------------------------- 00080 * CVLapackDenseB links the main CVODE integrator with the dense 00081 * CVSLAPACK linear solver for the backward integration. 00082 * ----------------------------------------------------------------- 00083 */ 00084 00085 SUNDIALS_EXPORT int CVLapackDenseB(void *cvadj_mem, int nB); 00086 00087 /* 00088 * ----------------------------------------------------------------- 00089 * Function: CVLapackBandB 00090 * ----------------------------------------------------------------- 00091 * CVLapackBandB links the main CVODE integrator with the band 00092 * CVSLAPACK linear solver for the backward integration. 00093 * ----------------------------------------------------------------- 00094 */ 00095 00096 SUNDIALS_EXPORT int CVLapackBandB(void *cvadj_mem, int nB, int mupperB, int mlowerB); 00097 00098 #ifdef __cplusplus 00099 } 00100 #endif 00101 00102 #endif