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 CPODES dense linear solver CPLAPACK. 00014 * ----------------------------------------------------------------- 00015 */ 00016 00017 #ifndef _CPLAPACK_EXPORTS_H 00018 #define _CPLAPACK_EXPORTS_H 00019 00020 #ifdef __cplusplus /* wrapper to enable C++ usage */ 00021 extern "C" { 00022 #endif 00023 00024 #include <cpodes/cpodes_direct.h> 00025 00026 /* 00027 * ================================================================= 00028 * E X P O R T E D F U N C T I O N S 00029 * ================================================================= 00030 */ 00031 00032 /* 00033 * ----------------------------------------------------------------- 00034 * Function : CPLapackDense 00035 * ----------------------------------------------------------------- 00036 * A call to the CPLapackDense function links the main integrator 00037 * with the CPLAPACK linear solver using dense Jacobians. 00038 * 00039 * cpode_mem is the pointer to the integrator memory returned by 00040 * CPodeCreate. 00041 * 00042 * N is the size of the ODE system. 00043 * 00044 * The return value of CPLapackDense is one of: 00045 * CPDIRECT_SUCCESS if successful 00046 * CPDIRECT_MEM_NULL if the CPODES memory was NULL 00047 * CPDIRECT_MEM_FAIL if there was a memory allocation failure 00048 * CPDIRECT_ILL_INPUT if a required vector operation is missing 00049 * ----------------------------------------------------------------- 00050 */ 00051 00052 SUNDIALS_EXPORT int CPLapackDense(void *cpode_mem, int N); 00053 00054 /* 00055 * ----------------------------------------------------------------- 00056 * Function : CPLapackBand 00057 * ----------------------------------------------------------------- 00058 * A call to the CPLapackBand function links the main integrator 00059 * with the CPLAPACK linear solver using banded Jacobians. 00060 * 00061 * cpode_mem is the pointer to the integrator memory returned by 00062 * CPodeCreate. 00063 * 00064 * N is the size of the ODE system. 00065 * 00066 * mupper is the upper bandwidth of the band Jacobian approximation. 00067 * 00068 * mlower is the lower bandwidth of the band Jacobian approximation. 00069 * 00070 * The return value of CPLapackBand is one of: 00071 * CPDIRECT_SUCCESS if successful 00072 * CPDIRECT_MEM_NULL if the CPODES memory was NULL 00073 * CPDIRECT_MEM_FAIL if there was a memory allocation failure 00074 * CPDIRECT_ILL_INPUT if a required vector operation is missing or 00075 * if a bandwidth has an illegal value. 00076 * ----------------------------------------------------------------- 00077 */ 00078 00079 SUNDIALS_EXPORT int CPLapackBand(void *cpode_mem, int N, int mupper, int mlower); 00080 00081 /* 00082 * ----------------------------------------------------------------- 00083 * Function : CPLapackDenseProj 00084 * ----------------------------------------------------------------- 00085 * A call to the CPLapackDenseProj function links the main integrator 00086 * with the CPLAPACK linear solver using dense Jacobians. 00087 * 00088 * cpode_mem the pointer to the integrator memory returned by 00089 * CPodeCreate. 00090 * Nc the number of constraints 00091 * Ny the number of states (size of the ODE system). 00092 * fact_type the type of factorization used for the constraint 00093 * Jacobian G. Legal values are CPDIRECT_LU, CPDIRECT_QR, 00094 * and CPDIRECT_SC. 00095 * 00096 * The return value of CPLapackDenseProj is one of: 00097 * CPDIRECT_SUCCESS if successful 00098 * CPDIRECT_MEM_NULL if the CPODES memory was NULL 00099 * CPDIRECT_MEM_FAIL if there was a memory allocation failure 00100 * CPDIRECT_ILL_INPUT if a required vector operation is missing 00101 * ----------------------------------------------------------------- 00102 */ 00103 00104 SUNDIALS_EXPORT int CPLapackDenseProj(void *cpode_mem, int Nc, int Ny, int fact_type); 00105 00106 00107 #ifdef __cplusplus 00108 } 00109 #endif 00110 00111 #endif