OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Implements the solution of linear system of equation in the form using iterative solvers from IML++ library. More...
#include <imlsolver.h>
Public Member Functions | |
IMLSolver (Domain *d, EngngModel *m) | |
Constructor. Creates new instance of LDLTFactorization, with number i, belonging to domain d and Engngmodel m. More... | |
virtual | ~IMLSolver () |
Destructor. More... | |
virtual NM_Status | solve (SparseMtrx &A, FloatArray &b, FloatArray &x) |
Solves the given linear system iteratively by method described by IMLSolverType. More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
virtual const char * | giveClassName () const |
virtual LinSystSolverType | giveLinSystSolverType () const |
virtual SparseMtrxType | giveRecommendedMatrix (bool symmetric) const |
Returns the recommended sparse matrix type for this solver. More... | |
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 Types | |
enum | IMLSolverType { IML_ST_CG, IML_ST_GMRES } |
Solver type. More... | |
enum | IMLPrecondType { IML_VoidPrec, IML_DiagPrec, IML_ILU_CompColPrec, IML_ILU_CompRowPrec, IML_ICPrec } |
Preconditioner type. More... | |
Private Attributes | |
SparseMtrx * | Lhs |
Last mapped Lhs matrix. More... | |
SparseMtrx::SparseMtrxVersionType | lhsVersion |
Last mapped matrix version. More... | |
Preconditioner * | M |
Preconditioner. More... | |
IMLSolverType | solverType |
IML Solver type. More... | |
IMLPrecondType | precondType |
IML Preconditioner type. More... | |
bool | precondInit |
Precond. init flag. More... | |
double | tol |
Tolerance of residual. More... | |
int | maxite |
Max number of iterations. More... | |
Additional Inherited Members | |
Protected Attributes inherited from oofem::NumericalMethod | |
Domain * | domain |
Pointer to domain. More... | |
EngngModel * | engngModel |
Pointer to engineering model. More... | |
Implements the solution of linear system of equation in the form using iterative solvers from IML++ library.
Can work with any sparse matrix implementation.
Definition at line 61 of file imlsolver.h.
|
private |
Preconditioner type.
Enumerator | |
---|---|
IML_VoidPrec | |
IML_DiagPrec | |
IML_ILU_CompColPrec | |
IML_ILU_CompRowPrec | |
IML_ICPrec |
Definition at line 67 of file imlsolver.h.
|
private |
oofem::IMLSolver::IMLSolver | ( | Domain * | d, |
EngngModel * | m | ||
) |
Constructor. Creates new instance of LDLTFactorization, with number i, belonging to domain d and Engngmodel m.
|
virtual |
|
inlinevirtual |
Implements oofem::SparseLinearSystemNM.
Definition at line 106 of file imlsolver.h.
|
inlinevirtual |
Implements oofem::SparseLinearSystemNM.
Definition at line 107 of file imlsolver.h.
References oofem::ST_IML.
|
inlinevirtual |
Returns the recommended sparse matrix type for this solver.
Implements oofem::SparseLinearSystemNM.
Definition at line 108 of file imlsolver.h.
References oofem::SMT_CompCol, and oofem::SMT_SymCompCol.
|
virtual |
Reimplemented from oofem::NumericalMethod.
Definition at line 74 of file imlsolver.C.
References _IFT_IMLSolver_lsiter, _IFT_IMLSolver_lsprecond, _IFT_IMLSolver_lstol, _IFT_IMLSolver_stype, IML_DiagPrec, IML_ICPrec, IML_ILU_CompColPrec, IML_ILU_CompRowPrec, IML_VoidPrec, oofem::Preconditioner::initializeFrom(), IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_BAD_FORMAT, M, maxite, OOFEM_WARNING, precondType, solverType, and tol.
|
virtual |
Solves the given linear system iteratively by method described by IMLSolverType.
A | Coefficient matrix. |
b | Right hand side. |
x | Solution array. |
Implements oofem::SparseLinearSystemNM.
Definition at line 114 of file imlsolver.C.
References oofem::Timer::getUtime(), oofem::Preconditioner::giveClassName(), oofem::FloatArray::giveSize(), oofem::SparseMtrx::giveVersion(), IML_ST_CG, IML_ST_GMRES, oofem::Preconditioner::init(), Lhs, lhsVersion, M, maxite, NM_Success, OOFEM_ERROR, OOFEM_LOG_INFO, precondInit, solverType, oofem::Timer::startTimer(), oofem::Timer::stopTimer(), and tol.
|
private |
|
private |
|
private |
Definition at line 74 of file imlsolver.h.
Referenced by initializeFrom(), solve(), and ~IMLSolver().
|
private |
Max number of iterations.
Definition at line 87 of file imlsolver.h.
Referenced by initializeFrom(), and solve().
|
private |
|
private |
|
private |
IML Solver type.
Definition at line 76 of file imlsolver.h.
Referenced by initializeFrom(), and solve().
|
private |
Tolerance of residual.
Definition at line 85 of file imlsolver.h.
Referenced by initializeFrom(), and solve().