OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Implementation of diagonal preconditioner. More...
#include <diagpre.h>
Public Member Functions | |
DiagPreconditioner (const SparseMtrx &, InputRecord &attributes) | |
Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix. More... | |
DiagPreconditioner () | |
Constructor. The user should call initializeFrom and init services in this given order to ensure consistency. More... | |
virtual | ~DiagPreconditioner (void) |
Destructor. More... | |
virtual void | init (const SparseMtrx &a) |
Initializes the receiver (constructs the preconditioning matrix M) of given matrix. More... | |
void | solve (const FloatArray &rhs, FloatArray &solution) const |
Solves the linear system. More... | |
void | trans_solve (const FloatArray &rhs, FloatArray &solution) const |
Solves the transposed system. More... | |
virtual const char * | giveClassName () const |
Returns the preconditioner name. More... | |
const double & | diag (int i) const |
double & | diag (int i) |
Public Member Functions inherited from oofem::Preconditioner | |
Preconditioner (const SparseMtrx &a, InputRecord &attributes) | |
Constructor. More... | |
Preconditioner () | |
Constructor. More... | |
virtual | ~Preconditioner (void) |
Destructor. More... | |
FloatArray | solve (const FloatArray &rhs) const |
Solves the linear system. More... | |
FloatArray | trans_solve (const FloatArray &rhs) const |
Solves transposed system. More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver from given record. Empty implementation. More... | |
Private Attributes | |
FloatArray | diag_ |
oofem::DiagPreconditioner::DiagPreconditioner | ( | const SparseMtrx & | C, |
InputRecord & | attributes | ||
) |
|
inline |
|
inlinevirtual |
|
inline |
Definition at line 62 of file diagpre.h.
Referenced by init(), solve(), and trans_solve().
|
inlinevirtual |
Returns the preconditioner name.
Reimplemented from oofem::Preconditioner.
|
virtual |
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 from oofem::Preconditioner.
Definition at line 41 of file diagpre.C.
References oofem::SparseMtrx::at(), diag(), diag_, oofem::SparseMtrx::giveNumberOfRows(), OOFEM_ERROR, oofem::FloatArray::resize(), and oofem::FloatArray::zero().
|
virtual |
Solves the linear system.
rhs | Right hand side. |
solution | Solution. |
Implements oofem::Preconditioner.
Definition at line 61 of file diagpre.C.
References diag(), oofem::FloatArray::giveSize(), and oofem::FloatArray::resize().
|
virtual |
Solves the transposed system.
rhs | Right hand side. |
solution | Solution. |
Implements oofem::Preconditioner.
Definition at line 71 of file diagpre.C.
References diag(), oofem::FloatArray::giveSize(), and oofem::FloatArray::resize().
|
private |