| OOFEM
    2.4
    OOFEM.org - Object Oriented Finite Element Solver | 
Class implementig interface to SuperLU_MT solver. More...
#include <superlusolver.h>
 Inheritance diagram for oofem::SuperLUSolver:
 Inheritance diagram for oofem::SuperLUSolver: Collaboration diagram for oofem::SuperLUSolver:
 Collaboration diagram for oofem::SuperLUSolver:| Public Member Functions | |
| SuperLUSolver (Domain *d, EngngModel *m) | |
| virtual | ~SuperLUSolver () | 
| Destructor.  More... | |
| virtual NM_Status | solve (SparseMtrx &A, FloatArray &b, FloatArray &x) | 
| Solves the given linear system iteratively by method described by SuperLU SolverType.  More... | |
| virtual SparseMtrxType | giveRecommendedMatrix (bool symmetric) const | 
| Returns the recommended sparse matrix type for this solver.  More... | |
| virtual IRResultType | initializeFrom (InputRecord *ir) | 
| virtual const char * | giveClassName () const | 
| virtual LinSystSolverType | giveLinSystSolverType () const | 
|  Public Member Functions inherited from oofem::SparseLinearSystemNM | |
| SparseLinearSystemNM (Domain *d, EngngModel *m) | |
| Constructor.  More... | |
| virtual | ~SparseLinearSystemNM () | 
| Destructor.  More... | |
| std::string | errorInfo (const char *func) | 
| virtual NM_Status | solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X) | 
| Solves the given sparse linear system of equations  .  More... | |
|  Public Member Functions inherited from oofem::NumericalMethod | |
| NumericalMethod (Domain *d, EngngModel *m) | |
| Constructor.  More... | |
| virtual | ~NumericalMethod () | 
| Destructor.  More... | |
| EngngModel * | giveEngngModel () | 
| virtual void | reinitialize () | 
| Reinitializes the receiver.  More... | |
| virtual void | setDomain (Domain *d) | 
| virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) | 
| virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) | 
| Private Member Functions | |
| int_t | cholnzcnt (int_t neqns, int_t *xadj, int_t *adjncy, int_t *perm, int_t *invp, int_t *etpar, int_t *colcnt, int_t *nlnz, int_t *part_super_L) | 
| void | convertRhs (SuperMatrix *A, FloatArray &x) | 
| int_t | dPrint_CompCol_Matrix (SuperMatrix *A) | 
| int_t | dPrint_Dense_Matrix (SuperMatrix *A) | 
| Additional Inherited Members | |
|  Protected Attributes inherited from oofem::NumericalMethod | |
| Domain * | domain | 
| Pointer to domain.  More... | |
| EngngModel * | engngModel | 
| Pointer to engineering model.  More... | |
Class implementig interface to SuperLU_MT solver.
Dependencies: iml module required (CompCol) Note: There is a conflict in include file (set.h) as defined by libstdc and superlu_mt 3.1. Therefore it is assumed that superlu include files are included using #include "SUPERLU_MT/include". The ${SUPERLU_MT_DIR} is added into compiler include path. The SUPERLU_MT/include has to be manually added pointing to ${SUPERLU_MT__DIR}/src directory
Definition at line 57 of file superlusolver.h.
| oofem::SuperLUSolver::SuperLUSolver | ( | Domain * | d, | 
| EngngModel * | m | ||
| ) | 
| 
 | virtual | 
Destructor.
Definition at line 60 of file superlusolver.C.
| 
 | private | 
| 
 | private | 
Definition at line 322 of file superlusolver.C.
References oofem::FloatArray::at(), OOFEM_ERROR, and oofem::FloatArray::zero().
Referenced by solve().
| 
 | private | 
Definition at line 345 of file superlusolver.C.
| 
 | private | 
Definition at line 373 of file superlusolver.C.
| 
 | inlinevirtual | 
Implements oofem::SparseLinearSystemNM.
Definition at line 80 of file superlusolver.h.
| 
 | inlinevirtual | 
Implements oofem::SparseLinearSystemNM.
Definition at line 81 of file superlusolver.h.
References oofem::ST_SuperLU_MT.
| 
 | inlinevirtual | 
Returns the recommended sparse matrix type for this solver.
Implements oofem::SparseLinearSystemNM.
Definition at line 74 of file superlusolver.h.
References oofem::SMT_CompCol.
| 
 | virtual | 
Reimplemented from oofem::NumericalMethod.
Definition at line 64 of file superlusolver.C.
References oofem::IRRT_OK.
| 
 | virtual | 
Solves the given linear system iteratively by method described by SuperLU SolverType.
| A | Coefficient matrix. | 
| b | Right hand side. | 
| x | Solution array. | 
SUPERLU_FREE (superlumt_options.part_super_h);
Implements oofem::SparseLinearSystemNM.
Definition at line 70 of file superlusolver.C.
References convertRhs(), oofem::Timer::getUtime(), oofem::Timer::getWtime(), oofem::CompCol::giveColPtr(), oofem::SparseMtrx::giveNumberOfColumns(), oofem::CompCol::giveNumberOfNonzeros(), oofem::SparseMtrx::giveNumberOfRows(), oofem::IntArray::givePointer(), oofem::FloatArray::givePointer(), oofem::CompCol::giveRowIndex(), oofem::FloatArray::giveSize(), oofem::CompCol::giveValues(), NM_Success, OOFEM_ERROR, OOFEM_LOG_INFO, oofem::FloatArray::resize(), oofem::Timer::startTimer(), and oofem::Timer::stopTimer().