ParMooN
 All Classes Functions Variables Friends Pages
pbe.h
1 #ifndef PBE
2 #define PBE
3 
4 #include "hmatrix.h"
5 #include "sparsematrix.h"
6 
7 typedef enum {
8  kt_rkmatrix = 1,
9  kt_convolution = 2,
10  kt_lshape = 4,
11  kt_hmatrix = 8
12 } KernelType;
13 
14 typedef struct _rkdata rkdata;
15 typedef rkdata* prkdata;
16 
17 struct _rkdata {
18  int r;
19  function_1D** fx;
20  function_1D** fy;
21 };
22 
23 typedef struct _integraloperator integraloperator;
25 
27  int nx;
28  double* xgrid;
29 
30  KernelType kt;
31  prkmatrix rk;
32  phmatrix hmatr;
33 
34  int nr;
35  psparsematrix s;
36 };
37 
38 pintegraloperator new_integraloperator(int nx, int nr);
39 
40 void del_integraloperator(pintegraloperator m);
41 
42 int load_integraloperator(pintegraloperator mo, double* internal_grid, KernelType kt, prkdata lowr, function_2D kl, function_2D kh);
43 
44 int apply_integraloperator(pintegraloperator mo, double* input, double* output);
45 
46 int load_hmatrix(pintegraloperator mo, function_2D k);
47 
48 void generate_mass_matrix(psparsematrix M);
49 
50 #endif
51 
Definition: hmatrix.h:15
Definition: pbe.h:17
Definition: pbe.h:26
Definition: sparsematrix.h:10