|
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:
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().