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 IDADENSE linear solver module. 00014 * ----------------------------------------------------------------- 00015 */ 00016 00017 #ifndef _IDADENSE_H 00018 #define _IDADENSE_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_dense.h> 00026 00027 /* 00028 * ----------------------------------------------------------------- 00029 * Function : IDADense 00030 * ----------------------------------------------------------------- 00031 * A call to the IDADense function links the main integrator 00032 * with the IDADENSE linear solver module. 00033 * 00034 * ida_mem is the pointer to integrator memory returned by 00035 * IDACreate. 00036 * 00037 * Neq is the problem size 00038 * 00039 * IDADense returns: 00040 * IDADENSE_SUCCESS = 0 if successful 00041 * IDADENSE_LMEM_FAIL = -1 if there was a memory allocation failure 00042 * IDADENSE_ILL_INPUT = -2 if NVECTOR found incompatible 00043 * 00044 * NOTE: The dense linear solver assumes a serial implementation 00045 * of the NVECTOR package. Therefore, IDADense will first 00046 * test for a compatible N_Vector internal representation 00047 * by checking that the functions N_VGetArrayPointer and 00048 * N_VSetArrayPointer exist. 00049 * ----------------------------------------------------------------- 00050 */ 00051 00052 SUNDIALS_EXPORT int IDADense(void *ida_mem, int Neq); 00053 00054 #ifdef __cplusplus 00055 } 00056 #endif 00057 00058 #endif