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