|
OOFEM 3.0
|
#include <superlusolver.h>
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) |
Private Attributes | |
| SparseMtrx::SparseMtrxVersionType | lhsVersion |
| SuperMatrix | A |
| SuperMatrix | L |
| SuperMatrix | U |
| bool | AAllocated =false |
| bool | LAllocated =false |
| bool | UAllocated =false |
| bool | permAllocated = false |
| int_t * | perm_c |
| int_t * | perm_r |
| int_t | permc_spec |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::NumericalMethod | |
| Domain * | domain |
| Pointer to domain. | |
| EngngModel * | engngModel |
| Pointer to engineering model. | |
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 59 of file superlusolver.h.
| oofem::SuperLUSolver::SuperLUSolver | ( | Domain * | d, |
| EngngModel * | m ) |
References A, solve(), and SuperLUSolver().
Referenced by SuperLUSolver().
|
virtual |
Destructor.
Definition at line 60 of file superlusolver.C.
References A, AAllocated, L, perm_c, perm_r, permAllocated, and U.
|
private |
References A, convertRhs(), dPrint_CompCol_Matrix(), and dPrint_Dense_Matrix().
|
private |
Definition at line 358 of file superlusolver.C.
References oofem::FloatArray::at(), OOFEM_ERROR, and oofem::FloatArray::zero().
Referenced by cholnzcnt(), and solve().
|
private |
|
private |
|
inlineoverridevirtual |
Implements oofem::SparseLinearSystemNM.
Definition at line 86 of file superlusolver.h.
|
inlineoverridevirtual |
Implements oofem::SparseLinearSystemNM.
Definition at line 87 of file superlusolver.h.
References oofem::ST_SuperLU_MT.
|
inlineoverridevirtual |
Returns the recommended sparse matrix type for this solver.
Implements oofem::SparseLinearSystemNM.
Definition at line 82 of file superlusolver.h.
References oofem::SMT_CompCol.
|
overridevirtual |
Reimplemented from oofem::NumericalMethod.
Definition at line 74 of file superlusolver.C.
References _IFT_SuperLUSolver_Permcspec, IR_GIVE_OPTIONAL_FIELD, and permc_spec.
|
overridevirtual |
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 89 of file superlusolver.C.
References A, AAllocated, convertRhs(), oofem::CR_CONVERGED, oofem::Timer::getUtime(), oofem::Timer::getWtime(), oofem::CompCol::giveColPtr(), oofem::SparseMtrx::giveNumberOfColumns(), oofem::CompCol::giveNumberOfNonzeros(), oofem::SparseMtrx::giveNumberOfRows(), oofem::FloatArray::givePointer(), oofem::IntArray::givePointer(), oofem::CompCol::giveRowIndex(), oofem::FloatArray::giveSize(), oofem::CompCol::giveValues(), oofem::SparseMtrx::giveVersion(), L, lhsVersion, OOFEM_ERROR, OOFEM_LOG_DEBUG, OOFEM_LOG_INFO, perm_c, perm_r, permAllocated, permc_spec, oofem::rcond(), oofem::FloatArray::resize(), oofem::Timer::startTimer(), oofem::Timer::stopTimer(), and U.
Referenced by SuperLUSolver().
|
private |
Definition at line 63 of file superlusolver.h.
Referenced by cholnzcnt(), dPrint_CompCol_Matrix(), dPrint_Dense_Matrix(), solve(), SuperLUSolver(), and ~SuperLUSolver().
|
private |
Definition at line 64 of file superlusolver.h.
Referenced by solve(), and ~SuperLUSolver().
|
private |
Definition at line 63 of file superlusolver.h.
Referenced by solve(), and ~SuperLUSolver().
|
private |
Definition at line 64 of file superlusolver.h.
|
private |
Definition at line 62 of file superlusolver.h.
Referenced by solve().
|
private |
Definition at line 66 of file superlusolver.h.
Referenced by solve(), and ~SuperLUSolver().
|
private |
Definition at line 67 of file superlusolver.h.
Referenced by solve(), and ~SuperLUSolver().
|
private |
Definition at line 65 of file superlusolver.h.
Referenced by solve(), and ~SuperLUSolver().
|
private |
Definition at line 68 of file superlusolver.h.
Referenced by initializeFrom(), and solve().
|
private |
Definition at line 63 of file superlusolver.h.
Referenced by solve(), and ~SuperLUSolver().
|
private |
Definition at line 64 of file superlusolver.h.