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 IDA dense linear solver IDALAPACK. 00014 * ----------------------------------------------------------------- 00015 */ 00016 00017 #ifndef _IDALAPACK_H 00018 #define _IDALAPACK_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_lapack.h> 00026 00027 /* 00028 * ----------------------------------------------------------------- 00029 * Function : IDALapackDense 00030 * ----------------------------------------------------------------- 00031 * A call to the IDALapackDense function links the main integrator 00032 * with the IDALAPACK linear solver using dense Jacobians. 00033 * 00034 * ida_mem is the pointer to the integrator memory returned by 00035 * IDACreate. 00036 * 00037 * N is the size of the ODE system. 00038 * 00039 * The return value of IDALapackDense is one of: 00040 * IDADIRECT_SUCCESS if successful 00041 * IDADIRECT_MEM_NULL if the IDA memory was NULL 00042 * IDADIRECT_MEM_FAIL if there was a memory allocation failure 00043 * IDADIRECT_ILL_INPUT if a required vector operation is missing 00044 * ----------------------------------------------------------------- 00045 */ 00046 00047 SUNDIALS_EXPORT int IDALapackDense(void *ida_mem, int N); 00048 00049 /* 00050 * ----------------------------------------------------------------- 00051 * Function : IDALapackBand 00052 * ----------------------------------------------------------------- 00053 * A call to the IDALapackBand function links the main integrator 00054 * with the IDALAPACK linear solver using banded Jacobians. 00055 * 00056 * ida_mem is the pointer to the integrator memory returned by 00057 * IDACreate. 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 IDALapackBand is one of: 00066 * IDADIRECT_SUCCESS if successful 00067 * IDADIRECT_MEM_NULL if the IDA memory was NULL 00068 * IDADIRECT_MEM_FAIL if there was a memory allocation failure 00069 * IDADIRECT_ILL_INPUT if a required vector operation is missing 00070 * or if a bandwidth has an illegal value. 00071 * ----------------------------------------------------------------- 00072 */ 00073 00074 SUNDIALS_EXPORT int IDALapackBand(void *ida_mem, int N, int mupper, int mlower); 00075 00076 #ifdef __cplusplus 00077 } 00078 #endif 00079 00080 #endif