OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Incomplete Cholesky IC(0) (no fill - up) preconditioner for symmetric, positive definite matrices. More...
#include <icprecond.h>
Public Member Functions | |
CompCol_ICPreconditioner (const SparseMtrx &A, InputRecord &attributes) | |
Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix. More... | |
CompCol_ICPreconditioner () | |
Constructor. The user should call initializeFrom and init services in this given order to ensure consistency. More... | |
virtual | ~CompCol_ICPreconditioner (void) |
Destructor. More... | |
virtual void | init (const SparseMtrx &a) |
Initializes the receiver (constructs the preconditioning matrix M) of given matrix. More... | |
void | initialize (const CompCol &A) |
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... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver from given record. Empty implementation. More... | |
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... | |
Protected Member Functions | |
void | qsortRow (IntArray &, FloatArray &, int l, int r) |
int | qsortRowPartition (IntArray &, FloatArray &, int l, int r) |
void | ICSolve (FloatArray &dest) const |
void | ICFactor () |
Private Attributes | |
FloatArray | val_ |
IntArray | pntr_ |
IntArray | indx_ |
int | nz_ |
int | dim_ [2] |
Incomplete Cholesky IC(0) (no fill - up) preconditioner for symmetric, positive definite matrices.
Definition at line 44 of file icprecond.h.
oofem::CompCol_ICPreconditioner::CompCol_ICPreconditioner | ( | const SparseMtrx & | A, |
InputRecord & | attributes | ||
) |
Constructor. Initializes the the receiver (constructs the precontioning matrix M) of given matrix.
Definition at line 38 of file icprecond.C.
|
inline |
Constructor. The user should call initializeFrom and init services in this given order to ensure consistency.
Definition at line 57 of file icprecond.h.
|
inlinevirtual |
Destructor.
Definition at line 59 of file icprecond.h.
|
inlinevirtual |
Returns the preconditioner name.
Reimplemented from oofem::Preconditioner.
Definition at line 68 of file icprecond.h.
|
protected |
Definition at line 129 of file icprecond.C.
References oofem::IntArray::giveSize(), indx_, pntr_, and val_.
Referenced by initialize().
|
protected |
Definition at line 163 of file icprecond.C.
References oofem::FloatArray::giveSize(), indx_, pntr_, val_, and oofem::FloatArray::zero().
Referenced by solve(), and trans_solve().
|
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 49 of file icprecond.C.
References initialize(), and OOFEM_ERROR.
void oofem::CompCol_ICPreconditioner::initialize | ( | const CompCol & | A | ) |
Definition at line 64 of file icprecond.C.
References oofem::CompCol::col_ptr(), oofem::CompCol::dim(), dim_, ICFactor(), indx_, nz_, OOFEM_ERROR, pntr_, oofem::IntArray::resize(), oofem::FloatArray::resize(), oofem::CompCol::row_ind(), oofem::CompCol::val(), and val_.
Referenced by init().
|
virtual |
Initializes receiver from given record. Empty implementation.
Reimplemented from oofem::Preconditioner.
Definition at line 43 of file icprecond.C.
References oofem::Preconditioner::initializeFrom().
|
protected |
Definition at line 192 of file icprecond.C.
References qsortRowPartition().
|
protected |
Definition at line 205 of file icprecond.C.
Referenced by qsortRow().
|
virtual |
Solves the linear system.
rhs | Right hand side. |
solution | Solution. |
Implements oofem::Preconditioner.
Definition at line 113 of file icprecond.C.
References ICSolve().
|
virtual |
Solves the transposed system.
rhs | Right hand side. |
solution | Solution. |
Implements oofem::Preconditioner.
Definition at line 121 of file icprecond.C.
References ICSolve().
|
private |
Definition at line 51 of file icprecond.h.
Referenced by initialize().
|
private |
Definition at line 49 of file icprecond.h.
Referenced by ICFactor(), ICSolve(), and initialize().
|
private |
Definition at line 50 of file icprecond.h.
Referenced by initialize().
|
private |
Definition at line 48 of file icprecond.h.
Referenced by ICFactor(), ICSolve(), and initialize().
|
private |
Definition at line 47 of file icprecond.h.
Referenced by ICFactor(), ICSolve(), and initialize().