00001 
00006 #ifndef __UIUC_CHARM_IFEM_C_H
00007 #define __UIUC_CHARM_IFEM_C_H
00008 
00009 #include "ilsic.h" 
00010 
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014 
00030 typedef void (*IFEM_Matrix_product_c)(void *ptr, 
00031     int length,int width,const double *src, double *dest);
00032 typedef void (*IFEM_Matrix_product_f)(void *ptr, 
00033     const int *length,const int *width,const double *src, double *dest);
00034 
00059 void IFEM_Solve_shared(ILSI_Solver s,ILSI_Param *p,
00060     int fem_mesh, int fem_entity,int length,int width,
00061     IFEM_Matrix_product_c A, void *ptr, 
00062     const double *b, double *x);
00063 
00090 void IFEM_Solve_shared_bc(ILSI_Solver s,ILSI_Param *p,
00091     int fem_mesh, int fem_entity,int length,int width,
00092     int bcCount, const int *bcDOF, const double *bcValue,
00093     IFEM_Matrix_product_c A, void *ptr, 
00094     const double *b, double *x);
00095 
00096 #ifdef __cplusplus
00097 }
00098 #endif
00099 
00100 #endif