|
OOFEM 3.0
|
#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. | |
| virtual | ~IMLSolver () |
| Destructor. | |
| ConvergedReason | solve (SparseMtrx &A, FloatArray &b, FloatArray &x) override |
| void | initializeFrom (InputRecord &ir) override |
| const char * | giveClassName () const override |
| LinSystSolverType | giveLinSystSolverType () const override |
| SparseMtrxType | giveRecommendedMatrix (bool symmetric) const override |
| Public Member Functions inherited from oofem::SparseLinearSystemNM | |
| SparseLinearSystemNM (Domain *d, EngngModel *m) | |
| Constructor. | |
| virtual | ~SparseLinearSystemNM () |
| Destructor. | |
| std::string | errorInfo (const char *func) |
| virtual ConvergedReason | solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X) |
| Public Member Functions inherited from oofem::NumericalMethod | |
| NumericalMethod (Domain *d, EngngModel *m) | |
| virtual | ~NumericalMethod () |
| Destructor. | |
| EngngModel * | giveEngngModel () |
| virtual void | reinitialize () |
| virtual void | setDomain (Domain *d) |
| virtual void | saveContext (DataStream &stream, ContextMode mode) |
| virtual void | restoreContext (DataStream &stream, ContextMode mode) |
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. | |
| SparseMtrx::SparseMtrxVersionType | lhsVersion |
| Last mapped matrix version. | |
| std::unique_ptr< Preconditioner > | M |
| Preconditioner. | |
| IMLSolverType | solverType |
| IML Solver type. | |
| IMLPrecondType | precondType |
| IML Preconditioner type. | |
| bool | precondInit |
| Precond. init flag. | |
| double | tol |
| Tolerance of residual. | |
| int | maxite |
| Max number of iterations. | |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::NumericalMethod | |
| Domain * | domain |
| Pointer to domain. | |
| EngngModel * | engngModel |
| Pointer to engineering model. | |
Implements the solution of linear system of equation in the form \( A\cdot x=b \) using iterative solvers from IML++ library. Can work with any sparse matrix implementation.
Definition at line 64 of file imlsolver.h.
|
private |
Preconditioner type.
| Enumerator | |
|---|---|
| IML_VoidPrec | |
| IML_DiagPrec | |
| IML_ILU_CompColPrec | |
| IML_ILU_CompRowPrec | |
| IML_ICPrec | |
Definition at line 70 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.
|
inlinevirtual |
Destructor.
Definition at line 96 of file imlsolver.h.
|
inlineoverridevirtual |
Implements oofem::SparseLinearSystemNM.
Definition at line 101 of file imlsolver.h.
|
inlineoverridevirtual |
Implements oofem::SparseLinearSystemNM.
Definition at line 102 of file imlsolver.h.
References oofem::ST_IML.
|
inlineoverridevirtual |
Returns the recommended sparse matrix type for this solver.
Implements oofem::SparseLinearSystemNM.
Definition at line 103 of file imlsolver.h.
References oofem::SMT_CompCol, and oofem::SMT_SymCompCol.
|
overridevirtual |
Reimplemented from oofem::NumericalMethod.
Definition at line 67 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, IR_GIVE_OPTIONAL_FIELD, M, maxite, precondType, solverType, and tol.
|
overridevirtual |
Solves the given sparse linear system of equations \( A\cdot x=b \).
| A | Coefficient matrix. |
| b | Right hand side. |
| x | Solution array. |
Implements oofem::SparseLinearSystemNM.
Definition at line 102 of file imlsolver.C.
References oofem::CR_CONVERGED, oofem::CR_DIVERGED_ITS, oofem::Timer::getUtime(), oofem::FloatArray::giveSize(), oofem::SparseMtrx::giveVersion(), IML_ST_CG, IML_ST_GMRES, lhs, lhsVersion, M, maxite, OOFEM_ERROR, OOFEM_LOG_INFO, precondInit, solverType, oofem::Timer::startTimer(), oofem::Timer::stopTimer(), and tol.
|
private |
|
private |
|
private |
Definition at line 77 of file imlsolver.h.
Referenced by initializeFrom(), and solve().
|
private |
Max number of iterations.
Definition at line 90 of file imlsolver.h.
Referenced by initializeFrom(), and solve().
|
private |
|
private |
|
private |
IML Solver type.
Definition at line 79 of file imlsolver.h.
Referenced by initializeFrom(), and solve().
|
private |
Tolerance of residual.
Definition at line 88 of file imlsolver.h.
Referenced by initializeFrom(), and solve().