00001 /* 00002 Last changed Time-stamp: <2005-11-04 17:01:29 raim> 00003 $Id: cvodeSolver.h,v 1.5 2005/11/04 16:23:44 raimc Exp $ 00004 */ 00005 /* 00006 * 00007 * This library is free software; you can redistribute it and/or modify it 00008 * under the terms of the GNU Lesser General Public License as published 00009 * by the Free Software Foundation; either version 2.1 of the License, or 00010 * any later version. 00011 * 00012 * This library is distributed in the hope that it will be useful, but 00013 * WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF 00014 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. The software and 00015 * documentation provided hereunder is on an "as is" basis, and the 00016 * authors have no obligations to provide maintenance, support, 00017 * updates, enhancements or modifications. In no event shall the 00018 * authors be liable to any party for direct, indirect, special, 00019 * incidental or consequential damages, including lost profits, arising 00020 * out of the use of this software and its documentation, even if the 00021 * authors have been advised of the possibility of such damage. See 00022 * the GNU Lesser General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU Lesser General Public License 00025 * along with this library; if not, write to the Free Software Foundation, 00026 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. 00027 * 00028 * The original code contained here was initially developed by: 00029 * 00030 * Rainer Machne 00031 * 00032 * Contributor(s): 00033 * Andrew Finney 00034 */ 00035 00036 #ifndef _CVODESOLVER_H_ 00037 #define _CVODESOLVER_H_ 00038 00039 #include "sbmlsolver/exportdefs.h" 00040 00041 #ifdef __cplusplus 00042 extern "C" { 00043 #endif 00044 00045 /* CVODE SOLVER */ 00046 SBML_ODESOLVER_API int IntegratorInstance_cvodeOneStep(integratorInstance_t *); 00047 SBML_ODESOLVER_API void IntegratorInstance_printCVODEStatistics(integratorInstance_t *, FILE *f); 00048 00049 /* internal functions that are not part of the API (yet?) */ 00050 int IntegratorInstance_createCVODESolverStructures(integratorInstance_t *); 00051 void IntegratorInstance_freeCVODESolverStructures(integratorInstance_t *); 00052 int check_flag(void *flagvalue, char *funcname, int opt, FILE *f); 00053 void f(realtype t, N_Vector y, N_Vector ydot, void *f_data); 00054 void JacODE(long int N, DenseMat J, realtype t, 00055 N_Vector y, N_Vector fy, void *jac_data, 00056 N_Vector vtemp1, N_Vector vtemp2, N_Vector vtemp3); 00057 00058 #ifdef __cplusplus 00059 } 00060 #endif 00061 00062 #endif 00063 00064 /* End of file */