|
OOFEM 3.0
|
#include <precond.h>
Public Member Functions | |
| Preconditioner (const SparseMtrx &a, InputRecord &attributes) | |
| Preconditioner () | |
| virtual | ~Preconditioner (void) |
| Destructor. | |
| virtual void | init (const SparseMtrx &a) |
| FloatArray | solve (const FloatArray &rhs) const |
| FloatArray | trans_solve (const FloatArray &rhs) const |
| virtual void | solve (const FloatArray &rhs, FloatArray &solution) const =0 |
| virtual void | trans_solve (const FloatArray &rhs, FloatArray &solution) const =0 |
| virtual const char * | giveClassName () const |
| Returns the preconditioner name. | |
| virtual void | initializeFrom (InputRecord &ir) |
| Initializes receiver from given record. Empty implementation. | |
Abstract class for IML++ compatible preconditioner. Each preconditioner provides solve() and transpose_solve() functionality, so that they can be used interchangeably in the same base iterative method code.
Preconditioner matrix M is typically used to compute \( M^{-1}\cdot x \) or \( (M^{\mathrm{T}})^{-1}\cdot x \) during the course of a basic iterartion, and thus can be seen as taking some input vector and return a corresponding vector.
| oofem::Preconditioner::Preconditioner | ( | const SparseMtrx & | a, |
| InputRecord & | attributes ) |
Constructor. Initializes the the receiver (constructs the preconditioning matrix M) of given matrix. Calls virtual init service.
| a | Sparse matrix to be preconditioned. |
| attributes | Attributes of receiver. |
Definition at line 38 of file precond.C.
References init(), and initializeFrom().
Referenced by oofem::CompCol_ICPreconditioner::CompCol_ICPreconditioner(), oofem::CompCol_ICPreconditioner::CompCol_ICPreconditioner(), oofem::CompCol_ILUPreconditioner::CompCol_ILUPreconditioner(), oofem::CompCol_ILUPreconditioner::CompCol_ILUPreconditioner(), oofem::CompRow_ILUPreconditioner::CompRow_ILUPreconditioner(), oofem::CompRow_ILUPreconditioner::CompRow_ILUPreconditioner(), oofem::DiagPreconditioner::DiagPreconditioner(), oofem::DiagPreconditioner::DiagPreconditioner(), oofem::VoidPreconditioner::VoidPreconditioner(), and oofem::VoidPreconditioner::VoidPreconditioner().
|
inline |
|
inlinevirtual |
|
inlinevirtual |
Returns the preconditioner name.
Reimplemented in oofem::CompCol_ICPreconditioner, oofem::CompCol_ILUPreconditioner, oofem::CompRow_ILUPreconditioner, oofem::DiagPreconditioner, and oofem::VoidPreconditioner.
|
inlinevirtual |
Initializes the receiver (constructs the preconditioning matrix M) of given matrix. Virtual service, to be implemented by derived classes. Should be called after initializeFrom service.
| a | Sparse matrix to be preconditioned. |
Reimplemented in oofem::CompCol_ICPreconditioner, oofem::CompCol_ILUPreconditioner, oofem::CompRow_ILUPreconditioner, oofem::DiagPreconditioner, and oofem::VoidPreconditioner.
Definition at line 77 of file precond.h.
Referenced by Preconditioner().
|
inlinevirtual |
Initializes receiver from given record. Empty implementation.
Reimplemented in oofem::CompCol_ICPreconditioner, oofem::CompCol_ILUPreconditioner, and oofem::CompRow_ILUPreconditioner.
Definition at line 115 of file precond.h.
Referenced by Preconditioner().
|
inline |
|
pure virtual |
Solves the linear system.
| rhs | Right hand side. |
| solution | Solution. |
Implemented in oofem::CompCol_ICPreconditioner, oofem::CompCol_ILUPreconditioner, oofem::CompRow_ILUPreconditioner, oofem::DiagPreconditioner, and oofem::VoidPreconditioner.
|
inline |
Solves transposed system.
| rhs | Right hand side. |
Definition at line 94 of file precond.h.
References trans_solve().
Referenced by trans_solve().
|
pure virtual |
Solves the transposed system.
| rhs | Right hand side. |
| solution | Solution. |
Implemented in oofem::CompCol_ICPreconditioner, oofem::CompCol_ILUPreconditioner, oofem::CompRow_ILUPreconditioner, oofem::DiagPreconditioner, and oofem::VoidPreconditioner.