OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class implementig interface to SuperLU_MT solver. More...
#include <superlusolver.h>
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().