00001 /* 00002 * ----------------------------------------------------------------- 00003 * $Revision: 1.3 $ 00004 * $Date: 2006/11/29 00:05:05 $ 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 * This is the header file for the CPODES band linear solver, CPBAND. 00014 * ----------------------------------------------------------------- 00015 */ 00016 00017 #ifndef _CPBAND_H 00018 #define _CPBAND_H 00019 00020 #ifdef __cplusplus /* wrapper to enable C++ usage */ 00021 extern "C" { 00022 #endif 00023 00024 #include <cpodes/cpodes_direct.h> 00025 #include <sundials/sundials_band.h> 00026 00027 /* 00028 * ----------------------------------------------------------------- 00029 * Function : CPBand 00030 * ----------------------------------------------------------------- 00031 * A call to the CPBand function links the main CPODES integrator 00032 * with the CPBAND linear solver. 00033 * 00034 * cpode_mem is the pointer to the integrator memory returned by 00035 * CPodeCreate. 00036 * 00037 * N is the size of the ODE system. 00038 * 00039 * mupper is the upper bandwidth of the band Jacobian 00040 * approximation. 00041 * 00042 * mlower is the lower bandwidth of the band Jacobian 00043 * approximation. 00044 * 00045 * The return value of CPBand is one of: 00046 * CPDIRECT_SUCCESS if successful 00047 * CPDIRECT_MEM_NULL if the CPODES memory was NULL 00048 * CPDIRECT_MEM_FAIL if there was a memory allocation failure 00049 * CPDIRECT_ILL_INPUT if a required vector operation is missing 00050 * or if a bandwidth has an illegal value. 00051 * ----------------------------------------------------------------- 00052 */ 00053 00054 SUNDIALS_EXPORT int CPBand(void *cpode_mem, int N, int mupper, int mlower); 00055 00056 #ifdef __cplusplus 00057 } 00058 #endif 00059 00060 #endif