OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
This base class is an abstraction for all numerical methods solving sparse linear system of equations. More...
#include <sparselinsystemnm.h>
Public Member Functions | |
SparseLinearSystemNM (Domain *d, EngngModel *m) | |
Constructor. More... | |
virtual | ~SparseLinearSystemNM () |
Destructor. More... | |
virtual const char * | giveClassName () const =0 |
std::string | errorInfo (const char *func) |
virtual LinSystSolverType | giveLinSystSolverType () const =0 |
virtual NM_Status | solve (SparseMtrx &A, FloatArray &b, FloatArray &x)=0 |
Solves the given sparse linear system of equations . More... | |
virtual NM_Status | solve (SparseMtrx &A, FloatMatrix &B, FloatMatrix &X) |
Solves the given sparse linear system of equations . More... | |
virtual SparseMtrxType | giveRecommendedMatrix (bool symmetric) const =0 |
Returns the recommended sparse matrix type for this solver. More... | |
Public Member Functions inherited from oofem::NumericalMethod | |
NumericalMethod (Domain *d, EngngModel *m) | |
Constructor. More... | |
virtual | ~NumericalMethod () |
Destructor. More... | |
EngngModel * | giveEngngModel () |
virtual IRResultType | initializeFrom (InputRecord *ir) |
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) |
Additional Inherited Members | |
Protected Attributes inherited from oofem::NumericalMethod | |
Domain * | domain |
Pointer to domain. More... | |
EngngModel * | engngModel |
Pointer to engineering model. More... | |
This base class is an abstraction for all numerical methods solving sparse linear system of equations.
The purpose of this class is to declare the general interface to all numerical methods solving this kind of problem. This interface allows to use any suitable instance of the Numerical method class to the solve problem, and leave the whole engineering model code, including mapping, unchanged, because all instances of this class provide the common interface.
Definition at line 58 of file sparselinsystemnm.h.
oofem::SparseLinearSystemNM::SparseLinearSystemNM | ( | Domain * | d, |
EngngModel * | m | ||
) |
Constructor.
Definition at line 41 of file sparselinsystemnm.C.
|
virtual |
Destructor.
Definition at line 44 of file sparselinsystemnm.C.
|
inline |
Definition at line 67 of file sparselinsystemnm.h.
|
pure virtual |
|
pure virtual |
Implemented in oofem::FETISolver, oofem::IMLSolver, oofem::SpoolesSolver, oofem::SuperLUSolver, oofem::PetscSolver, oofem::LDLTFactorization, oofem::PardisoProjectOrgSolver, and oofem::MKLPardisoSolver.
|
pure virtual |
Returns the recommended sparse matrix type for this solver.
Implemented in oofem::FETISolver, oofem::IMLSolver, oofem::SpoolesSolver, oofem::PetscSolver, oofem::LDLTFactorization, oofem::PardisoProjectOrgSolver, oofem::SuperLUSolver, and oofem::MKLPardisoSolver.
|
pure virtual |
Solves the given sparse linear system of equations .
A | Coefficient matrix. |
b | Right hand side. |
x | Solution array. |
Implemented in oofem::FETISolver, oofem::IMLSolver, oofem::SpoolesSolver, oofem::SuperLUSolver, oofem::LDLTFactorization, oofem::PardisoProjectOrgSolver, oofem::MKLPardisoSolver, and oofem::PetscSolver.
Referenced by oofem::NonLinearStatic::proceedStep(), solve(), oofem::InverseIteration::solve(), and oofem::StaticStructural::solveYourselfAt().
|
virtual |
Solves the given sparse linear system of equations .
Default implementation calls solve multiple times.
A | Coefficient matrix. |
B | Right hand side. |
X | Solution matrix. |
Definition at line 47 of file sparselinsystemnm.C.
References oofem::FloatMatrix::copyColumn(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::SparseMtrx::giveNumberOfRows(), oofem::FloatMatrix::giveNumberOfRows(), NM_None, NM_NoSuccess, OOFEM_ERROR, oofem::FloatMatrix::resize(), oofem::FloatMatrix::setColumn(), and solve().