42 #ifdef SPARSE_SOLVER_PACK_USE_SUPERLU
44 #ifndef DIRECT_SPARSE_SOLVER_SUPERLU_H
45 #define DIRECT_SPARSE_SOLVER_SUPERLU_H
51 #include "AbstractLinAlgPack_DirectSparseSolverImp.hpp"
52 #include "AbstractLinAlgPack_SuperLUSolver.hpp"
53 #include "DenseLinAlgPack_DVectorClass.hpp"
54 #include "DenseLinAlgPack_IVector.hpp"
57 namespace AbstractLinAlgPack {
63 class DirectSparseSolverSuperLU :
public DirectSparseSolverImp {
77 DirectSparseSolverSuperLU();
85 const basis_matrix_factory_ptr_t basis_matrix_factory()
const;
87 void estimated_fillin_ratio( value_type estimated_fillin_ratio );
98 class BasisMatrixSuperLU :
public BasisMatrixImp {
109 ,
const Vector& v_rhs2)
const ;
117 class FactorizationStructureSuperLU :
public FactorizationStructure {
119 friend class DirectSparseSolverSuperLU;
120 friend class BasisMatrixSuperLU;
126 FactorizationStructureSuperLU();
131 class FactorizationNonzerosSuperLU :
public FactorizationNonzeros {
133 friend class DirectSparseSolverSuperLU;
134 friend class BasisMatrixSuperLU;
150 void imp_analyze_and_factor(
152 ,FactorizationStructure *fact_struc
153 ,FactorizationNonzeros *fact_nonzeros
162 ,
const FactorizationStructure &fact_struc
163 ,FactorizationNonzeros *fact_nonzeros
184 #endif // DIRECT_SPARSE_SOLVER_SUPERLU_H
186 #endif // SPARSE_SOLVER_PACK_USE_SUPERLU
Mix-in interface for extracing explicit elements from a sparse matrix in one of several Fortran compa...
void V_InvMtV(VectorMutable *v_lhs, const MatrixNonsing &M_rhs1, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2)
v_lhs = inv(op(M_rhs1)) * v_rhs2