00001 /* 00002 * ----------------------------------------------------------------- 00003 * $Revision: 1.4 $ 00004 * $Date: 2006/11/29 00:05:06 $ 00005 * ----------------------------------------------------------------- 00006 * Programmer(s): Alan C. Hindmarsh, and Radu Serban @ LLNL 00007 * ----------------------------------------------------------------- 00008 * Copyright (c) 2002, 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 * This is the header file for the IDABAND linear solver module. 00014 * ----------------------------------------------------------------- 00015 */ 00016 00017 #ifndef _IDABAND_H 00018 #define _IDABAND_H 00019 00020 #ifdef __cplusplus /* wrapper to enable C++ usage */ 00021 extern "C" { 00022 #endif 00023 00024 #include <ida/ida_direct.h> 00025 #include <sundials/sundials_band.h> 00026 00027 /* 00028 * ----------------------------------------------------------------- 00029 * Function : IDABand 00030 * ----------------------------------------------------------------- 00031 * A call to the IDABand function links the main integrator 00032 * with the IDABAND linear solver module. 00033 * 00034 * ida_mem is the pointer to the integrator memory returned by 00035 * IDACreate. 00036 * 00037 * mupper is the upper bandwidth of the banded Jacobian matrix. 00038 * 00039 * mlower is the lower bandwidth of the banded Jacobian matrix. 00040 * 00041 * The return values of IDABand are: 00042 * IDABAND_SUCCESS = 0 if successful 00043 * IDABAND_LMEM_FAIL = -1 if there was a memory allocation failure 00044 * IDABAND_ILL_INPUT = -2 if the input was illegal or NVECTOR bad. 00045 * 00046 * NOTE: The band linear solver assumes a serial implementation 00047 * of the NVECTOR package. Therefore, IDABand will first 00048 * test for a compatible N_Vector internal representation 00049 * by checking that the N_VGetArrayPointer function exists. 00050 * ----------------------------------------------------------------- 00051 */ 00052 00053 SUNDIALS_EXPORT int IDABand(void *ida_mem, int Neq, int mupper, int mlower); 00054 00055 #ifdef __cplusplus 00056 } 00057 #endif 00058 00059 #endif