47 #ifndef USE_SUPERLU_MT
50 #include "ac/pthread.h"
68 struct SuperLUSolverData;
83 mutable bool bFirstSol;
84 mutable bool bRegenerateMatrix;
86 SuperLUSolverData *sld;
93 SUPERLU_COLAMD = 0x01U,
94 SUPERLU_MMDATA = 0x02U
101 ~SuperLUSolver(
void);
104 void IsValid(
void)
const;
108 void Solve(
void)
const;
112 std::vector<doublereal>& Ax,
113 std::vector<integer>& Ar,
114 std::vector<integer>& Ac,
115 std::vector<integer>& Ap)
const;
132 std::vector<integer> Ai;
134 std::vector<integer> Adummy;
135 std::vector<integer> Ap;
137 std::vector<doublereal> Ax;
138 std::vector<doublereal> xb;
149 void IsValid(
void)
const;
152 virtual void MakeCompressedColumnForm(
void);
155 SuperLUSparseSolutionManager(
integer iSize,
157 unsigned ptype = SuperLUSolver::SUPERLU_COLAMD);
160 ~SuperLUSparseSolutionManager(
void);
195 class SuperLUSparseCCSolutionManager:
public SuperLUSparseSolutionManager {
200 virtual void MatrReset(
void);
201 virtual void MakeCompressedColumnForm(
void);
204 SuperLUSparseCCSolutionManager(
integer Dim,
206 unsigned ptype = SuperLUSolver::SUPERLU_COLAMD);
207 virtual ~SuperLUSparseCCSolutionManager(
void);
210 virtual void MatrInitialize(
void);
virtual VectorHandler * pResHdl(void) const =0
virtual MatrixHandler * pMatHdl(void) const =0
virtual void MatrReset(void)=0
virtual void Solve(void)=0
virtual void Solve(void) const =0
virtual VectorHandler * pSolHdl(void) const =0
virtual void MakeCompactForm(SparseMatrixHandler &mh, std::vector< doublereal > &Ax, std::vector< integer > &Ar, std::vector< integer > &Ac, std::vector< integer > &Ap) const