00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef SuperLU_h
00027 #define SuperLU_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #include <SparseGenColLinSolver.h>
00049 #include "SuperLU_supermatrix.h"
00050
00146 class SuperLU : public SparseGenColLinSolver
00147 {
00148 public:
00150 SuperLU(int permSpec = 0, double thresh = 0.0, int panelSize = 6,
00151
00152 int relax = 6);
00154 ~SuperLU();
00155
00157 int solve(void);
00159 int setSize(void);
00160
00162 int sendSelf(int commitTag, Channel &theChannel);
00164 int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00165
00166 protected:
00167
00168 private:
00170 SuperMatrix A,L,U,B,AC;
00172 int *perm_r;
00174 int *perm_c;
00176 int *etree;
00178 int sizePerm;
00180 int relax, permSpec, panelSize;
00182 float thresh;
00184 char refact[1];
00185 };
00186
00187 #endif
00188